WordPress插件PSR-4自动加载报错:GhaziRiyadh\ThemeSortcodes\App\App类未找到
解决WordPress插件PSR-4自动加载类未找到问题
你的致命错误根源是PSR-4命名空间与文件路径不匹配,结合你的配置和代码,具体问题及解决方案如下:
问题分析
- Composer的PSR-4规则配置为:
这意味着命名空间前缀"autoload": { "psr-4": { "GhaziRiyadh\\ThemeSortcodes\\": "app/" } }GhaziRiyadh\ThemeSortcodes\对应插件根目录下的app/文件夹,前缀之后的命名空间片段,必须对应app/下的子目录结构。 - 你将
App.php直接放在app/根目录,但命名空间写为GhaziRiyadh\ThemeSortcodes\App,这会让Composer自动尝试去app/App/App.php路径查找类,而该文件不存在,因此触发类未找到错误。
解决方案(二选一即可)
方案一:调整命名空间(推荐,保持文件路径不变)
修改app/App.php中的命名空间,移除末尾的\App:
<?php namespace GhaziRiyadh\ThemeSortcodes; class App { public function __construct() { wp_die('from app'); } }
插件主文件的use语句无需修改,保持use GhaziRiyadh\ThemeSortcodes\App;即可。
最后在插件根目录执行命令,更新Composer自动加载映射:
composer dump-autoload
方案二:调整文件路径(保持命名空间不变)
在app/目录下创建App子文件夹,将App.php移动到app/App/路径下,此时文件路径为app/App/App.php,与命名空间GhaziRiyadh\ThemeSortcodes\App完全匹配。
同样需要在插件根目录执行命令更新映射:
composer dump-autoload
额外注意
如果还未生成vendor目录,先在插件根目录执行composer install安装依赖,再执行上述dump-autoload命令。
内容的提问来源于stack exchange,提问作者Riyadh Ghazi
相关产品推荐
相关产品推荐

