The symfony Cookbook

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

Be trained by symfony experts
Dec 10: Paris (1.1 - Francais)
Dec 10: Atlanta (1.1 - English)
Dec 17: Montreal (1.1 - Francais)
Jan 21: Paris (1.1 - Francais)
Feb 18: Paris (1.1 - Francais)
and more...

About

You are currently reading "The symfony Cookbook" which is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.

Search


powered by google

Chapter Content

概要

CLIのコア

CLIタスク

構造の生成

モデルの生成

スキーマの管理

データの管理

開発ツール

テスト

プロジェクトの管理

scaffoldingとadminの生成

プラグインの管理

自動入力補完

You are currently browsing "The symfony Cookbook" in Japanese for the 1.1 version. Switch to another version: Switch to another language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Translation of this work into another language is explicitly allowed.

概要

ウェブアプリケーションの開発とメンテナンスの期間に開発者が実行する多くのタスクはsymfonyのコマンドラインインターフェイス(CLI)によって取り扱われます。16章ではこれらのいくつかのタスクが詳細に説明されているのに対して、この章では手短にこれらすべての一覧を示します。

CLIのコア

symfonyスクリプトはプロジェクトのroot内に位置するPHPスクリプトです。symfonyコマンドはタスクを求め、いくつかのタスクは追加パラメータを必要とします。このコマンドを呼び出すためには、次の構文を使います:

$ cd myproject
$ php symfony <TASK_NAME> [arguments]

タスクはオプションを取ることもできます:

$ php symfony <TASK_NAME> [arguments] --option1=value --option2

symfonyのCLIはsymfonyプロジェクトのrootからのみ動作します。

symfonyのサンドボックスはより速く呼び出すことができるWindowsと*nitプラットフォームのための実行ファイルを含みます:

$ ./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コマンドの自動入力補完を可能にする設定ファイルが含まれます。利用しているシェルに適したものをチェックアウトして下さい:

Questions & Feedback

If you find a typo or an error, please register and open a ticket.

If you need support or have a technical question, please post to the user mailing-list or to the forum.