【发布时间】:2016-10-06 20:49:28
【问题描述】:
我正在尝试在我的 nas 上使用 docker 发布我的网页。但是不能让 PSR-4 工作,它不会通过命名空间找到控制器。一切都在我的流浪盒子上工作。但只要我不扩展一个类它就不会中断
哎呀\异常\ErrorException(E_ERROR)类 'Rsubscribe\Controllers\BaseController' 未找到
bootstrap/start.php
require(__DIR__ . "/../vendor/autoload.php");
session_start();
$router = new AltoRouter();
基础控制器
<?php
namespace Rsubscribe\Controllers;
use duncan3dc\Laravel\BladeInstance;
class BaseController{
protected $blade;
public function __construct()
{
$this->blade = new BladeInstance("/var/www/views", "/var/www/cache/views");
}
}
页面控制器
class PageController extends BaseController
{
public function getShowHomePage()
{
echo $this->blade->render("home");
}
public function getMoviePage()
{
echo $this->blade->render('movies');
}
}
路线:
<?php
use duncan3dc\Laravel\BladeInstance; // Temp
$router->map("GET", "/", "Rsubscribe\controllers\PageController@getShowHomePage", "home");
$router->map("GET", "/home", "Rsubscribe\controllers\PageController@getShowHomePage", "home_2");
$router->map("GET", "/movies", "Rsubscribe\controllers\PageController@getMoviePage", "movies");
composer.json
.....
.....
"autoload": {
"psr-4": {"Rsubscribe\\": "src/"}
}
【问题讨论】:
-
你运行作曲家更新/安装了吗?
-
是的,已经完成了
-
我只有在没有控制器的情况下通过我的路由文件才能让它工作,但我不想这样做。
-
你能发布命名空间和使用PageController的一部分吗?
-
找到了问题所在,控制器的命名空间必须是小写的文件夹名称
标签: php docker composer-php psr-4