ckl*_*klm 22 php symfony composer-php
我通过官方的symfony-installer(http://symfony.com/download)安装了一个新的symfony3-instance .在完成第一件事之后,我将项目提交给Git,并在另一台计算机上克隆了它.克隆后,我运行"composer install"来安装所有symfony-dependencies.现在出现了问题:脚本ScriptHandler::clearCache
因错误而停止:Could not open input file: app/console
.这是正确的 - symfony3有一个新的目录结构 - 所以console
现在驻留在/bin
- 而不是在/app
.如何告诉作曲家/项目使用新结构而不是旧结构呢?
我在这里阅读(什么是新的Symfony 3目录结构?)关于console-command SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true
- 但这在我的情况下不起作用.
有小费吗?
luc*_*nov 44
只需创建var
目录.在这之后composer install
和composer update
将工作正常.
说明:
vendor/sensio/distribution-bundle/Composer/ScriptHandler.php:462
protected static function useNewDirectoryStructure(array $options)
{
return isset($options['symfony-var-dir']) && is_dir($options['symfony-var-dir']);
}
Run Code Online (Sandbox Code Playgroud)
所以,你既需要有symfony-var-dir
在composer.json
的extra
,并有该目录已有.
Mat*_*teo 21
在ScriptHandler
从额外的配置重点采取目录composer.json
文件名作为symfony-bin-dir
.因此,请检查作曲家是否包含正确的配置键,例如:
composer.json
....
"extra": {
"symfony-app-dir": "app",
"symfony-bin-dir": "bin",
"symfony-var-dir": "var",
....
Run Code Online (Sandbox Code Playgroud)
编辑:
问题与作曲家的缓存有关.解决了以下命令解决它:
>php composer.phar clear-cache
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
小智 9
我一直遇到同样的问题.该脚本使用var目录的存在来决定是使用新目录结构还是使用旧目录结构.如果var存在,则使用新的目录结构.否则它使用旧结构.
默认的.gitignore文件可以防止将var目录和bin目录添加到git中.
我为解决这个问题所做的是在项目目录中编辑.gitignore,使它看起来像这样:
/app/config/parameters.yml
/bin/*
/build/
/composer.phar
/vendor/
/web/bundles/
/var/*
!var/cache
/var/cache/*
!var/cache/.gitkeep
!var/logs
/var/logs/*
!var/logs/.gitkeep
!var/sessions
/var/sessions/*
!var/sessions/.gitkeep
!bin/console
!bin/symfony_requirements
/phpunit.xml
Run Code Online (Sandbox Code Playgroud)
我并不假装是.gitignore的专家,所以我不确定这是最优雅的方式,但这对我有用.
归档时间: |
|
查看次数: |
13804 次 |
最近记录: |