ブックマーク / hiromi2424.hatenadiary.org (5)

  • VitualFieldsを使おう! - 24時間CakePHP

    CakePHP1.3からは、VirtualFieldsが利用できる。 これはSQL でいったら sql_function(hoge) as aliasといったcolmunをそのままフィールドとして利用できる機能だ。 それでは実例を追いながら順次説明していこう。 要求: グループの一覧を表示したい。 また、グループには何人参加しているかを集計して同時に表示する。 関係 Group hasAndBelongsToMany User Model <?php class Group extends AppModel { var $name = 'Group'; var $virtualFields = array( 'user_count' => 'count(GroupsUser.user_id)', ); var $hasAndBelongsToMany = array( 'User', );

    VitualFieldsを使おう! - 24時間CakePHP
  • 英語に自信がなくてもできるCakePHPへの貢献 -バグ報告編- - 24時間CakePHP

    CakePHP(またはオープンソースプロダクト)のコアコードのバグ・不満・修正・設計について言及したい、しかし英語わからない、面倒くさい、なんとなく怖い、といった方向け。 導入 CakePHPへの貢献は色々な方法があります。バグ報告、パッチ、ドキュメント、議論、有用なプラグインの作成、etc.. といっても、英語書かなきゃいけないというプレッシャーは大きいはず。 しかし怖がることはありません! 最低限の情報提供だけでもそれは有益なことです。 私たちの使っているフレームワークのコミュニティにはたくさんの、英語のネイティブではない人々がおり、その人達によってCakePHPは支えられているのです。 バグ報告 CakePHPへの貢献の中で、まず一番簡単で楽なのはなんといってもバグ報告です。 今回はこのバグ報告について、実例を見ながら、どうすればバグ報告をできるかを説明します。 チケット管理システム

    英語に自信がなくてもできるCakePHPへの貢献 -バグ報告編- - 24時間CakePHP
    cakephper
    cakephper 2011/12/04
    素晴らしい! 「共通のプロジェクトへの貢献こそが、人々、またはあなた自身の大切な財産となり、全てにわたって最上の利益となるベストプラクティスなのです」
  • App::import() は凄い - 24時間CakePHP

    CakePHP Advent Calendar2010、残りちょうど10日となりました。 15日目担当のひろみです。よろしくお願いします。 いんとろだくしょん どんなCakeアプリケーションでも使うといっても過言では無いのがApp::import()です。 直接使うことはなくても、ヘルパーやコンポーネントをコントローラで指定すると、間接的にApp::import()を使っていることになります。(もっと言えば、dispatcherを呼ぶだけでApp::import()は呼ばれますが・・・) そんな名脇役、App::import()について、既知の事実も含めて、詳しい挙動を追いかけてみましょう。 App::import()の歴史 CakePHP1.1までは今となっては懐かしい、uses()やvendor()を使っていました。 ヘルパやコンポーネント、モデルの読み込みすらも、グローバル関数を使っ

    App::import() は凄い - 24時間CakePHP
    cakephper
    cakephper 2011/05/11
    すごいimportだ
  • バリデーションのベストプラクティス - 24時間CakePHP

    イントロダクション CakePHPの使い方は多種多様で、もちろん一つのやり方が正解ということはありません。 しかし、CakePHPはフレームワークであるわけで、想定された使い方以外ではその真価をなかなか発揮できません。 CakePHPにおけるモデルは、ビジネスロジックを置くレイヤとして想定されています。 そして、バリデーションを用いることによって保存のロジックを構築するということも想定されています。 これは、何故Cookbookで紹介されるコードが、ほとんどバリデーションとModel::save()の組み合わせであるかということかの答えにもなっています。 悪い例 あなたはModel::save()の代わりとして、以下のようなadd()メソッドをモデルに定義しているかもしれません: <?php class Post extends AppModel { var $validate = arr

    バリデーションのベストプラクティス - 24時間CakePHP
  • 日本語対応のFormHelper::datetime() - 24時間CakePHP

    使い方 <?php // []年[]月[]日 []時[]分 $jpForm->datetime('created'); // []年[]月[]日 $jpForm->datetime('created','YMD',null); // []時[]分 $jpForm->datetime('created',null); // []年度[]月 $jpForm->datetime('created','YM',null,null,array( 'separator' => array( 'year' => '年度', ), )); ?> ソースコード <?php class JpFormHelper extends FormHelper{ function beforeRender(){ $this->options['month'] = array_combine(range(1,12),ran

    日本語対応のFormHelper::datetime() - 24時間CakePHP
  • 1