我有一个具有以下结构的非常简单的PHP / Composer应用程序:
- src
- content
- test
- Sandbox.php
Sandbox.php仅具有一个静态函数来打印“测试”,其名称空间为
namespace MyApplication\Content\Test;
My autoload.php的MyApplication具有“ autoload”属性。
"autoload" : {
"psr-4": {"MyApplication\\": "src/"}
},
[我在Windows环境中使用XAMPP并在我执行的test.php文件中运行composer install --no-dev
(为了进行非常简单的测试):
$autoloadFile = __DIR__ . '/wp-content/plugins/sandbox/vendor/autoload.php';
require $autoloadFile;
echo 'autoload = ' . file_exists($autoloadFile);
echo '<br />';
echo 'class_exists = ' . class_exists('MyApplication\Content\Test\Sandbox');
当我在本地运行此test.php文件时,它运行完美。 MyApplication正在加载沙箱类。
但是,当我将其发布到基于Linux的服务器但在相同PHP版本]上运行时,找不到Sandbox类。
我确保/ vendor /文件夹也已正确上传。
我想知道问题是否正在发生,因为我在Windows环境中运行composer安装,而它应该在服务器中运行相同的命令(目前无法执行)。 / vendor /文件夹上传不足以使自动加载类正常工作吗?
我有一个具有以下结构的非常简单的PHP / Composer应用程序:-src-内容-测试-Sandbox.php Sandbox.php仅具有一个静态函数来打印“ test”及其名称空间...
src/content/test/Sandbox.php
,根据PSR-4,它应该是src/Content/Test/Sandbox.php
-在Windows上没有关系,但是在Linux上则有。