以下是我在composer.json文件中使用psr-4的方法
"autoload": {
"psr-4": {"MyMVC\\": "app/"}
},
现在在我的init文件中,我试图动态加载控制器,如
<?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';
}
}
现在如果我到了网址“http://localhost/mymvc/home/bla/bla”,我就会收到错误
Fatal error: Class 'Controllers\HomeController' not found in /var/www/html/mymvc/app/init.php on line 136
答案 0 :(得分:1)
在应用程序中应
$controller = 'MyMVC\\Controllers\\' . ucfirst($controller) . 'Controller';