公式のsymfony-installer( http://symfony.com/download )から新しいsymfony3-instanceをインストールしました。最初のことを行った後、プロジェクトをGitにコミットし、先日別のコンピューターでクローンを作成しました。クローンを作成した後、「composer install」を実行して、すべてのsymfony依存関係をインストールしました。ここで問題が発生します:スクリプトScriptHandler::clearCache
はエラーで停止します:Could not open input file: app/console
。そうです-symfony3には新しいディレクトリ構造があります-console
は/bin
ではなく/app
にあります。コンポーザー/プロジェクトに古い構造ではなく新しい構造を使用するように指示するにはどうすればよいですか?
コンソールコマンドSENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true
について( 新しいSymfony 3のディレクトリ構造とは? )を読みましたが、私の場合はうまくいきません。
任意のヒント?
ScriptHandler
は、composer.json
ファイル名の追加の構成キーからsymfony-bin-dir
としてディレクトリを取得します。例として、composerに正しい設定キーが含まれていることを確認します。
composer.json
....
"extra": {
"symfony-app-dir": "app",
"symfony-bin-dir": "bin",
"symfony-var-dir": "var",
....
編集:
問題は作曲家のキャッシュに関連していました。次のコマンドで解決しました:
>php composer.phar clear-cache
お役に立てれば。
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']);
}
したがって、symfony-var-dir
in composer.json
のextra
およびこのディレクトリが存在します。
私は同じ問題に直面しています。このスクリプトは、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
私は.gitignoreの専門家のふりをしていないので、それがそれを行う最もエレガントな方法であるかどうかはわかりませんが、それは私にとってうまくいったものです。
私は同じ問題を抱えていました:
[RuntimeException]
An error occurred when executing the ""cache:clear --no-warmup"" command:
Could not open input file: app/console
コンソールファイルも/ bin /フォルダーにあるため、DevOpsからプロジェクトを複製するたびにプロジェクトのルートからこれを呼び出してキャッシュをクリアする必要がありました。
php bin/console cache:clear
その後、composer install
そしてそれはうまく動作します