Caution: You are browsing the legacy symfony 1.x part of this website.
Cover of the book Symfony 5: The Fast Track

Symfony 5: The Fast Track is the best book to learn modern Symfony development, from zero to production. +300 pages showcasing Symfony with Docker, APIs, queues & async tasks, Webpack, SPAs, etc.

タスク

1.2
Symfony version
1.4
Language

symfonyフレームワークはコマンドラインインターフェイスツールを搭載しています。 組み込みのタスクによって開発者はプロジェクト期間に繰り返されるたくさんのタスクを実行できるようになります。

symfony CLIを引数なしで実行すると、利用可能なタスクの一覧が表示されます:

$ php symfony

-Vオプションを渡すことで、symfonyのバージョンとCLIで使われるsymfonyライブラリのパス情報が得られます:

$ php symfony -V

CLIツールは最初の引数としてタスクの名前を受け取ります:

$ php symfony list

タスクの名前は、コロン(:)で区切られるオプションの名前空間と名前で構成されます:

$ php symfony cache:clear

引数とオプションはタスクの名前の後に渡します:

$ php symfony cache:clear --type=template

CLIツールは値の有無とオプションの長短バージョンの表記をそれぞれサポートします。

タスクにデバッグ情報を出力するよう指示する-tオプションはグローバルオプションです。

利用可能なタスク

help

helpタスクはタスクのヘルプメッセージを表示する:

$ php symfony help  [task_name]

エイリアス: h

引数 デフォルト 説明
task_name help タスクの名前

list

listタスクはタスクの一覧を表示する:

$ php symfony list  [namespace]
引数 デフォルト 説明
namespace - 名前空間の名前

listタスクはすべてのタスクの一覧を表示します:

./symfony list

特定の名前空間用のタスクを表示することもできます:

./symfony list test

app

app::routes

app::routesタスクは現在のアプリケーションのルートを表示する:

$ php symfony app:routes  application [name]
引数 デフォルト 説明
application - アプリケーションの名前
name - ルートの名前

app:routesは現在のアプリケーションのルートを表示します:

./symfony app:routes frontend

cache

cache::clear

cache::clearタスクはキャッシュをクリアする:

$ php symfony cache:clear [--app[="..."]] [--env[="..."]] [--type[="..."]] 

エイリアス: cc、clear-cache

オプション(ショートカット) デフォルト 説明
--app - アプリケーションの名前
--env - 環境
--type all 種類

cache:clearタスクはsymfonyのキャッシュをクリアします。

デフォルトでは、これはすべての利用可能な種類、すべてのアプリケーションとすべての環境のキャッシュを削除します。

種類、アプリケーションもしくは環境で制限できます:

たとえば、frontendアプリケーションのキャッシュをクリアするには:

./symfony cache:clear --app=frontend

frontendアプリケーションのprod環境のキャッシュをクリアするには:

./symfony cache:clear --app=frontend --env=prod

すべてのprod環境のキャッシュをクリアするには:

./symfony cache:clear --env=prod

prod環境のconfigキャッシュをクリアするには:

./symfony cache:clear --type=config --env=prod

組み込みの種類は次のとおりです: configi18nroutingmoduletemplate

configure

configure::author

configure::authorタスクはプロジェクトの著者を設定する:

$ php symfony configure:author  author
引数 デフォルト 説明
author - プロジェクトの著者

configure:authorタスクはプロジェクトの著者を設定します:

./symfony configure:author "Fabien Potencier <[email protected]>"

それぞれの生成ファイルでPHPDocヘッダーをあらかじめ設定するためにジェネレーターによって著者の名前が使われます。

値は[config/properties.ini]に保存されます。

configure::database

configure::databaseタスクはデータベースのDSNを設定する:

$ php symfony configure:database [--env[="..."]] [--name[="..."]] [--class[="..."]] [--app[="..."]] dsn [username] [password]
引数 デフォルト 説明
dsn - データベースのDSN
username root データベースユーザーの名前
password - データベースのパスワード
オプション(ショートカット) デフォルト 説明
--env all 環境
--name propel 接続名
--class sfPropelDatabase データベースクラスの名前
--app - アプリケーションの名前

configure:databaseタスクはプロジェクトのデータベースのDSNを設定します:

./symfony configure:database mysql:host=localhost;dbname=example root mYsEcret

デフォルトでは、タスクはすべての環境のコンフィギュレーションを変更します。 特定の環境のためにDSNを変更したい場合、envオプションを使います:

./symfony configure:database --env=dev mysql:host=localhost;dbname=example_dev root mYsEcret

特定のアプリケーションのコンフィギュレーションを変更するには、appオプションを使います:

./symfony configure:database --app=frontend mysql:host=localhost;dbname=example root mYsEcret

接続名とデータベースのクラス名を指定することもできます:

./symfony configure:database --name=main --class=sfDoctrineDatabase mysql:host=localhost;dbname=example root mYsEcret

WARNING: Propelデータベースを使いappなしでall環境を設定するときはpropel.iniファイルも更新されます。

doctrine

doctrine::build-all

doctrine::build-allタスクはDoctrineモデル、SQLを生成しデータベースを初期化する:

$ php symfony doctrine:build-all [--application[="..."]] [--env="..."] [--no-confirmation] [--skip-forms|-F] 

エイリアス: doctrine-build-all

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境
--no-confirmation - 確認の質問をしない
--skip-forms
(-F)
- フォーム生成を省く

doctrine:build-allタスクは6つのタスクのショートカットです:

./symfony doctrine:build-all

タスクは次のものと同等です:

./symfony doctrine:build-db
./symfony doctrine:build-model
./symfony doctrine:build-sql
./symfony doctrine:build-forms
./symfony doctrine:build-filters
./symfony doctrine:insert-sql

詳細な情報はこれらのタスクのヘルプページを参照してください。

確認を回避するには、no-confirmationオプションを渡します:

./symfony doctrine:buil-all-load --no-confirmation

doctrine::build-all-load

doctrine::build-all-loadタスクはDoctrineモデル、SQLを生成し、データベースを初期化し、フィクスチャデータをロードする:

$ php symfony doctrine:build-all-load [--application[="..."]] [--env="..."] [--connection="..."] [--no-confirmation] [--skip-forms|-F] [--dir="..."]

エイリアス: doctrine-build-all-load

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境
--connection doctrine 接続名
--no-confirmation - 確認の質問をしない
--skip-forms
(-F)
- フォーム生成を省く
--dir - フィクスチャを探すディレクトリ(複数の値が許可される)

doctrine:build-all-loadタスクは7つのタスクのショートカットです:

./symfony doctrine:build-all-load

タスクは次のものと同等です:

./symfony doctrine:build-db
./symfony doctrine:build-model
./symfony doctrine:build-sql
./symfony doctrine:build-forms
./symfony doctrine:build-filters
./symfony doctrine:insert-sql
./symfony doctrine:data-load

doctrine:data-loadタスクなのでアプリケーションの引数を受け取ります。 詳細な情報はdoctrine:data-loadのヘルプページを参照してください。

確認を回避するには、no-confirmationオプションを渡します:

./symfony doctrine:build-all-load --no-confirmation

doctrine::build-all-reload

doctrine::build-all-reloadタスクはDoctrineモデル、SQLを生成し、データベースを初期化し、データをロードする:

$ php symfony doctrine:build-all-reload [--application[="..."]] [--env="..."] [--connection="..."] [--no-confirmation] [--skip-forms|-F] [--dir="..."] 

