5

composer.phar インストールを行うたびに、Symfony の開発キャッシュがクリアされます。

プロダクションなど、別の環境のキャッシュをクリアする方法はありますか? app/console cache:clear --env=prod をいつでも実行できることはわかっています。しかし、依存関係を取得した後、Composer にそれを処理してもらいたいと思います。

4

2 に答える 2

6

composer.jsonには、次のようなセクション「スクリプト」があります。

"scripts": {
    "post-install-cmd": [
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ],
    "post-update-cmd": [
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ]
}

すべてのコマンドが1つのファイルに保存されていることがわかるように、Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: clearCache()が探しているものです。

これらのスクリプトはユーザーの介入なしに実行されることを意図しているため、引数を追加することは意図されていません。ただし、独自のスクリプトを簡単に追加したり、既存のスクリプトを置き換えたりすることができます。

編集:私が言い換えるべき最後の段落。引数を持つことはできますが、composer.jsonで静的に定義されます。「symfony-web-dir」などの追加セクションで定義された値は、ScriptHandlerによって使用される引数です。ScriptHandler :: getOptions()に示されているように、これらはコンポーザーのCommandEventから取得できます。したがって、たとえば、のインストール/更新ごとにクリアする環境の配列を定義し"extra"、スクリプトで取得してから、指定した環境ごとにclearcache-commandを呼び出すことができます。環境変数を介して値を提供できる可能性がありますこれはおそらくシナリオではより理にかなっていますが、構成では、たとえば追加セクションの値をオーバーライドする方法が説明されていないため、composerを掘り下げる必要があります。

于 2013-02-20T19:07:41.267 に答える