Skip to content
Caution: You are browsing the legacy symfony 1.x part of this website.

コマンドラインインターフェイス

Symfony version
Language

概要

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.ymlconfig/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-modelpropel:build-sqlpropel: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-allpropel: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.ymlpurge: 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.