尝试在WordPress插件中使用作曲家自动加载时"Class not found"



我有一个很少发生的问题。在一些pc上,和WordPress实例类加载使用作曲家的作品,但在极少数情况下,我不能加载任何类,我得到错误Class not found。我注意到,当它工作时,它通常是Mac或Windows机器,从Docker容器,本地WP或XAMPP运行。

composer.json看起来像这样:

{
"name": "vendor/my-plugin",
"license": "proprietary",
"description": "Integration of the ...",
"autoload": {
"psr-4": {
"Vendor\MyPlugin\": "src"
}
},
"require": {
"jumbojett/openid-connect-php": "^0.9.5"
}
}

文件夹结构与此类似:

myplugin.php
composer.json
composer.lock
vendor
- ...
src
- controller
- Settings.php
- enumerators
- Message.php
- Uri.php
- helper
- Template.php
- view
...

运行composer install没有任何错误。myplugin.php文件的一部分,我注册命名空间和加载类看起来像这样:

<?php
namespace VendorMyPlugin;
require_once __DIR__ . '/vendor/autoload.php'; 
use VendorMyPluginHelperTemplate;
use VendorMyPluginControllerSettings;
use VendorMyPluginEnumeratorsUri as UriEnumerator;

我在后面的代码中使用了这些类,但正如我所说,它在某些Wordpress实例上不能识别类,但它在大约70%的计算机/Wordpress实例上工作。

我很感谢任何建议!

经过一番研究,我找到了解决办法。添加:

"config": {
"optimize-autoloader": true
}

composer.json解决了这个问题。

相关内容

最新更新