Symfony

【Symfony2.3】のログイン処理。

をまとめようと思ったら公式に神がかり的なマニュアルがあった件。

http://symfony.com/doc/current/book/security.html

http://docs.symfony.gr.jp/symfony2/book/security.html

わかりやすすぎぃぃぃぃぃい。

 

【Symfony2.3】FOSUserBundleのコマンドライン操作まとめ

よくつかうやつ。

■ユーザー作成

php app/console fos:user:create testuser test@example.com p@ssw0rd

■ユーザー有効化

php app/console fos:user:activate testuser

■ユーザー無効化

php app/console fos:user:deactivate testuser

■ユーザーに特定の権限を与える

php app/console fos:user:promote testuser ROLE_ADMIN

■ユーザーから特定の権限を剥奪する

php app/console fos:user:demote testuser ROLE_ADMIN

■ユーザーのパスワードを変更する

php app/console fos:user:change-password testuser newp@ssword

あとは下記公式を参照されたし。

https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/command_line_tools.md

 

【Symfony2.3】のシェル起動方法。

app/console --shell

ってやるとなにやらカッチョイイウェルカムメッセージが表示される!

※何に使うかとかは今度調査する。

その場でエンター押すと使い方が表示されるところまで触った。

 

【Symfony2.3】DoctrineMigrationsBundle自分用まとめ。

■インストール

composer.jsonに下記を追加。

{
    ...
    "require": {
        ...
        "doctrine/doctrine-migrations-bundle": "dev-master"
        ...
    }
    ...
}

そしてアップデート。

composer update

app/AppKernel.phpを編集。

...
	$bundles = array(
		...
		new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
		...
	);
...

app/console コマンドでdoctrine:migrations:…のコマンド群が確認できれば成功。

■Migrationsの初期化

php app/console doctrine:migrations:status

これで初期化完了。データベース「migration_versions」というマイグレーションのバージョン管理用テーブルが作成される。

■マイグレーションファイルを作成する

エンティティの追加、削除、また変更などがあった際、スキーマアップデートを実行してはいけない。
必ずマイグレーションファイルを生成してからマイグレートを実行するようにする。

具体的にはこう。

例)
何かしらのエンティティを変更、追加、削除した際。

# これで最新のマイグレーション履歴との差分を自動的に計算してマイグレーションファイルを生成してくれる。
php app/console doctrine:migrations:diff

マイグレーションファイルは「app/DoctrineMigrations」以下に「Version[実行日時].php」といった形で生成される。
生成されたマイグレーションファイルのup()メソッドとdown()メソッドを確認して、必要であれば編集する。(基本的にそのまま)

問題がなければ下記コマンドでマイグレーションを実行。

php app/console doctrine:migrations:migrate

これで差分のSQLが実行されDBが最新の状態になる。

マイグレーションの差し戻し(down)は過去の別エントリを参照されたし。

 

【Symfony2.3】doctrine:migrationsでバージョンテーブルから特定のバージョンログを削除する。

バージョンテーブル上から特定のバージョンを削除する方法。

例)

php app/console doctrine:migrations:version 20140916114424 --delete

といった感じ。

けど基本的にはdown()でバージョンダウンしたほうが破綻しにくくて良さそうだね。

 

【Symfony2.3】doctrine:migrationsでバージョンを差し戻す。

実行したいdown()メソッドが記述してあるバージョンを調べ、下記の通り実行。

php app/console doctrine:migrations:execute [version] --down

※[version]の部分にバージョンナンバーを記述。

これでバージョンが差し戻されるので、後は不要になったマイグレーションファイルを消すなら消す、残すなら残すで完了。

 

【Symfony2.3】doctrine:migrationsの使い方メモ。

■schemaに変更が生じた際(新規エンティティ追加、既存エンティティの編集など)

1, まずは現在のマイグレーションとの差分を自動生成させる。

php app/console doctrine:migrations:diff

2, 生成されたマイグレーションファイル内のup()とdown()を適切に編集する。
※基本いじらなくてもおkかと。

3, 最後にマイグレーションを実行する。

php app/console doctrine:migrations:migrate

以上で完了。

 

【Symfony2.3】app/consoleでコマンドの使い方を調べる。

メモ。

使い方の分からないコマンドは–helpオプションに続けてコマンドを入力すると使い方の例を表示してくれる。

例)

php app/console --help doctrine:migrations:execute

といった感じでコマンド全てに使えるので覚えておくと便利。