スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

symfony1.4 jobeet 7日目

今回はカテゴリー周りの実装

まずはルーティングの設定。
その後、カテゴリモデルにデータ取得コード追記していくけど、重複したコード出てくるのでそのリファクタリング方法。
Peerでも似たような事はやってたんだけどDoctrineの方がスマートに実装出来る感じ。

まだモジュールが無いからコマンドからモジュール作成。
今回はgenerate:moduleを使って空のモジュール作成、実案件では doctrine:generate-moduleをそのまま使える案件は少ないだろうからgenerate:moduleで空のモジュール作って実装していった方が逆に早い気がする。実際1.0時はそうしてた。

この後、schema.ymlにSluggableという項目を追加。
これは5日目にJobeetクラスに実装したslugifyの機能を実現してくれるみたい。便利だけどこれって実案件でどれほど要望あるんだろう。
以下、slugifyの内容。
static public function slugify($text){ 
$text = preg_replace('/\W+/','-',$text);

$text = strtolower(trim($text,'-'));

return $text;
}

この後、モデルクラスに重複コードが出てきたようにtemplateにも重複したコードが現れ始めたのでtemplateのリファクタリング。
template のリファクタリングはパーシャルという機能を使用。これは1.0でお世話になったから特に問題無い。

最後にWebシステムではほぼ必須だけど0から作ると結構めんどくさいページングの実装。
propelと同様にdoctrineでもページャー機能を実装してるようなのでその使い方。
ページャーの生成の仕方が多少違うけど使い方はそんなに変わらないから特に問題なく使えそう。
結果数をgetNbResultsじゃなくてcount()で取れるのは地味に便利。
1.0の頃はaddSelectColumn使うとリザルトセットで取らないといけなくなりページャー使えなくなったけどDoctrineではどうなるかは後で調べないと。
後、1.0ではGroupByしてページャー使うと結果数がおかしくなったけどそれは大丈夫なんだろうか?

とりあえず細かいところは別途調べないといけないな。
スポンサーサイト

コメントの投稿

非公開コメント

検索フォーム
カレンダー
04 | 2017/03 | 05
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
RSSリンクの表示
last.fm
twitter
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。