0

すべてのバンドルとその依存関係の追加と構成を含む、新しい 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 プロジェクトで何かが変更された場合、定期的なメンテナンスが必要になるため、そこには行きたくありません。

別の方法があるかどうか疑問に思っていますか?

4

1 に答える 1

1

これら 2 つの形式は意味的に同等です。これらは、それぞれインライン ブロックとインデント ブロックと呼ばれます。

于 2012-08-30T11:03:52.260 に答える