快速提问。我有mvc(我的迷你框架;))用于教育。
https://github.com/aras123/MiniFramework
如果我在root base中创建文件test.php(例如)。
test.php的
<?php
class Example {
public function __construct() {
echo 'This is example!';
}
}
在我的框架中为IndexController创建操作,并希望包含并运行类
应用/控制器/ IndexController.php
<?php
namespace Application\Controller;
use Framework\Controller;
class IndexController extends Controller {
public function _init() {
}
public function IndexAction() {
require 'test.php'; //path is ok
$aaa = new Example(); //is error
}
错误消息:
Fatal error: Class 'Application\Controller\Example' not found in
/Application/Controller/IndexController.php on line ...
答案 0 :(得分:1)
他们的自动加载器工作方式,它不会拾取您创建的文件。这里有两个解决方案,要么你的控制器顶部有一个包含
<?php
namespace Application\Controller;
require __DIR__ . '/../../test.php';
// ...
或者,您将test.php
移至Application\Controller
并将其重命名为Example.php
我会建议后者
答案 1 :(得分:0)
是的!这是一个很好的代码:
<?php
namespace Application\Controller;
use Framework\Controller;
class IndexController extends Controller {
public function _init() {
}
public function IndexAction() {
require 'test.php'; //path is ok
$aaa = new \Example(); //now is ok!
}