概要
Webアプリケーションの開発とメンテナンスの期間に開発者が実行する多くのタスクはsymfonyのコマンドラインインターフェイス(CLI)によって扱われます。 16章ではこれらのいくつかのタスクが詳細に説明されているのに対して、この章では手短にこれらすべての一覧を示します。
CLIのコア
symfony
スクリプトはプロジェクトのルートに位置するPHPスクリプトです。
symfonyコマンドはタスクを求め、いくつかのタスクは追加パラメーターを必要とします。
このコマンドを呼び出すためには、次の構文を使います:
$ cd myproject $ php symfony <TASK_NAME> [arguments]
タスクはオプションを取ることもできます:
$ php symfony <TASK_NAME> [arguments] --option1=value --option2
note
symfonyのCLIはsymfonyプロジェクトのrootからのみ動作します。
symfonyのサンドボックスはより速く呼び出すことができるWindowsと*nixプラットフォームのための実行ファイルを含みます:
$ ./symfony <TASK> [parameters] # *nix $ symfony <TASK> [parameters] # Windows
この章の例文ではphp
実行ファイルを使いますが、プロジェクトが適切な実行ファイルを持つ場合は省略できます。
利用できるすべてのタスクの一覧を表示するためには、次のコマンドを呼び出します:
$ php symfony
インストールされたsymfonyパッケージのバージョンを表示するためには、次のコマンドを入力します:
$ php symfony -V
いくつかのタスクは、より速く入力できて、同じ効果を持つショートカットを持ちます。
$ php symfony cc // 下記と同じ $ php symfony cache:clear
例外が起きたとき、スタックトレースと詳細な説明を取得するとよいでしょう。
トレースを取得するタスク名の前に-t
オプションを追加します。
CLIタスク
それぞれの組み込みのタスクはタスクの目的、タスクが受け取るすべての引数とオプションの説明を持ちます。
この情報を表示するために、help
タスクを利用できます:
$ php symfony help cache:clear
構造の生成
$ php symfony generate:project <PROJECT_NAME>
新しいsymfonyプロジェクトを初期化します。
$ php symfony generate:app <APPLICATION_NAME>
新しいsymfonyアプリケーションを初期化します。
$ php symfony generate:module <APPLICATION_NAME> <MODULE_NAME>
新しいsymfonyのモジュールを初期化します。
これらのコマンドに関する詳細な情報は16章で見つけてください。
モデルの生成
$ php symfony configure:database mysql://localhost/db_name
config/databases.yml
とconfig/propel.ini
の両方に対してデータベースの情報を設定します。
$ php symfony propel:build-model
config/
ディレクトリのスキーマファイル(YAMLもしくはXML)に基づいて、現在のモデルに対するPropelクラスを生成します。
次のコマンドで使われる接続設定はconfig/propel.ini
設定ファイルから取られます。
$ php symfony propel:build-sql
schema.xml
内に記述されたテーブルを作るSQLコードをdata/schema.sql
ファイルに生成します。
$ php symfony propel:build-db
接続設定に基づいて空のデータベースを作成します。
$ php symfony propel:insert-sql
data/schema.sql
からSQLコードをデータベースに挿入します。
$ php symfony propel:build-forms
モデルに関連したフォームを生成します。
$ php symfony propel:build-all
propel:build-model
、propel:build-sql
、propel:build-forms
、とpropel:insert-sql
すべてを1つのコマンドで実行します。
これらのコマンドについて詳細な内容は8章で見つけてください。
スキーマの管理
$ php symfony propel:build-schema [--xml]
既存のデータベースからschema.yml
ファイルを作ります。
--xml
パラメーターが追加された場合、タスクはYAMLバージョンの代わりにschema.xml
ファイルを作ります。
$ php symfony propel:schema-to-yml
見つかるXMLスキーマのYAMLバージョンを作ります。
$ php symfony propel:schema-to-xml
見つかるYAMLスキーマのXMLバージョンを作ります。
データの管理
$ php symfony propel:data-load <APPLICATION_NAME> [--env=<ENVIRONMENT_NAME>] [--dir=<FIXTURES_DIR_OR_FILE>]
他に指定されていなければデフォルトのdata/fixtures/
ディレクトリからすべてのデータを読み込みます。
デフォルトの環境はdev
です。
フィクスチャディレクトリはプロジェクトのデータディレクトリに対して相対的に指定しなければなりません。
たとえばfixtures
(デフォルト)、もしくはtestdata
もしくは単独のファイルであるfixtures/file.yml
を指定します。
$ php symfony propel-build-all-load <APPLICATION_NAME> [<ENVIRONMENT_NAME>] [<FIXTURES_DIR_OR_FILE>]
propel:build-all
とpropel:data-load
を実行します。propel:data-load
と同じ引数を受け取ります。
$ php symfony propel-dump-data <APPLICATION_NAME> <FIXTURES_DIR_OR_FILE> [<ENVIRONMENT_NAME>]
データベースのデータをYAMLフォーマットでフィクスチャファイル内のファイルにダンプします。
開発ツール
$ php symfony cache:clear [--app=<APPLICATION_NAME>] [--type=template|config|i18n|routing] [--env=<ENVIRONMENT_NAME>]
キャッシュ情報(ショートカット: cc
)をクリアします(詳細は12章で見つけてください)。
$ php symfony project:permissions
ディレクトリのパーミッションを修正して書き込み権限が必要なディレクトリを777
に変更してください。
SVNリポジトリからチェックアウトする場合、パーミッションが壊れる可能性があります。
$ php symfony project:freeze <SF_DATA_DIR> $ php symfony project:unfreeze
すべての必要なsymfonyライブラリをプロジェクトのdata/
、lib/
とweb/sf/
ディレクトリにコピーしてください。
あなたのプロジェクトは一種のサンドボックスになります。
すなわち依存しないスタンドアロンのアプリケーションで、FTP経由で本番のサーバーに転送する準備ができています。
シンボリックリンクと同様にPEARインストールで立派に動作します。project:unfreeze
タスクでプロジェクトを解凍します。
$ php symfony project:deploy <SERVER_CONFIGURATION_NAME> [--go]
現在のプロジェクトを他のマシンに同期化してください(16章で詳細な内容を見つけてください)。
テスト
$ php symfony test:unit <UNIT_TEST>
test/unit/
ディレクトリに設置されたユニットテストを立ち上げます。
パラメーターは1つのユニットテストのファイル(Test.php
接尾辞は省略)、ユニットテストファイルのグループもしくはワイルドカードを持つファイルパスの名前です。
テスト名が渡されない場合、すべてのテストが実行されます。
$ php symfony test:unit
ハーネスモードですべてのユニットテストを起動します。
$ php symfony test:functional <APPLICATION_NAME> <TEST>
特定のアプリケーションに対して機能テストを立ち上げます。
TEST
パラメーターは単独の機能テストのファイル((Test.php
の接尾辞は省略)、もしくはグループのユニットテストファイル、もしくはワイルドカードによるファイルパスの名前になります。
$ php symfony test:functional <APPLICATION_NAME>
ハーネスモードですべてのアプリケーションの機能テストを立ち上げます。
$ php symfony test:all
ハーネスモードですべてのユニットテストと機能テストを立ち上げます。
テストについてもっと詳細な内容は15章をご覧ください。
プロジェクトの管理
$ php symfony project:disable <APPLICATION_NAME> <ENVIRONMENT_NAME>
ユーザーをsettings.yml
ファイル内の利用不可能であることを伝えるモジュールとアクションに転送しsettings.yml
ファイル内で利用不可能であることを伝える設定をしたようにふるまいます。
settings.yml
ファイルを上回る利点はプロジェクト全体だけでなく単独のアプリケーションを無効にできることです。
$ php symfony project:enable <APPLICATION_NAME> <ENVIRONMENT_NAME>
アプリケーションを有効にしてキャッシュをクリアします。
$ php symfony log:clear
logging.yml
がpurge: on
(デフォルト値)を指定するアプリケーションと環境のログディレクトリにおけるログファイルをクリアします。
$ php symfony log:rotate <APPLICATION_NAME> <ENVIRONMENT_NAME>
ログファイルのローテーションを強制します。
ローテーションオプションは--period
(1つのログファイルを使い続ける日数)と--history
(保存するログファイルのバックアップ数)です。
scaffoldingとadminの生成
$ php symfony propel:generate-crud <APPLICATION_NAME> <MODULE_NAME> <CLASS_NAME>
モデルからのクラスに基づいて新しいPropelのCRUDモジュールを生成します。
通常のバージョンはフレームワークからのコードを新しいモジュールにコピーします。
--generate-in-cache
オプションを追加する場合、タスクはフレームワークのモジュールから継承した空のモジュールを作ります。
この場合、生成されたコードはcache/
フォルダ内のみに見えます(生成されたアクションとテンプレートはフレームワークから継承します)。
$ php symfony propel:init-admin <APPLICATION_NAME> <MODULE_NAME> <CLASS_NAME>
モデルからのクラスに基づいて新しいPropelのadminモジュールを初期化します
これらのコマンドについてもっと詳細な情報は14章を調べてください。
プラグインの管理
$ php symfony plugin:install <CHANNEL_NAME>/<PLUGIN_NAME>
新しいプラグインをインストールします。
symfonyのwikiから新しいプラグインをインストールするために、http://plugins.symfony-project.com
をチャンネル名として使います。
$ php symfony plugin:upgrade <CHANNEL_NAME>/<PLUGIN_NAME>
プラグインをアップグレードします。
$ php symfony plugin:upgrade-all
以前ローカルにインストールされたすべてのプラグインをアップグレードします。
$ php symfony plugin:uninstall <CHANNEL_NAME>/<PLUGIN_NAME>
プラグインをアンインストールします。
プラグインについて詳細な内容は17章を調べてください。
自動入力補完
symfonyのwikiにはユーザーが投稿したsymfonyコマンドの自動入力補完を可能にする設定ファイルが含まれます。 利用しているシェルに適したものをチェックアウトしてください:
This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.