学習日記66日目 - Blogapp vol.2 -

スタートアップ研修記はこちらです。

どうも、enomotoです。
本日から実際に制作開始!
http://d.hatena.ne.jp/crazyup/20090702/reviewaskeet2を思いっきり見ながら作成を始めました。
ということで作っててハマったこととかを淡々と書いていくよ。
1からやったことを書きつづりたかったけど正直必死だったので覚えていません。
たいていはうちのaskeet日記を参考にして組んでます。

schema.ymlを書く。

propel:
  _attributes:      { noXsd: false, defaultIdMethod: none, package: lib.model }

  blog_user:
    _attributes:    { phpName: User, idMethod: native }
    id:             { type: integer, required: true, primaryKey: true, autoIncrement: true }
    username:       { type: varchar(50), required: true, index: true }
    password:       varchar(40)
    salt:           varchar(32)
    created_at:     ~

  blog_article:
    _attributes:    { phpName: Article, idMethod: native }
    id:             { type: integer, required: true, primaryKey: true, autoIncrement: true }
    user_id:        { type: integer, foreignTable: blog_user, foreignReference: id }
    title:          { type: longvarchar }
    body:           { type: longvarchar }
    created_at:     ~
    updated_at:     ~

  blog_article_tag:
    _attributes:    { phpName: ArticleTag, idMethod: native }
    user_id:        { type: integer, foreignTable: blog_user, foreignReference: id }
    article_id:     { type: integer, foreignTable: blog_article, foreignReference: id }
    tag:            varchar(100)
    normalized_tag: { type: varchar(100), primaryKey: true }
    _indexes:
      normalized_tag_index: [normalized_tag]
    created_at:     ~

あってるかな?見よう見まねで作ってみた。

同じ言葉を書きたくない。

たとえば、このアプリは↓のように

Blogappというタイトルを3つのところで表示している。
3つぐらいならそれぞれに書くことも用意だけども、DRY原則に反する。
せっかく、view.ymlにタイトル書いて居るんだからそこから引っ張り出せないかなーと思ったらありました。
参考: symfonyで、view.ymlで定義したサイトタイトルをテンプレート中から呼び出す方法 | 秋元
ということでタイトル部分とコピーライトの部分に

 <?php echo link_to(sfContext::getInstance()->getResponse()->getTitle(),'@homepage') ?>

こうするとview.ymlのタイトルを変更すればすべて反映されるので便利。