这个让我困惑。I'V git clone
我在数字海洋(LEMP堆栈)上的存储库,并检查了development
分支。在这一点上一切都很好。然后,我做一个composer install
来安装DEPS,这死了:
PHP Fatal error: Class 'AppMyAppApiTransformersProjectTransformer' not found
in /home/greg/MyApp/app/Providers/DatabaseServiceProvider.php on line 67
DatabaseServiceProvider
在顶部有一个use
语句,例如:
use AppMyAppApiTransformersProjectTransformer;
这是一个值得的Laravel 5项目。DatabaseServiceProvider.php
具有命名空间namespace AppProviders;
作曲家抱怨的ProjectTransformer
的内容是:
<?php namespace AppMyAppApiTransformers;
class ProjectTransformer extends Transformer
{
/**
* @var array
*/
protected $visible_fields = [
'id',
'title',
'client_id',
'division_id',
'project_manager_id',
'probability',
'total_contract_value',
'description',
'devs'
];
}```
因此,composer
正在指出我在DatabaseServiceProvider
中使用ProjectTransformer
,但找不到。该文件绝对存在,名称空间似乎是正确的...我还缺少什么?另一个奇怪的问题是,我可以在本地(在Homestead上)从头开始composer install
没有问题。只有在数字海洋上才抱怨。感谢您的任何建议!
在外壳中,尝试以下操作:
composer install --no-scripts
如果成功运行,请在没有--no-scripts
标签的情况下再次尝试。
--no-scripts
标签将防止作曲家运行通常作为作曲家操作的一部分运行的任何特定于Laravel的设置/拆除脚本。您看到的错误消息可能是由于您的Laravel安装尚未完全设置的事实(这不足为奇,因为您正在尝试将其安装在新的地方)。
这是一个鸡和蛋的问题:尚未设置自动加载器,因此无法解决名称空间。但是它无法设置自动加载器,因为它失败了,因为Laravel抱怨它无法解决适当的名称空间。
在没有脚本的情况下运行作曲家将使作曲家有机会完成其工作 - 安装适当的软件包,初始化自动加载器 - 而不会失败,因为Laravel找不到所需的软件包。然后,一旦作曲家有机会做这件事,您就可以再次运行它,Laravel将找到所需的东西。