Luu*_*ter 3 php autoload composer-php psr-4
我有我自己的小 MVC 框架,我使用 composer psr-4 自动加载。
在我自己的计算机上它运行得非常好,但是当我将它部署到我的 Ubuntu 服务器时它不再工作了。(它不再找到任何课程)我尝试了很多东西,但无论我尝试什么都行不通......
我尝试过的:
这是我的 composer.json:
{
"autoload": {
"psr-4": {
"App\\": "app",
"Core\\": "core",
"Magister\\": "vendor/Magister"
}
},
"require": {
"philo/laravel-blade": "^3.1"
}
}
Run Code Online (Sandbox Code Playgroud)
我只是不明白为什么它在我的服务器上不起作用......我在我的服务器上使用其他版本的 php:7.1,我在我的电脑上使用 5.6,但这应该没有任何区别对?
我该如何解决这个问题?我只是不明白为什么会发生....:(
编辑:
我的代码:
索引.php:
<?php
require "core/app.php";
$app = new \Core\App();
echo $app->start();
Run Code Online (Sandbox Code Playgroud)
应用程序.php:
<?php
namespace Core;
require "./vendor/autoload.php";
class App
{
function start()
{
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL ^ E_DEPRECATED);
$MC = new Routing();
// This is where it fails. Get the error: "class Core\Routing not found"
Run Code Online (Sandbox Code Playgroud)
路由.php:
<?php
namespace Core;
Use App\routes;
class Routing
{
private $parameters = [];
public function GetMC($Getroute){
}
}
Run Code Online (Sandbox Code Playgroud)
服务器上的文件结构:
我已经从树中排除了供应商地图
好吧……我已经修好了。
我已将我的 composer.json 更改为:
{
"autoload": {
"psr-4": {
"App\\": "app/",
"Core\\": "core/",
"Magister\\": "vendor/Magister/"
},
"classmap": [
"app/",
"core/",
"vendor/Magister/"
]
},
"require": {
"philo/laravel-blade": "^3.1"
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
如果你想使用 psr-4 你需要将你的目录大写
app
- Modules
- Controllers
- Views
-- Layouts
...
Run Code Online (Sandbox Code Playgroud)
请参阅这篇文章了解自动加载不起作用的原因。
| 归档时间: |
|
| 查看次数: |
4862 次 |
| 最近记录: |