エイリアス: doctrine-build-all-reload

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境
--connection doctrine 接続名
--no-confirmation - 確認をしない
--skip-forms
(-F)
- フォーム生成を省く
--dir - フィクスチャを探すディレクトリ(複数の値が許可される)

doctrine:build-all-reloadタスクは8つのタスクのショートカットです:

./symfony doctrine:build-all-reload

タスクは次のものと同等です:

./symfony doctrine:drop-db
./symfony doctrine:build-db
./symfony doctrine:build-model
./symfony doctrine:build-sql
./symfony doctrine:build-forms
./symfony doctrine:build-filters
./symfony doctrine:insert-sql
./symfony doctrine:data-load

doctrine::build-all-reload-test-all

doctrine::build-all-reload-test-allタスクはDoctrineモデル、SQLを生成し、データベースを初期化し、データをロードしてすべてのテストを実施する:

$ php symfony doctrine:build-all-reload-test-all [--application[="..."]] [--env="..."] [--append] [--dir="..."] [--force] 

エイリアス: doctrine-build-all-reload-test-all

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境
--append - データベースの現在の値を削除しない
--dir - フィクスチャを探すディレクトリ(複数の値が許可される)
--force - データベースの削除を強制するか

doctrine:build-all-reloadタスクは9つのタスクのショートカットです:

./symfony doctrine:build-all-reload-test-all frontend

タスクは次のものと同等です:

./symfony doctrine:drop-db
./symfony doctrine:build-db
./symfony doctrine:build-model
./symfony doctrine:build-sql
./symfony doctrine:build-forms
./symfony doctrine:build-filters
./symfony doctrine:insert-sql
./symfony doctrine:data-load
./symfony test-all

doctrine:data-loadタスクなのでアプリケーションの引数を受け取ります。 詳細な情報はdoctrine:data-loadのヘルプページを参照してください。

doctrine::build-db

doctrine::build-dbタスクは現在のモデル用のデータベースを作成する:

$ php symfony doctrine:build-db [--application[="..."]] [--env="..."] 

エイリアス: doctrine-build-db

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境

doctrine:build-dbタスクはデータベースを作成します:

./symfony doctrine:build-db

タスクはconfig/doctrine/databases.ymlの接続情報を読み込みます:

doctrine::build-filters

doctrine::build-filtersタスクは現在のモデル用のフィルターフォームクラスを作成する:

$ php symfony doctrine:build-filters [--connection="..."] [--model-dir-name="..."] [--filter-dir-name="..."] [--application[="..."]] [--env="..."] 
オプション(ショートカット) デフォルト 説明
--connection doctrine 接続名
--model-dir-name model モデルディレクトリの名前
--filter-dir-name filter フィルターフォームディレクトリの名前
--application 1 アプリケーションの名前
--env dev 環境

doctrine:build-filtersタスクはスキーマからフィルターフォームクラスを作成します:

./symfony doctrine:build-filters

