すべてのバンドルとその依存関係の追加と構成を含む、新しい Symfony 2.1 プロジェクトのインストール プロセス全体をスクリプト化しようとしています。最終的な結果は、開発者がベスト プラクティスのセットアップを強制され、これに時間を費やす必要がないように、すべてをセットアップする 1 つのコマンドである必要があります。
これまでのところ、CMS を 0 から完全にインストールするまでに約 1 時間かかるため、これはかなり成功しています (主に composer のインストールによる)。ここで結果を確認できます: https://github.com/Kunstmaan/KunstmaanSandbox/blob/feature/update-to-2.1/README.md
このプロジェクトの次の段階は、Symfony の構成 YAML ファイルを変更することです。しかし、ここで私は立ち往生しています。
parameters.yml については、Ruby スクリプトを使用してこれを行いました。ここに関連する抜粋があります。完全なスクリプトはここにあります: https://github.com/Kunstmaan/KunstmaanSandbox/blob/feature/update-to-2.1/app /Resources/docs/scripts/sandboxinstaller.rb
parametersymlpath = ARGV[1]
projectname = ARGV[2]
parametersyml = YAML.load_file(parametersymlpath)
params = parametersyml["parameters"]
params["searchport"] = 9200
params["searchindexname"] = projectname
params["sentry.dsn"] = "https://XXXXXXXX:XXXXXXXX@app.getsentry.com/XXXX"
params["cdnpath"] = ""
params["requiredlocales"] = "nl|fr|de|en"
params["defaultlocale"] = "nl"
params["websitetitle"] = projectname.capitalize
File.open(parametersymlpath, 'w') {|f| f.write(YAML.dump(parametersyml)) }
ここまでは問題ありませんが、同じタイプのスクリプトが config.yml で次の行のために失敗します。
imports:
- { resource: @KunstmaanMediaBundle/Resources/config/config.yml }
- { resource: @KunstmaanAdminBundle/Resources/config/config.yml }
- { resource: @KunstmaanFormBundle/Resources/config/config.yml }
- { resource: @KunstmaanSearchBundle/Resources/config/config.yml }
- { resource: @KunstmaanAdminListBundle/Resources/config/config.yml }
@ は YAML 仕様による予約文字であり、Ruby はエラーをスローします。
インストールのこの時点で完全なsymfonyインストールがあり、このスタンドアロンコマンドを思いついたので、phpとsymfony yamlコンポーネントに切り替えました: https://gist.github.com/3526251
しかし、config.yml ファイルを読み取ってダンプすると、たとえば上記の行は次のようになります。
imports:
-
resource: @KunstmaanMediaBundle/Resources/config/config.yml
-
resource: @KunstmaanAdminBundle/Resources/config/config.yml
-
resource: @KunstmaanFormBundle/Resources/config/config.yml
-
resource: @KunstmaanSearchBundle/Resources/config/config.yml
-
resource: @KunstmaanAdminListBundle/Resources/config/config.yml
これはがらくたのように見えますが、これが機能するかどうかは完全にはわかりません。
したがって、この時点で、完全に変更された config.yml ファイルをインストール スクリプトに移動し、元のファイルを上書きすることを検討しています。symfony-standard プロジェクトで何かが変更された場合、定期的なメンテナンスが必要になるため、そこには行きたくありません。
別の方法があるかどうか疑問に思っていますか?