克隆了未安装git供应商的Symfony项目

时间:2015-02-11 09:42:15

标签: git symfony composer-php

我在Fedora客户上开始了我的symfony项目并愉快地编码好几次。然后我将我的文件导出到亚马逊EC2 VM,感谢koding.com并在那里编码了一段时间(它非常方便)。我终于希望能够从任何环境进行编码,所以我设置了git并将所有文件放在那里。

昨天,我将我的存储库从github克隆到我的Fedora客户端并尝试启动它。它并不适用于某些供应商库尚未安装。

我已经阅读了文档,这是正常的,在克隆存储库后,必须安装php composer.phar。

我已尝试但收到错误消息,因为供应商库已在我的AppKernel中声明

php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
Updating the "app/config/parameters.yml" file
PHP Fatal error:  Class 'FOS\UserBundle\FOSUserBundle' not found in /home/eagle1/www/ICORECO/app/AppKernel.php on line 29

所以我尝试评论这些行,但显然我得到的代码扩展了这个类,所以composer install再次生成错误

php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
Updating the "app/config/parameters.yml" file                                                                                          [LogicException]                                                                              
  Bundle "NRtworksSubscriptionBundle" extends bundle "FOSUserBundle", which is not registered.  

我该怎么办?

这是我的.gitignore

# Cache and logs (Symfony2)
/app/cache/*
/app/logs/*
!app/cache/.gitkeep
!app/logs/.gitkeep
# Cache and logs (Symfony3)
/var/cache/*
/var/logs/*
!var/cache/.gitkeep
!var/logs/.gitkeep
# Parameters
/app/config/parameters.yml
/app/config/parameters.ini
# Managed by Composer
/app/bootstrap.php.cache
/var/bootstrap.php.cache
/bin/*
!bin/console
!bin/symfony_requirements
/vendor/
# Assets and user uploads
/web/bundles/
/web/uploads/
# PHPUnit
/app/phpunit.xml
/phpunit.xml
# Build data
/build/
# Composer PHAR

1 个答案:

答案 0 :(得分:2)

听起来你的vendor/目录处于不一致的状态。

一般来说,作曲家recommends not versioning vendor/。您的composer.json and composer.lock files should both be committed和Composer可以从这些文件中构建vendor/

我建议删除vendor/并再次运行composer install以从头开始重建。假设composer.jsoncomposer.lock是正确的,这应该会让您回到工作状态。

然后确保您忽略vendor/,例如用

这样的行
vendor/
在您的.gitignore

,并删除可能意外提交到存储库的所有供应商文件:

git rm --cached -r vendor