タスクはプロジェクトとすべてのインストールしたプラグインからconfig/*schema.xmlかつ/またはconfig/*schema.ymlのスキーマ情報を読み込みます。

タスクはconfig/databases.ymlで定義されたdoctrine接続を使います。 --connectionオプションをつけることで別の接続を使うことができます:

./symfony doctrine:build-filters --connection="name"

モデルフィルターフォームクラスのファイルはlib/filterで作成されます。

このタスクはlib/filterのなかのカスタムタスクを上書きしません。 これはlib/filter/baseで生成された基底クラスのみを置き換えます。

doctrine::build-forms

doctrine::build-formsタスクは現在のモデル用のフォームクラスを作成する:

$ php symfony doctrine:build-forms [--connection="..."] [--model-dir-name="..."] [--form-dir-name="..."] [--application[="..."]] [--env="..."] 
オプション(ショートカット) デフォルト 説明
--connection doctrine 接続名
--model-dir-name model モデルディレクトリの名前
--form-dir-name form フォームディレクトリの名前
--application 1 アプリケーションの名前
--env dev 環境

doctrine:build-formsタスクはスキーマからフォームクラスを作成します:

./symfony doctrine:build-forms

タスクはプロジェクトとすべてのインストールしたプラグインからconfig/*schema.xmlかつ/もしくはconfig/*schema.ymlのスキーマ情報を読み取ります。

タスクはconfig/databases.ymlで定義されるdoctrine接続を使います。 --connectionオプションをつけることで別の接続を使うことができます:

./symfony doctrine:build-forms --connection="name"

モデルフォームクラスのファイルはlib/formで作成されます。

このタスクはlib/formのなかのカスタムクラスをけっして上書きしません。 これはlib/form/baseで生成された基底クラスのみを置き換えます。

doctrine::build-model

doctrine::build-modelタスクは現在のモデル用のクラスを作成する:

$ php symfony doctrine:build-model [--application[="..."]] [--env="..."] 

エイリアス: doctrine-build-model

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境

doctrine:build-modelタスクはスキーマからモデルクラスを作成します:

./symfony doctrine:build-model

タスクはプロジェクトとインストールしたすべてのプラグインからconfig/doctrine/*.ymlのスキーマ情報を読み込みます。

モデルクラスファイルはlib/model/doctrineで作成されます。

このタスクはlib/model/doctrineのなかのカスタムタスクをけっして上書きしません。 これはlib/model/doctrine/baseのファイルのみを置き換えます。

doctrine::build-schema

doctrine::build-schema タスクは既存のデータベースからスキーマを作成する:

$ php symfony doctrine:build-schema [--application[="..."]] [--env="..."] 

エイリアス: doctrine-build-schema

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境

doctrine:build-schemaタスクはスキーマを作成するデータベースをイントロスペクトします:

./symfony doctrine:build-schema

タスクはconfig/doctrineにYAMLファイルを作成します。

doctrine::build-sql

doctrine::build-sqlタスクは現在のモデル用のSQLを作成する:

$ php symfony doctrine:build-sql [--application[="..."]] [--env="..."] 

エイリアス: doctrine-build-sql

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境

doctrine:build-sqlタスクはテーブル作成用のSQLステートメントを作成します:

./symfony doctrine:build-sql

生成SQLはconfig/databases.ymlで設定されるデータベース用に最適化されます:

doctrine.database = mysql

doctrine::data-dump

doctrine::data-dumpタスクはデータをフィクスチャディレクトリにダンプする:

$ php symfony doctrine:data-dump [--application[="..."]] [--env="..."] [target]

エイリアス: doctrine-dump-data

引数 デフォルト 説明
target - ターゲットのファイル名
オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境

doctrine:data-dumpタスクはデータベースデータをダンプします:

./symfony doctrine:data-dump

タスクはデータベースのデータをdata/fixtures/%target%にダンプします。

doctrine:data-loadタスクを使ってダンプファイルはYAMLフォーマットで再インポートできます。

./symfony doctrine:data-load frontend

doctrine::data-load

doctrine::data-loadタスクはフィクスチャディレクトリからデータをロードする:

$ php symfony doctrine:data-load [--application[="..."]] [--env="..."] [--append] [--connection="..."] [--dir="..."] 

エイリアス: doctrine-load-data

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境
--append - データベースの現在の値を削除しない
--connection doctrine 接続名
--dir - フィクスチャを探すディレクトリ(複数の値が許可される)

doctrine:data-loadタスクはデータフィクスチャをデータベースにロードします:

./symfony doctrine:data-load frontend

タスクはdata/fixtures/で見つかるすべてのファイルからデータをロードします。

ほかのディレクトリからデータをロードしたい場合、--dirオプションをつけます:

./symfony doctrine:data-load --dir="data/fixtures" --dir="data/data" frontend

タスクにデータベースの既存のデータを削除させたくない場合、--appendオプションを指定します:

./symfony doctrine:data-load --append frontend

doctrine::dql

doctrine::dqlタスクはDQLクエリを実行し結果を表示する:

$ php symfony doctrine:dql [--application[="..."]] [--env="..."] [--show-sql] dql_query

エイリアス: doctrine-dql

引数 デフォルト 説明
dql_query - 実行するDQLクエリ
オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境
--show-sql - 実行されるSQLを表示する

doctrine:data-dqlタスクはDQLクエリを実行しフォーマットされた結果を表示します:

./symfony doctrine:dql "FROM User u"

--dirオプションを指定して実行されるSQLを表示できます:

./symfony doctrine:dql --show-sql "FROM User u"

doctrine::drop-db

doctrine::drop-dbタスクは現在のモデルのデータベースを削除する:

$ php symfony doctrine:drop-db [--application[="..."]] [--env="..."] [--no-confirmation] 

エイリアス: doctrine-drop-db

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境
--no-confirmation - データベースの削除を強制するか

doctrine:drop-dbタスクはデータベースを削除します:

./symfony doctrine:drop-db

タスクはconfig/doctrine/databases.ymlの接続情報を読み込みます:

doctrine::generate-admin

doctrine::generate-adminタスクはDoctrineのadminモジュールを生成する:

$ php symfony doctrine:generate-admin [--module="..."] [--theme="..."] [--singular="..."] [--plural="..."] [--env="..."] application route_or_model
引数 デフォルト 説明
application - アプリケーションの名前
route_or_model - ルートの名前もしくはモデルクラス
オプション(ショートカット) デフォルト 説明
--module - モジュールの名前
--theme admin テーマの名前
--singular - 単数形の名前
--plural - 複数形の名前
--env dev 環境

doctrine:generate-adminタスクはDoctrineのadminモジュールを生成します:

./symfony doctrine:generate-admin frontend Article

タスクは%Article%モデルの%frontend%アプリケーションのモジュールを作成します。

タスクはアプリケーションのrouting.yml用のルートを作成します。

ルートの名前を渡すことでDoctrineのadminモジュールを生成することもできます:

./symfony doctrine:generate-admin frontend article

タスクはrouting.ymlで見つかる%article%ルート用の%frontend%アプリケーションのモジュールを作成します。

フィルターとバッチアクションを適切に動作させるために、ルートにwildcardオプションを追加する必要があります:

article:
  class: sfDoctrineRouteCollection
  options:
    model:              Article
    with_wildcard_routes:   true

doctrine::generate-migration

doctrine::generate-migrationタスクはマイグレーションクラスを生成する:

$ php symfony doctrine:generate-migration [--application[="..."]] [--env="..."] name

エイリアス: doctrine-generate-migration

引数 デフォルト 説明
name - マイグレーションの名前
オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境

doctrine:generate-migrationタスクはマイグレーションテンプレートを生成します。

./symfony doctrine:generate-migration

doctrine::generate-migrations-db

doctrine::generate-migrations-dbタスクは既存のデータベース接続からマイグレーションクラスを生成する:

$ php symfony doctrine:generate-migrations-db [--application[="..."]] [--env="..."] 

エイリアス: doctrine-generate-migrations-dbdoctrine-gen-migrations-from-db

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境

doctrine:generate-migrationタスクは既存のデータベース接続からマイグレーションクラスを生成します。

./symfony doctrine:generate-migration

doctrine::generate-migrations-models

doctrine::generate-migrations-modelsタスクは既存のモデルのセットからマイグレーションクラスを生成する:

$ php symfony doctrine:generate-migrations-models [--application[="..."]] [--env="..."] 

エイリアス: doctrine-generate-migrations-modelsdoctrine-gen-migrations-from-models

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境

doctrine:generate-migrationタスクは既存のモデルのセットからマイグレーションクラスを生成します。

./symfony doctrine:generate-migration

doctrine::generate-module

doctrine::generate-moduleタスクはDoctrineモジュールを生成する:

$ php symfony doctrine:generate-module [--theme="..."] [--generate-in-cache] [--non-verbose-templates] [--with-show] [--singular="..."] [--plural="..."] [--route-prefix="..."] [--with-doctrine-route] [--env="..."] application module model

エイリアス: doctrine-generate-cruddoctrine:generate-crud

引数 デフォルト 説明
application - アプリケーションの名前
module - モジュールの名前
model - モデルクラスの名前
オプション(ショートカット) デフォルト 説明
--theme default テーマの名前
--generate-in-cache - キャッシュでモジュールを生成する
--non-verbose-templates - 冗長ではないテンプレートを生成する
--with-show - showメソッドを生成する
--singular - 単数形の名前
--plural - 複数形の名前
--route-prefix - ルートのプレフィックス
--with-doctrine-route - Doctrineのルートを使うかどうか
--env dev 環境

doctrine:generate-moduleタスクはDoctrineのモジュールを生成します:

./symfony doctrine:generate-module frontend article Article

%model%モデルクラスの%application%アプリケーションの%module%モジュールを作成します。

--generate-in-cacheオプションをつけることで%sf_app_cache_dir%/modules/auto%module%で実行時に生成されたモジュールからアクションとテンプレートを継承する空のモジュールを作ることもできます:

./symfony doctrine:generate-module --generate-in-cache frontend article Article

--themeオプションをつけることでジェネレーターはカスタマイズされたテーマを使うことができます:

./symfony doctrine:generate-module --theme="custom" frontend article Article

この方法では、独自仕様に合わせてモジュールジェネレーターを作成できます。

doctrine::generate-module-for-route

doctrine::generate-module-for-routeタスクはルート定義用のDoctrineモジュールを生成する:

$ php symfony doctrine:generate-module-for-route [--theme="..."] [--non-verbose-templates] [--singular="..."] [--plural="..."] [--env="..."] application route
引数 デフォルト 説明
application - アプリケーションの名前
route - ルートの名前
オプション(ショートカット) デフォルト 説明
--theme default テーマの名前
--non-verbose-templates - 冗長ではないテンプレートを生成する
--singular - 単数形の名前
--plural - 複数形の複数形の名前
--env dev 環境

doctrine:generate-module-for-routeタスクはルート定義用のDoctrineモジュールを生成します:

./symfony doctrine:generate-module-for-route frontend article

タスクはrouting.ymlで見つかる%article%ルート定義用の%frontend%アプリケーションでモジュールを作成します。

doctrine::insert-sql

doctrine::insert-sqlタスクは現在のモデルにSQLをINSERTする:

$ php symfony doctrine:insert-sql [--application[="..."]] [--env="..."] 

エイリアス: doctrine-insert-sql

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境

doctrine:insert-sqlタスクはデータベースのテーブルを作成します:

./symfony doctrine:insert-sql

タスクはデータベースに接続しすべてのlib/model/doctrine/*.phpファイル用のテーブルを作成します。

doctrine::migrate

doctrine::migrateタスクは現在の/指定バージョンのデータベースにマイグレートする:

$ php symfony doctrine:migrate [--application[="..."]] [--env="..."] [version]

エイリアス: doctrine-migrate

引数 デフォルト 説明
version - マイグレートするバージョン
オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境

doctrine:migrateタスクは現在の/指定バージョンにデータベースをマイグレートします。

./symfony doctrine:migrate

doctrine::rebuild-db

doctrine::rebuild-dbタスクは現在のモデル用のデータベースを作成する:

$ php symfony doctrine:rebuild-db [--application[="..."]] [--env="..."] [--no-confirmation] 

エイリアス: doctrine-rebuild-db

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境
--no-confirmation - 確認をせずにデータベースをドロップするか

doctrine:rebuild-dbタスクはデータベースを作成します:

./symfony doctrine:rebuild-db

タスクはconfig/doctrine/databases.ymlの接続情報を読み込みます:

generate

generate::app

generate::appタスクは新しいアプリケーションを生成する:

$ php symfony generate:app [--escaping-strategy="..."] [--csrf-secret="..."] application

エイリアス: init-app

引数 デフォルト 説明
application - アプリケーションの名前
オプション(ショートカット) デフォルト 説明
--escaping-strategy `` エスケーピング戦略を出力する
--csrf-secret `` CSRF保護に使う秘密の文字列

generate:appタスクは現在のプロジェクトの新しいアプリケーションのための基本的なディレクトリ構造を作成します:

./symfony generate:app frontend

このタスクは2つのフロントコントローラーもweb/ディレクトリに作成します:

web/%application%.php`     運用環境
web/%application%_dev.php` 開発環境

最初のアプリケーションに関して、運用環境のスクリプトの名前はindex.phpです。

すでに同じ名前のアプリケーションが存在する場合、sfCommandExceptionが投げられます。

(XSSを防止するために)escaping-strategyオプションをつけることで出力エスケーピングを有効にできます:

./symfony generate:app frontend --escaping-strategy=on

(CSRFを防止するために)csrf-secretオプションで秘密の文字列を定義することでフォームのセッショントークンを有効にできます:

./symfony generate:app frontend --csrf-secret=UniqueSecret

generate::module

generate::moduleタスクは新しいモジュールを生成する:

$ php symfony generate:module  application module

エイリアス: init-module

引数 デフォルト 説明
application - アプリケーションの名前
module - モジュールの名前

generate:moduleタスクは既存のアプリケーションの新しいモジュール用の基本ディレクトリ構造を作成します:

./symfony generate:module frontend article

config/properties.iniで設定した場合タスクはactions.class.phpで見つかる著者の名前を変更することもできます:

name=blog
  author=Fabien Potencier <[email protected]>

%sf_data_dir%/skeleton/moduleディレクトリを作ることでタスクによって使われるデフォルトのスケルトンをカスタマイズできます。

%sf_test_dir%/functional/%application%/%module%ActionsTest.class.phpという名前の機能テストのスタブも作成します。これはデフォルトではパスしません。

すでにアプリケーションに同じ名前のモジュールがある場合、sfCommandExceptionが投げられます。

generate::project

generate::projectタスクは新しいプロジェクトを生成する:

$ php symfony generate:project  name

エイリアス: init-project

引数 デフォルト 説明
name - プロジェクトの名前

generate:projectタスクは現在のディレクトリに新しいプロジェクトの基本ディレクトリ構造を作成します:

./symfony generate:project blog

すでに現在のディレクトリがsymfonyのプロジェクトを格納する場合、sfCommandExceptionが投げられます。

generate::task

generate::taskタスクは新しいタスクのスケルトンクラスを作成する:

$ php symfony generate:task [--dir="..."] [--use-database="..."] [--brief-description="..."] task_name
引数 デフォルト 説明
task_name - タスクの名前(名前空間を含むことができる)
オプション(ショートカット) デフォルト 説明
--dir lib/task タスクを作成するディレクトリ
--use-database propel タスクがデータベースにアクセスするモデルの初期化を必要とするか
--brief-description - 短いタスクの説明(タスクのリストに表示される)

generate:taskは引数として渡される名前をもとに新しいsfTaskクラスを作成します:

./symfony generate:task namespace:name

namespaceNameTask.class.phpスケルトンタスクはlib/task/ディレクトリの元で作成されます。 名前空間はオプションであることに留意してください。

別のディレクトリ(プロジェクトのルートフォルダーに相対的)でファイルを作りたい場合、--dirオプションにこれを渡します。 このディレクトリはまだ存在しなければ作成されます。

./symfony generate:task namespace:name --dir=plugins/myPlugin/lib/task

デフォルトのpropel以外の接続を使いたい場合、--use-databaseオプションで接続の名前を提供します:

./symfony generate:task namespace:name --use-database=main

--use-databaseオプションは生成タスクでデータベースの初期化を無効化するためにも使うことができます:

./symfony generate:task namespace:name --use-database=false

説明を指定することもできます:

./symfony generate:task namespace:name --brief-description="Does interesting things"

i18n

i18n::extract

i18n::extractタスクはPHPファイルから国際化された文字列を抽出する:

$ php symfony i18n:extract [--display-new] [--display-old] [--auto-save] [--auto-delete] application culture
引数 デフォルト 説明
application - アプリケーションの名前
culture - ターゲットのculture
オプション(ショートカット) デフォルト 説明
--display-new - 新しく見つかるすべての文字列を出力する
--display-old - すべての古い文字列を出力する
--auto-save - 新しい文字列を保存する
--auto-delete - 古い文字列を削除します

i18n:extractタスクはアプリケーションとターゲットのculture用のプロジェクトファイルから国際化文字列を抽出します:

./symfony i18n:extract frontend fr

デフォルトでは、タスクは現在のプロジェクトで見つかる新旧の文字列の数のみを表示します。

新しい文字列を表示したい場合、--display-newオプションを指定します:

./symfony i18n:extract --display-new frontend fr

これらを国際化メッセージカタログに保存するには、--auto-saveオプションを指定します:

./symfony i18n:extract --auto-save frontend fr

国際化メッセージカタログで見つかるがアプリケーションで見つからない文字列を表示したい場合、--display-oldオプションを指定します:

./symfony i18n:extract --display-old frontend fr

古い文字列を自動的に削除するには--auto-deleteを指定しますが、とりわけプラグインの翻訳がある場合、これらは現在のではなく古い文字列として現れるので、注意してください:

./symfony i18n:extract --auto-delete frontend fr

i18n::find

i18n::findタスクはアプリケーションで"国際化に対応"していない文字列を見つける:

$ php symfony i18n:find [--env="..."] application
引数 デフォルト 説明
application - アプリケーションの名前
オプション(ショートカット) デフォルト 説明
--env dev 環境

i18n:findタスクはテンプレートに埋め込まれる非国際化文字列を見つけます:

./symfony i18n:find frontend

このタスクは純粋なHTMLとPHPコードで非国際化文字列を見つけることができます:

<p>Non i18n text</p>
<p><?php echo 'Test' ?></p>

タスクはPHPに埋め込まれたすべての文字列を返しますが、誤検出(false positive)がある場合があります(とりわけヘルパーの引数用の文字列構文を使う場合)。

log

log::clear

log::clearタスクはログファイルをクリアする:

$ php symfony log:clear  

エイリアス: log-purge

log:clearタスクはすべてのsymfonyログをクリアします:

./symfony log:clear

log::rotate

log::rotateタスクはアプリケーションのログファイルのローテーションを行います:

$ php symfony log:rotate [--history="..."] [--period="..."] application env

エイリアス: log-rotate

引数 デフォルト 説明
application - アプリケーションの名前
env - 環境名
オプション(ショートカット) デフォルト 説明
--history 10 維持する古いログファイルの最大個数
--period 7 日にち単位の期間

log:rotateタスクは任意の環境のアプリケーションのログファイルのローテーションを行います:

./symfony log:rotate frontend dev

periodもしくはhistoryオプションを指定できます:

./symfony --history=10 --period=7 log:rotate frontend dev

plugin

plugin::add-channel

plugin::add-channelタスクは新しいPEARチャンネルを追加する:

$ php symfony plugin:add-channel  name
引数 デフォルト 説明
name - チャンネル名

plugin:add-channelタスクは新しいPEARチャンネルを追加します:

./symfony plugin:add-channel symfony.plugins.pear.example.com

plugin::install

plugin::installタスクはプラグインをインストールする:

$ php symfony plugin:install [--stability|-s="..."] [--release|-r="..."] [--channel|-c="..."] [--install_deps|-d] [--force-license] name

エイリアス: plugin-install

引数 デフォルト 説明
name - プラグインの名前
オプション(ショートカット) デフォルト 説明
--stability
(-s)
- 安定性(stable、beta、alpha)
--release
(-r)
- 優先バージョン
--channel
(-c)
- PEARチャンネルの名前
--install_deps
(-d)
- 必須の依存パッケージのインストールを強制するか
--force-license - MITのようなライセンスではない場合にインストールを強制するか

plugin:installタスクはプラグインをインストールします:

./symfony plugin:install sfGuardPlugin

デフォルトでは、最新のstableリリースがインストールされます。

まだ安定版ではないプラグインをインストールしたい場合、stabilityオプションを指定します:

./symfony plugin:install --stability=beta sfGuardPlugin
./symfony plugin:install -s beta sfGuardPlugin

特定のバージョンのインストールを強制することもできます:

./symfony plugin:install --release=1.0.0 sfGuardPlugin
./symfony plugin:install -r 1.0.0 sfGuardPlugin

依存の必須パッケージをすべて強制的にインストールするには、install_depsフラグを指定します:

./symfony plugin:install --install-deps sfGuardPlugin
./symfony plugin:install -d sfGuardPlugin

デフォルトで使われるPEARチャンネルはsymfony-plugins(plugins.symfony-project.org)です。

channelオプションで別のチャンネルを指定できます:

./symfony plugin:install --channel=mypearchannel sfGuardPlugin
./symfony plugin:install -c mypearchannel sfGuardPlugin

WebサイトでホストされているPEARパッケージをインストールすることもできます:

./symfony plugin:install http://somewhere.example.com/sfGuardPlugin-1.0.0.tgz

もしくはローカルなPEARパッケージ:

./symfony plugin:install /home/fabien/plugins/sfGuardPlugin-1.0.0.tgz

プラグインがWebコンテンツ(画像、スタイルシートもしくはJavaScript)を格納する場合、タスクはこれらのアセットのためにweb/の元で%name%シンボリックリンクを作成します。 Windowsでは、タスクはこれらすべてのファイルをweb/%name%ディレクトリにコピーします。

plugin::list

plugin::listタスクはインストールされたプラグインの一覧を表示する:

$ php symfony plugin:list  

エイリアス: plugin-list

plugin:listタスクはインストールされたプラグインの一覧を表示します:

./symfony plugin:list

これはそれぞれのプラグインのチャンネルとバージョンも表示します。

plugin::publish-assets

plugin::publish-assetsタスクはすべてのプラグイン用のWebアセットを公開する:

$ php symfony plugin:publish-assets [--core-only] [--symfony-lib-dir="..."] 
オプション(ショートカット) デフォルト 説明
--core-only - セットされている場合コアプラグインのみがアセットを公開します
--symfony-lib-dir - symfonyのlibディレクトリ

plugin:publish-assetsタスクはすべてのプラグインからWebアセットを公開します。

./symfony plugin:publish-assets

実際これはそれぞれのプラグインにplugin.post_installイベントを送信します。

plugin::uninstall

plugin::uninstallタスクはプラグインをアンインストールする:

$ php symfony plugin:uninstall [--channel|-c="..."] [--install_deps|-d] name

エイリアス: plugin-uninstall

引数 デフォルト 説明
name - プラグインの名前
オプション(ショートカット) デフォルト 説明
--channel
(-c)
- PEARチャンネル名
--install_deps
(-d)
- 依存パッケージをインストールするかどうか

plugin:uninstallタスクはプラグインをアンインストールします:

./symfony plugin:uninstall sfGuardPlugin

デフォルトのチャンネルはsymfonyです。

異なるチャンネルを持つプラグインをアンインストールすることもできます:

./symfony plugin:uninstall --channel=mypearchannel sfGuardPlugin

./symfony plugin:uninstall -c mypearchannel sfGuardPlugin

もしくはchannel/packageの表記を使うことができます:

./symfony plugin:uninstall mypearchannel/sfGuardPlugin

plugin:listタスクを立ち上げてプラグインのPEARチャンネルを取得できます。

プラグインがWebコンテンツを格納する場合(画像、スタイルシートもしくはJavaScript)、タスクはweb/%name%シンボリックリンク(Unix系)もしくはディレクトリ(Windows)も削除します。

plugin::upgrade

plugin::upgradeタスクはプラグインをアップグレードする:

$ php symfony plugin:upgrade [--stability|-s="..."] [--release|-r="..."] [--channel|-c="..."] name

エイリアス: plugin-upgrade

引数 デフォルト 説明
name - プラグインの名前
オプション(ショートカット) デフォルト 説明
--stability
(-s)
- 安定性(stable、beta、alpha)
--release
(-r)
- 優先バージョン
--channel
(-c)
- PEARチャンネルの名前

plugin:upgradeタスクはプラグインをアップグレードしようとします:

./symfony plugin:upgrade sfGuardPlugin

デフォルトのチャンネルはsymfonyです。

プラグインがWebコンテンツを格納する場合(画像、スタイルシートもしくはJavaScript)、Windowsではタスクはweb/%name%ディレクトリのコンテンツもアップグレードします。

プラグインの名前とオプションのフォーマットの詳細情報に関してはplugin:installを参照してください。

project

project::clear-controllers

project::clear-controllersタスクは運用環境以外のコントローラーをクリアする:

$ php symfony project:clear-controllers  

エイリアス: clear-controllers

project:clear-controllersタスクは運用環境以外のコントローラーをクリアします:

./symfony project:clear-controllers

運用サーバーで運用環境以外のすべてのフロントコントローラーを削除するためにこのタスクを使うことができます。

frontendbackendという名前の2つのアプリケーションがある場合、web/にはデフォルトのコントローラーは4つあります:

index.php
frontend_dev.php
backend.php
backend_dev.php

project:clear-controllersタスクを実行した後で、web/には2つのフロントコントローラーが残ります:

index.php
backend.php

デバッグモードとWebデバッグツールバーが無効なのでこれら2つのコントローラーは安全です。

project:deploy

project:deployタスクはプロジェクトを別のサーバーにデプロイする:

$ php symfony project:deploy [--go] [--rsync-dir="..."] [--rsync-options[="..."]] server

エイリアス: sync

引数 デフォルト 説明
server - サーバーの名前
オプション(ショートカット) デフォルト 説明
--go - デプロイを行う
--rsync-dir config rsync*.txtファイルを探すディレクトリ
--rsync-options -azC --force --delete rsync実行ファイルに渡すオプション

project:deployタスクはプロジェクトをサーバーにデプロイします:

./symfony project:deploy production

サーバーはconfig/properties.iniで設定しなければなりません:

host=www.example.com
  port=22
  user=fabien
  dir=/var/www/sfblog/
  type=rsync

デプロイを自動化するために、タスクはSSH越しにrsyncを使います。 キーでSSHのアクセス権限を設定するかconfig/properties.iniでパスワードを設定しなければなりません。

デフォルトでは、タスクはdry-modeです。 本当にデプロイするには、--goオプションを渡さなければなりません:

./symfony project:deploy --go production

config/rsync_exclude.txtで設定されるファイルとディレクトリはデプロイされません:

.svn
/web/uploads/*
/cache/*
/log/*

rsync.txtrsync_include.txtファイルも作成できます。

サーバーに基づいてrsync*.txtファイルをカスタマイズする必要がある場合、rsync-dirオプションを渡すことができます:

./symfony project:deploy --go --rsync-dir=config/production production

最後に、rsync-optionsオプションをつけることで、rsync実行ファイルに渡されるオプションを指定することができます(デフォルトは-azC):

./symfony project:deploy --go --rsync-options=avz

project::disable

project::disableタスクは任意の環境のアプリケーションを無効にする:

$ php symfony project:disable  application env

エイリアス: disable

引数 デフォルト 説明
application - アプリケーションの名前
env - 環境名

project:disableタスクは特定の環境のアプリケーションを無効にします:

./symfony project:disable frontend prod

project::enable

project::enableタスクは任意の環境のアプリケーションを有効にする:

$ php symfony project:enable  application env

エイリアス: enable

引数 デフォルト 説明
application - アプリケーションの名前
env - 環境名

project:enableタスクは特定の環境のアプリケーションを有効にします:

./symfony project:enable frontend prod

project::freeze

project::freezeタスクはsymfonyライブラリを凍結する:

$ php symfony project:freeze  symfony_data_dir

エイリアス: freeze

引数 デフォルト 説明
symfony_data_dir - symfonyのデータディレクトリ

project:freezeタスクはsymfonyのすべてのコアファイルを現在のプロジェクトにコピーします:

./symfony project:freeze /path/to/symfony/data/directory

タスクは必須の引数としてsymfonyのデータディレクトリのパスを受け取ります。

タスクはsymfonyの埋め込みファイルに切り替えるためにconfig/config.phpも変更します。

project::permissions

project::permissionsタスクはsymfonyのディレクトリのパーミッションを修正する:

$ php symfony project:permissions  

エイリアス: permissions, fix-perms

project:permissionsタスクはディレクトリのパーミッションを修正します:

./symfony project:permissions

project::unfreeze

project::unfreezeタスクはsymfonyライブラリの凍結を解除する:

$ php symfony project:unfreeze  

エイリアス: unfreeze

project:unfreezeタスクは現在のプロジェクトからsymfonyのすべてのコアファイルを取り除きます:

./symfony project:unfreeze

タスクはproject:freezeコマンドが使われる前に使われていたsymfonyの古いファイルに切り替えるためにconfig/config.phpも変更します。

project::upgrade1.1

project::upgrade1.1タスクはsymfonyのプロジェクトをsymfony 1.1のリリースにアップグレードする:

$ php symfony project:upgrade1.1  

project:upgrade1.1タスクは1.0のリリースに基づくsymfonyのプロジェクトをsymfony 1.1のリリースにアップグレードします。

./symfony project:upgrade1.1

このタスクが行うことに関する情報を得るにはUPGRADE_TO_1_1ファイルをご覧ください。

project::upgrade1.2

project::upgrade1.2タスクはsymfonyプロジェクトを(1.1)からsymfony 1.2リリースにアップグレードする:

$ php symfony project:upgrade1.2  

project:upgrade1.2タスクは1.1リリースに基づくsymfonyプロジェクトを1.2リリースにアップグレードします。

./symfony project:upgrade1.2

このタスクが行うことに関する情報を得るにはUPGRADE_TO_1_2ファイルをご覧ください。

propel

propel::build-all

propel::build-allタスクはPropelモデルとフォームクラス、SQLを生成しデータベースを初期化する:

$ php symfony propel:build-all [--application[="..."]] [--env="..."] [--connection="..."] [--no-confirmation] [--skip-forms|-F] [--classes-only|-C] [--phing-arg="..."] 

エイリアス: propel-build-all

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境
--connection propel 接続名
--no-confirmation - 確認の質問をしない
--skip-forms
(-F)
- フォーム生成を省く
--classes-only
(-C)
- データベースを初期化しない
--phing-arg - Phingの任意の引数(複数の値が可)

propel:build-allタスクはほかの5つのタスクのショートカットです:

./symfony propel:build-all

このタスクは次のものと同等です:

./symfony propel:build-model
./symfony propel:build-forms
./symfony propel:build-filters
./symfony propel:build-sql
./symfony propel:insert-sql

詳細な情報はこれらのタスクのヘルプページを参照してください。

確認のプロンプトを回避するには、no-confirmationオプションを渡します:

./symfony propel:buil-all --no-confirmation

すべてのクラスをビルドするがデータベースの初期化を省くには、classes-onlyオプションを指定します:

./symfony propel:build-all --classes-only

propel::build-all-load

propel::build-all-loadタスクはPropelモデルとフォームクラス、SQLを生成し、データベースを初期化し、データをロードします:

$ php symfony propel:build-all-load [--application[="..."]] [--env="..."] [--connection="..."] [--no-confirmation] [--skip-forms|-F] [--classes-only|-C] [--phing-arg="..."] [--append] [--dir="..."] 

エイリアス: propel-build-all-load

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env dev 環境
--connection propel 接続名
--no-confirmation - 確認の質問をしない
--skip-forms
(-F)
- フォーム生成を省く
--classes-only
(-C)
- データベースを初期化しない
--phing-arg - Phingの任意の引数(複数の値が可)
--append - データベースの現在の値を削除しない
--dir - フィクスチャを探すディレクトリ(複数の値が許可される)

propel:build-all-loadタスクはほかの2つのタスクのショートカットです:

./symfony propel:build-all-load

このタスクは次のものと同等です:

./symfony propel:build-all
./symfony propel:data-load

詳細な情報はこれらのタスクのヘルプページを参照してください。

確認を回避するには、no-confirmationオプションを渡します:

./symfony propel:buil-all-load --no-confirmation

propel::build-filters

propel::build-filtersタスクは現在のモデル用のフィルターフォームクラスを作成する:

$ php symfony propel:build-filters [--connection="..."] [--model-dir-name="..."] [--filter-dir-name="..."] [--application[="..."]] 
オプション(ショートカット) デフォルト 説明
--connection propel 接続名
--model-dir-name model モデルディレクトリ名
--filter-dir-name filter フィルターフォームのディレクトリ名
--application 1 アプリケーション名

propel:build-filtersタスクはスキーマからフィルターフォームクラスを作成します:

./symfony propel:build-filters

タスクはプロジェクトとすべてのインストールされたプラグインからconfig/*schema.xmlかつ/もしくはconfig/*schema.ymlのスキーマ情報を読み込みます。

タスクはconfig/databases.ymlで定義されたpropel接続を使います。 --connectionオプションをつけることで別の接続が使えます:

./symfony propel:build-filters --connection="name"

モデルのフィルターフォームクラスはlib/filterに作成されます。

このタスクはlib/filterのなかのカスタムクラスをけっして上書きしません。 これはlib/filter/baseで生成された既定クラスを置き換えます。

propel::build-forms

propel::build-formsタスクは現在のモデルのフォームクラスを作成する:

$ php symfony propel:build-forms [--connection="..."] [--model-dir-name="..."] [--form-dir-name="..."] [--application[="..."]] 
オプション(ショートカット) デフォルト 説明
--connection propel 接続名
--model-dir-name model モデルディレクトリの名前
--form-dir-name form フォームディレクトリの名前
--application 1 アプリケーションの名前

propel:build-formsタスクはスキーマからフォームクラスを作成します:

./symfony propel:build-forms

タスクはプロジェクトとインストールしたすべてのプラグインからconfig/*schema.xmlかつ/もしくはconfig/*schema.ymlのスキーマ情報を読み込みます。

タスクはconfig/databases.ymlで定義されるpropel接続を使います。 --connectionオプションをつけることで別の接続を使うことができます:

./symfony propel:build-forms --connection="name"

モデルのフォームクラスはlib/formに作成されます。

このタスクはlib/formのカスタムクラスをけっして上書きしません。 これはlib/form/baseに生成された基底クラスのみを置き換えます。

propel::build-model

propel::build-modelタスクは現在のモデル用のクラスを作成する:

$ php symfony propel:build-model [--phing-arg="..."] 

エイリアス: propel-build-model

オプション(ショートカット) デフォルト 説明
--phing-arg - Phingの任意の引数(複数の値が可)

propel:build-modelタスクはスキーマからモデルクラスを作成します:

./symfony propel:build-model

タスクはプロジェクトとインストールされたすべてのプラグインからconfig/*schema.xmlかつ/もしくはconfig/*schema.ymlのスキーマ情報を読み込みます。

YAMLとXMLスキーマファイルを混ぜることができます。 タスクはPropelタスクを呼び出す前にYAMLをXMLに変換します。

モデルクラスのファイルはlib/modelに作成されます。

このタスクはlib/modelのなかのカスタムクラスをけっして置き換えません。 lib/model/omlib/model/mapのファイルのみを置き換えます。

propel::build-schema

propel::build-schemaタスクは既存のデータベースからスキーマを作成する:

$ php symfony propel:build-schema [--application[="..."]] [--env="..."] [--connection="..."] [--xml] [--phing-arg="..."] 

エイリアス: propel-build-schema

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env cli 環境
--connection - 接続名
--xml - YAMLの代わりにXMLスキーマを作成する
--phing-arg - Phingの任意の引数(複数の値が可)

propel:build-schemaタスクはスキーマを作成するためにデータベースをイントロスペクトします:

./symfony propel:build-schema

デフォルトでは、タスクはYAMLファイルを作成しますが、XMLファイルを作成することもできます:

./symfony --xml propel:build-schema

XMLフォーマットはYAMLよりも多くの情報を格納できます。

propel::build-sql

propel::build-sqlタスクは現在のモデル用のSQLを作成する:

$ php symfony propel:build-sql [--phing-arg="..."] 

エイリアス: propel-build-sql

オプション(ショートカット) デフォルト 説明
--phing-arg - Phingの任意の引数(複数の値が可)

propel:build-sqlタスクはテーブル作成用のSQLステートメントを作成します:

./symfony propel:build-sql

生成されるSQLはconfig/propel.iniで設定されるデータベース用に最適化されます:

propel.database = mysql

propel::data-dump

propel::data-dumpタスクはデータをフィクスチャディレクトリにダンプする:

$ php symfony propel:data-dump [--application[="..."]] [--env="..."] [--connection="..."] [--classes="..."] [target]

エイリアス: propel-dump-data

引数 デフォルト 説明
target - ターゲットのファイル名
オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env cli 環境
--connection propel 接続名
--classes - ダンプするクラスの名前(コロンで区切られる)

propel:data-dumpタスクはデータベースデータをダンプします:

./symfony propel:data-dump > data/fixtures/dump.yml

デフォルトでは、タスクはデータを標準出力しますが、2番目の引数としてファイルの名前を渡すこともできます:

./symfony propel:data-dump dump.yml

タスクはデータをdata/fixtures/%target%にダンプします(この例ではdata/fixtures/dump.yml)。

propel:data-loadタスクを使うことでダンプファイルをYAMLフォーマットで再インポートできます。

デフォルトでは、config/databases.ymlで定義されるpropel接続を使います。 connectionオプションをつけることで別の接続を使うことができます:

./symfony propel:data-dump --connection="name"

クラスをダンプしたいだけなら、classesオプションを指定します:

./symfony propel:data-dump --classes="Article,Category"

アプリケーションから特定のデータベース接続を使いたい場合、applicationオプションを指定します:

./symfony propel:data-dump --application=frontend

propel::data-load

propel::data-loadタスクはフィクスチャディレクトリからデータをロードする:

$ php symfony propel:data-load [--application[="..."]] [--env="..."] [--append] [--connection="..."] [--dir="..."] 

エイリアス: propel-load-data

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env cli 環境
--append - データベースの現在の値を削除しない
--connection propel 接続名
--dir - フィクスチャを探すディレクトリ(複数の値が許可される)

propel:data-loadタスクはデータフィクスチャをデータベースにロードします:

./symfony propel:data-load

タスクはdata/fixtures/で見つかるすべてのファイルからデータをロードします。

ほかのディレクトリからデータをロードしたい場合、--dirオプションを指定します:

./symfony propel:data-load --dir="data/fixtures" --dir="data/data"

タスクはconfig/databases.ymlで定義されるpropel接続を使います。 --connectionオプションをつけることで別の接続を使うことができます:

./symfony propel:data-load --connection="name"

タスクにデータベースの既存のデータを削除させたくない場合、--appendオプションを指定します:

./symfony propel:data-load --append

アプリケーションからデータベース接続を使いたい場合、applicationオプションを指定します:

./symfony propel:data-load --application=frontend

propel::generate-admin

propel::generate-adminタスクはPropelのadminモジュールを生成する:

$ php symfony propel:generate-admin [--module="..."] [--theme="..."] [--singular="..."] [--plural="..."] [--env="..."] application route_or_model
引数 デフォルト 説明
application - アプリケーションの名前
route_or_model - ルートの名前もしくはモデルクラス
オプション(ショートカット) デフォルト 説明
--module - モジュールの名前
--theme admin テーマの名前
--singular - 単数形の名前
--plural - 複数形の名前
--env dev 環境

propel:generate-adminタスクはPropelのadminモジュールを生成します:

./symfony propel:generate-admin frontend Article

タスクは%Article%モデルの%frontend%アプリケーションのモジュールを作成します。

このタスクはアプリケーションのrouting.ymlでルートを作成します。

ルートの名前を渡すことでもPropelのadminモジュールを生成することもできます:

./symfony propel:generate-admin frontend article

タスクはrouting.ymlで見つかる%article%ルート定義用の%frontend%アプリケーションのモジュールを作成します。

フィルターとバッチアクションを適切に機能させるために、ルートにwildcardオプションを追加する必要があります:

article:
  class: sfPropelRouteCollection
  options:
    model:                Article
    with_wildcard_routes: true

propel::generate-module

propel::generate-moduleタスクはPropelモジュールを生成する:

$ php symfony propel:generate-module [--theme="..."] [--generate-in-cache] [--non-verbose-templates] [--with-show] [--singular="..."] [--plural="..."] [--route-prefix="..."] [--with-propel-route] [--env="..."] application module model

エイリアス: propel-generate-crudpropel:generate-crud

引数 デフォルト 説明
application - アプリケーションの名前
module - モジュールの名前
model - モデルクラスの名前
オプション(ショートカット) デフォルト 説明
--theme default テーマの名前
--generate-in-cache - キャッシュでモジュールを生成する
--non-verbose-templates - 冗長ではないテンプレートを生成する
--with-show - showメソッドを生成する
--singular - 単数形の名前
--plural - 複数形の名前
--route-prefix - ルートのプレフィックス
--with-propel-route - Propelのルートを使うかどうか
--env dev 環境

propel:generate-moduleタスクはPropelモジュールを生成します:

./symfony propel:generate-module frontend article Article

タスクは%model%モデルクラス用の%application%アプリケーションで%module%モジュールを作成します。

--generate-in-cacheオプションをつけることで%sf_app_cache_dir%/modules/auto%module%の実行時に生成されるモジュールからアクションとテンプレートを継承する空のモジュールを作成することもできます:

./symfony propel:generate-module --generate-in-cache frontend article Article

--themeオプションをつけることでジェネレーターはカスタマイズされたテーマを使うことができます:

./symfony propel:generate-module --theme="custom" frontend article Article

この方法では、独自仕様に合わせてモジュールジェネレーターを作ることができます。

propel::generate-module-for-route

propel::generate-module-for-routeタスクはルート定義用のPropelモジュールを生成する:

$ php symfony propel:generate-module-for-route [--theme="..."] [--non-verbose-templates] [--singular="..."] [--plural="..."] [--env="..."] application route
引数 デフォルト 説明
application - アプリケーションの名前
route - ルートの名前
オプション(ショートカット) デフォルト 説明
--theme default テーマの名前
--non-verbose-templates - 冗長ではないテンプレートを生成する
--singular - 単数形の名前
--plural - 複数形の名前
--env dev 環境

propel:generate-module-for-routeタスクはルート定義用のPropelモジュールを生成します:

./symfony propel:generate-module-for-route frontend article

タスクはrouting.ymlで見つかる%article%ルート定義用の%frontend%アプリケーションでモジュールを作成します。

propel::graphviz

propel::graphvizタスクは現在のオブジェクトモデルのGraphvizによるチャートを生成する:

$ php symfony propel:graphviz [--phing-arg="..."] 
オプション(ショートカット) デフォルト 説明
--phing-arg - Phingの任意の引数(複数の値が可)

propel:graphvizタスクはオブジェクトモデルのグラフの自動描画にGraphvizのDOTを作成します:

./symfony propel:graphviz

propel::init-admin

propel::init-adminタスクはPropelのadminモジュールを初期化する:

$ php symfony propel:init-admin [--theme="..."] application module model

エイリアス: propel-init-admin

引数 デフォルト 説明
application - アプリケーションの名前
module - モジュールの名前
model - モデルクラスの名前
オプション(ショートカット) デフォルト 説明
--theme default テーマの名前

propel:init-adminタスクはPropelのadminモジュールを生成します:

./symfony propel:init-admin frontend article Article

%model%モデルクラス用の%application%アプリケーションで%module%モジュールを作成します。

作成されるモジュールは%sf_app_cache_dir%/modules/auto%module%の実行時に生成されるモジュールからアクションとテンプレートを継承する空のモジュールです。

ジェネレーターは--themeオプションをつけることでカスタマイズされたテーマを使うことができます:

./symfony propel:init-admin --theme="custom" frontend article Article

propel::insert-sql

propel::insert-sqlタスクは現在のモデル用のSQLをINSERTする:

$ php symfony propel:insert-sql [--application[="..."]] [--env="..."] [--connection="..."] [--no-confirmation] [--phing-arg="..."] 

エイリアス: propel-insert-sql

オプション(ショートカット) デフォルト 説明
--application 1 アプリケーションの名前
--env cli 環境
--connection - 接続名
--no-confirmation - 確認の質問をしない
--phing-arg - Phingの任意の引数(複数の値が可)

propel:insert-sqlタスクはデータベースのテーブルを作成します:

./symfony propel:insert-sql

タスクはデータベースに接続してconfig/sql/*schema.sqlファイルで見つかるすべてのSQLステートメントを実行します。

実行する前に、データベースのすべてのデータが削除されるのでタスクは本当に実行するか確認します。

確認を回避するには、--no-confirmationオプションを渡します:

./symfony propel:insert-sql --no-confirmation

タスクはdatabases.ymlからデータベース設定を読み込みます。 --applicationもしくは--envオプションを渡せば特定のアプリケーションの環境を使うことができます。

任意の接続でSQLステートメントをロードしたいだけなら--connectionオプションをつけます。

propel::schema-to-xml

propel::schema-to-xmlタスクはschema.ymlからschema.xmlを作成する:

$ php symfony propel:schema-to-xml  

エイリアス: propel-convert-yml-schema

propel:schema-to-xmlタスクはYAMLスキーマをXMLスキーマに変換します:

./symfony propel:schema-to-xml

propel::schema-to-yml

propel::schema-to-ymlタスクはschema.xmlからschema.ymlを作成する:

$ php symfony propel:schema-to-yml  

エイリアス: propel-convert-xml-schema

propel:schema-to-ymlタスクはXMLスキーマをYAMLに変換します:

./symfony propel:schema-to-yml

test

test::all

test::allタスクはすべてのテストを立ち上げる:

$ php symfony test:all  

エイリアス: test-all

test:allタスクはすべてのユニットテストと機能テストを立ち上げます:

./symfony test:all

タスクはtest/で見つかるすべてのテストを立ち上げます。

1つもしくは複数のテストが失敗する場合、手動もしくはtest:unittest:functionalタスクでこれらを立ち上げることで問題の修正に取り組むことができます。

test::coverage

test::coverageタスクはテストのコードカバレッジを出力する:

$ php symfony test:coverage [--detailed] test_name lib_name
引数 デフォルト 説明
test_name - テストファイルの名前もしくはテストのディレクトリ
lib_name - カバレージを知りたいlibファイルの名前もしくはlibディレクトリ
オプション(ショートカット) デフォルト 説明
--detailed - 詳細な情報を出力する

test:coverageタスクはテストディレクトリもしくはテストディレクトリとlibファイルもしくはlibディレクトリのほしいコードカバレージを出力します:

./symfony test:coverage test/unit/model lib/model

カバーされていない行を出力するには、--detailedオプションを渡します:

./symfony test:coverage --detailed test/unit/model lib/model

test::functional

test::functionalタスクは機能テストを立ち上げる:

$ php symfony test:functional  application [controller1] ... [controllerN]

エイリアス: test-functional

引数 デフォルト 説明
application - アプリケーションの名前
controller - コントローラーの名前

test:functionalタスクは任意のアプリケーション用の機能テストを立ち上げます:

./symfony test:functional frontend

タスクはtest/functional/%application%で見つかるすべてのテストを立ち上げます。

コントローラーの名前を渡すことで特定のコントローラー用のすべての機能テストを立ち上げることができます:

./symfony test:functional frontend article

複数のコントローラー用の機能テストをすべて立ち上げることもできます:

./symfony test:functional frontend article comment

test::unit

test::unitタスクはユニットテストを立ち上げます:

$ php symfony test:unit  [name1] ... [nameN]

エイリアス: test-unit

引数 デフォルト 説明
name - テストの名前

test:unitタスクはユニットテストを立ち上げます:

./symfony test:unit

タスクはtest/unitで見つかるすべてのテストを立ち上げます。

特定の名前のユニットテストを立ち上げることができます:

./symfony test:unit strtolower

複数の名前のユニットテストを立ち上げることもできます:

./symfony test:unit strtolower strtoupper