未找到作曲家 PSR-4 class
Composer PSR-4 class not found
我有以下目录结构
这是我在 composer.json 文件中使用 psr-4 的方式
"autoload": {
"psr-4": {"MyMVC\": "app/"}
},
现在在我的初始化文件中,我正在尝试像
一样动态加载控制器
<?php namespace MyMVC;
use MyMVC\Core\Config;
use MyMVC\Controllers;
class Application
{
/**
* Takes the arguments and execute the requested route
*
* @param [type] $controller name of the controller
* @param [type] $method name of method
* @param array $arguments an array of arguments to be passed into method
* @access private
*/
private function dispatch($controller, $method, array $arguments)
{
$controller = 'Controllers\' . ucfirst($controller) . 'Controller';
$controllerObject = new $controller;
}
我的 HomeController
看起来像这样
<?php namespace MyMVC\Controllers;
class HomeController
{
function __construct()
{
echo 'Hello World';
}
}
现在,如果我到达 url `http://localhost/mymvc/home/bla/bla',我会收到错误消息
Fatal error: Class 'Controllers\HomeController' not found in /var/www/html/mymvc/app/init.php on line 136
在申请中应该是
$controller = 'MyMVC\Controllers\' . ucfirst($controller) . 'Controller';
我有以下目录结构
这是我在 composer.json 文件中使用 psr-4 的方式
"autoload": {
"psr-4": {"MyMVC\": "app/"}
},
现在在我的初始化文件中,我正在尝试像
一样动态加载控制器<?php namespace MyMVC;
use MyMVC\Core\Config;
use MyMVC\Controllers;
class Application
{
/**
* Takes the arguments and execute the requested route
*
* @param [type] $controller name of the controller
* @param [type] $method name of method
* @param array $arguments an array of arguments to be passed into method
* @access private
*/
private function dispatch($controller, $method, array $arguments)
{
$controller = 'Controllers\' . ucfirst($controller) . 'Controller';
$controllerObject = new $controller;
}
我的 HomeController
看起来像这样
<?php namespace MyMVC\Controllers;
class HomeController
{
function __construct()
{
echo 'Hello World';
}
}
现在,如果我到达 url `http://localhost/mymvc/home/bla/bla',我会收到错误消息
Fatal error: Class 'Controllers\HomeController' not found in /var/www/html/mymvc/app/init.php on line 136
在申请中应该是
$controller = 'MyMVC\Controllers\' . ucfirst($controller) . 'Controller';