为什么autoload_psr4.php或其他autoload_*.php文件中不包含Composer包(来自github)?
我在github上分叉了Laravel Firebird包,目的是用Laravel 6解决ignite Firebird(以前的Laravel Firebird包是为Laravel 5.x设计的),我遇到了无法从新包加载类的问题。我包括为什么autoload_psr4.php或其他autoload_*.php文件中不包含Composer包(来自github)?,php,laravel,composer-php,autoload,Php,Laravel,Composer Php,Autoload,我在github上分叉了Laravel Firebird包,目的是用Laravel 6解决ignite Firebird(以前的Laravel Firebird包是为Laravel 5.x设计的),我遇到了无法从新包加载类的问题。我包括var_dump(get_declared_classes())在我的代码和Firebird中没有提到,因此无法加载该包,尽管它自豪地与其他成功加载的包一起位于供应商文件夹中。因此,我试图发现,为什么包没有加载composer require没有错误,compos
var_dump(get_declared_classes())代码>在我的代码和Firebird中没有提到,因此无法加载该包,尽管它自豪地与其他成功加载的包一起位于供应商文件夹中。因此,我试图发现,为什么包没有加载composer require
没有错误,composer diagnose
也没有错误,我可以调用composer dumpautload
而无需改进
现在我正在研究vendoer/composer自动生成的包。installed.json包含:
{
"name": "alex153490/laravel-firebird",
"version": "1",
"version_normalized": "1.0.0.0",
"source": {
"type": "git",
"url": "https://github.com/alex153490/laravel-firebird.git",
"reference": "master"
},
"type": "library",
"installation-source": "source"
}
但是没有一个自动加载的php文件包含或提到Firebird或Firebird Laravel?为什么我的软件包(Firebird Laravel)没有包含在自动加载的php中?如何纠正这一点?我也有这个问题,不得不求助于将PSR4规范嵌入应用程序“composer.json:“psr-4”:{“MyNamespace\\SubNamespace\\”:“vendor/MyPackageNamespace/MyPackageDirectory/lib/”}。在您的情况下,它会像“psr-4”:{“Firebird\\”:“vendor/alex153490/laravel Firebird/src/Firebird”}也许这与composer.json的更新有关-与现有的包(如或)相比-它们有一个带有“component”的“extra”部分:“package”条目。是的,在项目的composer.json中添加这个intry并执行
composer dumpautoload
将Firebird引入autoload_psr4.php,该类也可以在Laravel项目文件中使用,这很好。奇怪的是,var_dump(get_declared_classes())的输出中没有提到导入的类代码>,这很奇怪,但这并不妨碍我继续开发。我一定会检查额外的部分,并告知是否可以将其格式化为完整答案。我将添加一个链接到我关于此问题的问题,以便它们可以连接: