symfony 1.4 をしばらく触ってみて疑問に思った事をまとめてみました
symfonyのチュートリアル(なんですよね?)のjobeetをある程度やってみました。
実は、中盤ぐらいで力つきてます。12〜14日あたりまでやってみると、だいぶわかってくるように思えます。思えるんですが、やっぱりわからないというか、モヤモヤします。Evernoteに疑問をぞろぞろと並べていたので、それをこちらに書いておこうと思います。
doctrineのbuild(jobeet(7)にて)
- doctrineのbuildというのは自動生成だけれど、データーが消えてしまう?
- じゃあ、運用しはじめてからカラム追加したい場合はどうするんだろう?方法があるとは思うのだけれど...(Doctrineのmigration機能でデータベーススキーマの差分管理 - しんふぉにゃん)
- doctrine:build --modelではモデルまでは作ることが可能
- migration用のテーブルができる(migration_version)
- バージョンを指定してテーブルを戻すこともできる
doctrine絡みには色々と悩みます。ちなみに、buildではデーターは消えません。
ただ、カラムの追加や変更というのはどうやるのか?というのがわからなくなるんです。開発・運用とも絡む部分なのでクリアにしたいです
doctrine:build --model
- すでにある場合、なにもしない。新たにある場合は、変更を加える
- 変更を加えるのはbaseディレクトリのみ
- なのでbaseディレクトリ内についてはいじらない
- baseディレクトリの中のファイルの意味は?基本的なfunctionの提供
libディレクトリの意味
- lib
- symfonyのコマンドで生成される
- モデル(db)の操作
- /apps/[app]/lib
- アプリケーションでのライブラリ
- /apps/[app]/modules/lib
- モジュール単位でのライブラリ
こいうことなんだろうと思うんだけれど、これを理解するのに結構時間がかかりました。チュートリアルをやっていると、自分が今どこをいじっているのかわからなくなるので、この点に注意してやるといいのかも
schema.yml
- phpコードを書いても問題ない(書くことはないかもしれないけれど)
- includeも使えるので、別ファイルにして読み込み可能
これ便利です!どうやらYAMLフィアルにはPHPのコードを書いても問題ないようです。なので、設定部分で環境に合わせて読み込みを変えるとか出来そうです(試してはいない)
doctrineでデーターを物理削除しない
- 可能
- 標準ではないかも?
- delete_dateという日付で記録
これたしか何かで見たんだけれど...きちんと記録しておけ、私
preExecute()
- 引数がとれない?
- 引数はとれないけれど、リクエスト内容はとれます
$this->getContext()->getRequest()->getParameter('hogehoge',null)
module/lib/の中
- $this->getUser()はない?
- session類はここには使用しないのかも。MVC的に考えてみればそうなのかもしれないけれど
$this->getUser()というのは、ところどころで出てくるんですが、どこから出てきたんだろう?Adminに関する項目当たりからアクセスしてくるユーザーのセッションに関するデータの取り出しに利用している事が多いみたい
DcotrineでDISTINCT
- Doctrineの制限なのかDISTINCTは使えない?
ハマった...多分使えない
DoctrineでuseResultCache()
- 結果のキャッシュが可能
これなんですけれど、気づくのに時間がかかった...
Doctrineでのテスト
- apps\[apps]\lib\model\以下にあるクラスをモデル(lib\model\doctrine)が呼んでいる場合、指定したクラスを呼び出せない?
テストなんですが、この辺りがわからず失敗しています。limeについて調べた方がいいんでしょうか