Tips

Migrationsプラグインの実践的運用

CakePHP Advent Calendar 2011 CakePHP Advent Calendar 2011 : ATND 20日目の記事です。 19日目:akiyanさんCakePHPの「OrderdBehavior」と「TreeBehavior」はマジで使うべき : akiyan.com イントロダクション CakeDCが提供しているMigrationsプラグインは…

英語に自信がなくてもできるCakePHPへの貢献 -バグ報告編-

CakePHP(またはオープンソースプロダクト)のコアコードのバグ・不満・修正・設計について言及したい、しかし英語わからない、面倒くさい、なんとなく怖い、といった方向け。 導入 CakePHPへの貢献は色々な方法があります。バグ報告、パッチ、ドキュメント…

CakePHPアプリケーションの基本的な設計指針 (3) - カスタムfindタイプ -

イントロダクション 標準のfindの種類(first, all, count, threaded, neighbor, list)だけでは、ビジネスロジックに対応できないことがあります。 これに対するひとつのプラクティスとしては、カスタムfindタイプを定義することです。 この記事では、実際…

CakePHPアプリケーションの基本的な設計指針 (2) - キャッシュまわり -

イントロダクション CakePHPのキャッシュ機構は、 キャッシュストレージへのラッパー コアに統合されているもの の2種類があります。 前者はCache::read()などを使うもので、自由にキャッシュの操作が行えます。 後者のほうは、ビューキャッシュ、クエリキャ…

CakePHPアプリケーションの基本的な設計指針 (1) - URL設計 -

イントロダクション CakePHPはMVCデザインパターンを採用しており、基本的にこれに従った設計が基本となります。 しかし、ある程度開発が進んだところで、やっかいな設計の問題にぶち当たることは多いですよね。 そこで、よくある問題を取り上げて、設計の指…

Set::extract()の小洒落た使い方 case.1

たまには軽いネタを。もしかしたら連載するかも array( 'id' => 1, ), ), array( 'User' => array( 'id' => 2, ), ), array( 'User' => array( 'id' => 3, ), ), ); のとき、

気絶するほど簡単な自動ログインの実装

注意 この実装はクッキーにユーザ名とパスワードを保持させていますが、パスワードを保持させるのは大変危険なので、実際のアプリケーションで動かす場合は時限つきAuthorizeトークンを発行してそれを保持させる実装にするなど、クッキー盗聴対応を必ずしま…

paginateオプションをモデルに移行する(改善・修正版)

過去記事の問題点 Paginateオプションをモデルに移行する - 24時間CakePHP http://d.hatena.ne.jp/hiromi2424/20100426/1272289702 では、paginateオプション内に"order"や"limit"が無いため、これらオプションを指定すると動作が謎になってしまいました。 …

Paginateオプションをモデルに移行する

注意 改善記事を書きました。この記事の例ではうまく動きません。 paginateオプションをモデルに移行する(改善・修正版) - 24時間CakePHP http://d.hatena.ne.jp/hiromi2424/20100609/1276076490 概要 Paginatorを使うとき、group byして集計関数を使った…