開発者がウェブアプリケーションの構築時やメンテナンス中に実行する多くのタスクは symfony のコマンドラインインターフェース (CLI)によって操作されることができます。
symfony は Pake と呼ばれる一般的なタスク管理するための専用のツールを使います。Pake はRake コマンド (makeコマンドのRuby翻訳) に類似した PHPツールです。それはいくつかの管理作業を pakefile.php と呼ばれる設定ファイルに従って自動化します。しかし、pake ツールをコマンドラインからsymfony と入力することによりのみ利用するのため、聞こえよりはかなりシンプルなものになっています。
注意: symfony CLI は symfony プロジェクトのルートからのみ動作します。
$ symfony -V
インストールしたsymfonyのバージョンを返します。
$ symfony
アドミニストレーション操作の完全なリストを返します。
symfony コマンドはタスクを予期していて、タスクには追加パラメータが必要なものもあります。一般的な構文は次のようになります。
$ symfony <TASK> [parameters]
より速く入力できるように2,3 のタスクはショートカットを持っています。効果は同じです。
$ symfony cc
// 次と同じ動作します
$ symfony clear-cache
例外が発生したとき、スタックトレース情報と、詳細な説明が欲しいでしょう。 -t オプションをタスク名の前に付けてトレースを取得できます。
$ symfony init-project <PROJECT_NAME>
新しいsymfonyプロジェクトの初期化します (ショートカット: new)
$ symfony init-app <APPLICATION_NAME>
新しいsymfonyアプリの初期化します (ショートカット: app )
$ symfony init-module <APPLICATION_NAME> <MODULE_NAME>
新しいsymfonyモジュールの初期化します (ショートカット: module )
$ symfony init-batch <SKELETON_NAME> [...]
新しいバッチファイルを初期化します (ショートカット: batch)。 初期化するためにバッチスケルトンを選択しなければなりません。そしてそのとき次のようなプロンプトになります。
$ symfony init-controller <APPLICATION_NAME> <ENVIRONMENT_NAME> [<SCRIPT_NAME>] [true|false]
新しいコントローラーを初期化します (ショートカット: controller )。デフォルトのスクリプト名は symfony の規則に従います。
これらのコマンドの詳細についてはプロジェクト作成の章を参照してください。
$ symfony propel-build-model
config/ ディレクトリのスキーマファイル(YAML もしくは XML)に基づき、現在のモデルのためのPropelクラスを生成します。
次のようなコマンドで利用される接続設定は config/propel.ini 設定から取得されます。
$ symfony propel-build-sql
schema.yml に記述されたテーブルを作成するためのSQLコードを data/schema.sql ファイルに生成します。
$ symfony propel-build-db
接続設定に基づく空のデータベースを生成します
$ symfony propel-insert-sql
データベースに data/schema.sql からSQLコードをinsertします。
$ symfony propel-build-all
propel-build-model, propel-build-sql そして propel-insert-sql と全てのコマンドを一度に行います。
$ symfony propel-load-data <APPLICATION_NAME> [<ENVIRONMENT_NAME>] [<FIXTURES_DIR_OR_FILE>]
特別に指定していなければ、デフォルトの data/fixtures/ ディレクトリから全てのデータを読み込みます。環境のデフォルトは dev です。 fixturesディレクトリはプロジェクトの data ディレクトリに相対的に指定されていなければなりません。たとえば、fixtures (デフォルト) もしくは testdata もしくは fixtures/file.yml という1つのファイルを指定したりします。
$ symfony propel-build-all-load <APPLICATION_NAME> [<ENVIRONMENT_NAME>] [<FIXTURES_DIR_OR_FILE>]
propel-build-all を実行し、propel-load-dataを実行します。propel-load-data と同じ引数をとります。
$ symfony propel-build-schema
既存データベースから schema.yml を生成します。
$ symfony propel-build-schema xml
既存データベースから schema.xml を生成します。
さらにmodelとこれらのコマンドの効果について知りたいなら、modelの章を参照してください。
$ symfony clear-cache [<APPLICATION_NAME>] [template|config]
キャッシュ情報を消去します(ショートカット: cc) (詳細はキャッシュの章を参照)
$ symfony clear-controllers
製品環境で実際に使用する1つのコントローラー以外の全てのコントローラーのウェブディレクトリを消去します。開発環境から製品サーバーに移す場合にとても便利です。
$ symfony fix-perms
ディレクトリのパーミッションを修正します。書き込みが必要なディレクトリのパーミッションを 777 に変更します。もし、SVN リポジトリからチェックアウトを使っている場合はパーミッションは壊されます。
$ symfony test <APPLICATION_NAME>
アプリケーションのテスト一式を開始します (ユニットテストの章を参照)
$ symfony freeze
$ symfony unfreeze
全ての必要な symfony のライブラリをプロジェクトの data/, lib/, web/sf/ にコピーします。このときプロジェクトはsandboxの一種になります。たとえば、依存のない単独のアプリケーションや FTP で製品環境に転送する用意があったりする場合です。PEARインストールは シンボリックリンクの場合と同様にきちんと動作します。 unfreeze タスクでプロジェクトを使用しないようにします。
$ symfony sync <ENVIRONMENT_NAME> [go]
現在のプロジェクトを別のマシンのと同期します (開発の章を参照)
$ symfony disable <APPLICATION_NAME> <ENVIRONMENT_NAME>
まるでsettings.ymlで設定したときのように、 settings.yml で利用できないモジュールとアクションをユーザーに通知し動作します。この設定の利点はたった1つの環境で1つのアプリケーションを停止させ、プロジェクト全体を停止しなくてよいということです。
$ symfony enable <APPLICATION_NAME> <ENVIRONMENT_NAME>
アプリケーションを有効にし、キャッシュを消去します
$ symfony purge-logs
logging.yml が purge: on (デフォルトの値です) 指定している環境とアプリケーションのログディレクトリのログファイルを消去します。
$ symfony rotate-log <APPLICATION_NAME> <ENVIRONMENT_NAME>
もし、rotate が logging.yml でログファイルのために有効になっていればログファイルをローテーションします。ローテーションのパラメーターは period (1つのログファイルが最後までもちこたえる日数) そして history(保管されるログファイル数)です。ここに ローテーション設定がされた logging.yml の例があります。
prod:
rotate: on
period: 7 ## ログファイルは7日ごとにローテートされます
history: 10 ## 最大10個のログファイルが保存されます
$ symfony propel-generate-crud <APPLICATION_NAME> <MODULE_NAME> <CLASS_NAME>
$ symfony propel-init-crud <APPLICATION_NAME> <MODULE_NAME> <CLASS_NAME>
モデルから新しい CRUD モデルを生成します。symfony propel-generate-crud 版はフレームワークから新しいモジュールにコピーされます。symfony propel-init-crud 版はフレームワークの同じものから継承した空のモジュールをコピーします。この場合、(フレームワークから継承し生成されたアクションとテンプレートなどの) 生成されたコードは cache/ フォルダの中にだけ見ることができます 。
$ symfony propel-init-admin <APPLICATION_NAME> <MODULE_NAME> <CLASS_NAME>
モデルからクラスに基づく新しいPropel adminモジュールを初期化します
これらのコマンドについて知りたいなら、足場生成(scaffolding) と生成の章を参照してください。
$ symfony plugin-install [local|global] <CHANNEL_NAME>/<PLUGIN_NAME>
新しいプラグインをインストールします
$ symfony plugin-upgrade [local|global] <CHANNEL_NAME>/<PLUGIN_NAME>
プラグインを更新します
$ symfony plugin-upgrade-all
ローカルにインストールすべてのプラグインを更新します
$ symfony plugin-uninstall [local|global] <CHANNEL_NAME>/<PLUGIN_NAME>
プラグインをアンインストールします
プラグインの章にプラグインの構築方法、インストールそして管理について詳しく書かれています。
symfony の wiki は symfony コマンドの自動補完が行えるようにしたユーザーによる設定ファイルを含んでいます。あなたの CLI にあったものを確認してください。