在不同的服务器中没有Composer自动加载的类找不到

问题描述 投票:-1回答:1

我有一个具有以下结构的非常简单的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”及其名称空间...

php composer-php autoload
1个回答
0
投票
文件的路径是src/content/test/Sandbox.php,根据PSR-4,它应该是src/Content/Test/Sandbox.php-在Windows上没有关系,但是在Linux上则有。
© www.soinside.com 2019 - 2024. All rights reserved.