我有自己的小MVC框架,我使用composer psr-4自动加载。
在我自己的计算机上它运行得很好,但是当我将它部署到我的Ubuntu服务器时它不再起作用了。 (它再也找不到任何课程了)我已经尝试了很多东西,但是无论我尝试什么都不行......
我尝试了什么:
这是我的composer.json:
{
"autoload": {
"psr-4": {
"App\\": "app",
"Core\\": "core",
"Magister\\": "vendor/Magister"
}
},
"require": {
"philo/laravel-blade": "^3.1"
}
}
我只是不明白为什么它不能在我的服务器上工作.... 我在我的服务器上使用其他版本的php:7.1,我在我的计算机上使用5.6,但这不应该有任何区别吗?
如何解决此问题?我只是不明白它为什么会发生.... :(
修改
我的代码:
的index.php:
<?php
require "core/app.php";
$app = new \Core\App();
echo $app->start();
app.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"
Routing.php:
<?php
namespace Core;
Use App\routes;
class Routing
{
private $parameters = [];
public function GetMC($Getroute){
}
}
服务器上的文件结构:
我已从树中排除了供应商地图
答案 0 :(得分:2)
我不知道为什么以及如何运作,但它有效......:D
我已将我的composer.json更改为:
{
"autoload": {
"psr-4": {
"App\\": "app/",
"Core\\": "core/",
"Magister\\": "vendor/Magister/"
},
"classmap": [
"app/",
"core/",
"vendor/Magister/"
]
},
"require": {
"philo/laravel-blade": "^3.1"
}
}
答案 1 :(得分:1)
如果要使用psr-4,则需要 大写 您的目录
app
- Modules
- Controllers
- Views
-- Layouts
...
请参阅this帖子,了解为什么自动加载无法正常工作。