zz log

zaininnari Blog

CakePHP

CakePHP cookbook の日本語PDFを作成する

sphinx の日本語PDFの作成方法を調べたので作成しました。 環境 CentOS release 6.4 (Final) (cat /etc/centos-release) Python 2.6.6 (python --version) Sphinx 1.2 (python -c 'import sphinx; print sphinx.__version__') 日本語化パッチが取り込まれた …

CakePHP で実行箇所をSQLのコメントに埋め込む

概要 CakePHP + DebugKit で開発しているときに、 「このSQLどこで発行されているの?」となることがあるので、 ActiveRecordのSQLの実行箇所をSQLのコメントに入れる - I sort my thought... を参考にして簡単なプログラムを作成しました。 但し、DebugKit …

CakePHP + CacheHelper + html-minifier を CacheHelper と併用して使用する

概要 CakePHP + CacheHelper + html-minifier を併用できるようにしました。 エレメントとレイアウトのビューファイルの圧縮済みファイルを相対パスで保存し、かつ、読み込み時には、App::build で View パスの先頭にキャッシュパスを追加しています。 キャ…

CakePHP でビューキャッシュを使用時、独自Viewクラスを引き継ぐ(不完全)

概要 ビューキャッシュは、コアの CacheHelper によって作成され、CacheDispatcher で読み込みが行われます。 但し、現時点では、viewClass を引き継ぐ方法がないため、View クラスによるレンダリングが行われます。 通常は、View クラスのレンダリングで問…

素のPHPまたはCakePHPの テンプレートのHTML部分を圧縮(minify) して通信量を削減により、高速化を図る

概要 PHPのViewテンプレートをtoken_get_all(指定したソースを PHP トークンに分割する)と自前のhtml-minifier により、事前にHTML圧縮を行い、その結果をキャッシュすることで、5~10%程度のHTML容量の削減を行うことができました。 詳細 ※CakePHP の View …

CakePHP 2.3.10 変更点

公式アナウンス CakePHP 2.3.10 released 今回のリリースはバグフィックスリリースです。 パフォーマンスの改善、PHP5.5.2でのSessionの動作改善、Emailクラスの改善が主な変更点になります。 また、CakePHP2.3系のリリース方針についてアナウンスがあり、Ca…

CakePHP 2.3.9 変更点

公式アナウンス CakePHP 2.3.9 released 今回のリリースはメンテナンスリリースです。 20のバグフィックス及びパフォーマンスの改善が行われています。 主な変更点 ドキュメント・テストケース・小さな修正は除きます。 CakeResponse _fileRange Content-Ran…

CakePHP 2.3.8 変更点

公式アナウンス CakePHP 2.3.8 released セキュリティリリース AssetDispatcher を有効にしている(デフォルトでは有効)アプリケーションが対象 CakePHP 2.2.9 も同時にリリースされている このバグに対する詳細は、後日、公式から発表されるそうです。 この…

CakePHP 2.3.7 変更点

公式アナウンス CakePHP 2.3.7 released バグフィックスリリース CacheHelper 使用時、content-type ヘッダーを含めるようになったのが個人的には一番よい修正。 CakePHP 2.4.0-betaのリリース Components の PasswordHasher や Logging の強化が目につくと…

CakePHP 2.3.6 変更点

公式アナウンス CakePHP 2.3.6 released メンテナンスリリース 2.2系で報告されたチケットが閉じられても2.2系のリリースがないということは、2.2系はセキュリティリリースだけのサポートになるのかな? 現時点では github に2.2系のブランチはない 主な変更…

CakePHP 2.3.5 変更点

公式アナウンス Security Fix: CakePHP 2.3.5 released :: The Bakery: Everything CakePHP セキュリティリリース XSS脆弱性の修正 詳細は、あとで公表されるようです。 主な変更点 ドキュメント・テストケースの修正は除きます。時系列順です。 機能向上 Va…

CakePHP まとめ

CakePHP2.3 version release date release note 2.3.7 2013/07/05 bakery 2.3.6 2013/06/10 bakery 2.3.5 2013/05/11 bakery 2.3.4 2013/04/28 bakery 2.3.3 2013/04/24 bakery 2.3.2 2013/04/07 bakery 2.3.1 2013/03/02 bakery 2.3.0 2013/01/28 bakery 2.…

CakePHP 2.3.4 変更点

概要 公式アナウンス Security Release - CakePHP 1.2.12, 1.3.16, 2.2.8 and 2.3.4 :: The Bakery: Everything CakePHP セキュリティリリース CakePHP 1.2, 1.3, 2.2, 2.3 全てのバージョンに影響 pagination に関してSQLインジェクションの修正 詳細は、あ…

CakePHP 2.3.3 変更点

概要 公式アナウンス http://bakery.cakephp.org/articles/lorenzo/2013/04/24/security_fix_cakephp_2_3_3_available セキュリティリリース 2.3以降を使用し、SecurityComponent なしで、AuthComponent を使用している場合、認証を回避できてしまうのを修正…

CakePHP 2.3.2 変更点

概要 公式アナウンス http://bakery.cakephp.org/articles/markstory/2013/04/07/cakephp_2_3_2_released バグフィックスリリース 定数 JS,CSS,IMAGES が定義済みかどうかをチェックするように変更になったのが Good 主な変更点 フィクスチャーがプライマリ…

CakePHP 2.0.3 の変更点メモ

今回のCakePHP 2.0.3 リリースは、CakePHP 2系の安定性の向上、PHPUnit 3.6・PHP5.4 に対応への対応がメインです。66のコミットと32の問題解決と中規模の改善がありました。大きくは、 PEAR でインストールされるデフォルトのバージョンが PHPUnit 3.6 にな…

CakePHP 2.0.2 の変更点メモ

今回のCakePHP 2.0.2 リリースは、CakePHP2.0.1 の緊急のバグフィックスリリースです。CakeResponse::send の Content-Length ヘッダーの生成に問題があります。 詳細は、以下を参照。 CakePHP2.0.1がリリースされましたが、ちょっと待ったほうがいい CakePH…

CakePHP 2.0.1 の変更点メモ

今回のCakePHP 2.0.1 リリースは、CakePHP2系初のバグフィックス及びメンテナンスリリースです。 修正は100個近いですが、ドキュメントの修正や coreとtestのコードが別コミットものも多数あり、 実態の数としては、少なく感じました。特に大きい修正として…

CakePHP 1.3.13 の変更点メモ

今回のCakePHP 1.3.13 リリースも、バグフィックス及びメンテナンスです。但し、CakePHP1.3.12 で行われた修正が再度、修正されているものがあります。 個人的には、 Cake2で修正された theme 内の element のキャッシュが正しく読み込まれないバグのバック…

CakePHP 1.3.12 の変更点メモ

今回のCakePHP 1.3.12 リリースも、バグフィックス及びメンテナンスです。結構はボリュームがありますが、重大なバグは見当たりません。 また、 Cake2 からのバックポートがいくつか見られ、Cake2 の開発の活発さを伺わせます。 CakePHP 1.3.12 released htt…

CakePHP 1.3.11 の変更点メモ

今回のCakePHP 1.3.11 リリースは、バグフィックス及びメンテナンスです。 約30のコミットがありましたが、大きな変更がなく、1.3系の安定感を感じます。 逆に、 2.0.0-alpha から 2.0.0-beta は、400を超えるコミットがあり、 1.3.10 から 1.3.11 とほぼ同…

CakePHP 1.3.10 の変更点メモ

CakePHP 1.3.9 と同じ、バグフィックス及びメンテナンスリリース。 CakePHP 1.3.10 released http://bakery.cakephp.org/articles/predominant/2011/05/30/cakephp_1_3_10_released 変更差分(1.3.9 -> 1.3.10) https://github.com/cakephp/cakephp/compare…

CakePHP 1.3.9 の変更点メモ

1.3系におけるバグフィックス及びメンテナンスリリースだそうです。 CakePHP 1.3.9 and 2.0.0-alpha released http://bakery.cakephp.org/articles/markstory/2011/05/21/cakephp_1_3_9_and_2_0_0-alpha_released 変更差分(1.3.8 -> 1.3.9) https://github…

CakePHP Ajax のテスト(CakeTestCase)

CakePHP で Ajax のテスト(CakeTestCase)を作ります。 前提 PHP : 5.3.2 CakePHP : 5.3.2 CakeTestCase を拡張したクラスをテストの親クラスとして使用しています。 「CakePHP1.3 CakeTestCase の拡張を読み込む bootstrap 的なものをつくる」 http://d.hate…

view キャッシュはファイルのみ

CakePHP 1.3.2 以下を読んで。(twitter記法も試してみる) @hiromi2424: @ecworks_masap ビューキャッシュに関しては、確かに頭の痛い問題なんだよねー。いつか手をつけるつもりー:) とキャプテンマークが言ってました。(IRCでビューキャッシュをファイル以…

cakephp model::saveAll を使って、新規作成時に別モデルに初期値を作る

Project hasMany State なモデルにて、 新規に ProjectsController::add をした時、State の初期値を持たせたい。 model::saveAll を使う バリデーションとトランザクションを同時に行うことが出来ます。 State を保存する際、「project_id」が必要になりま…

CakePHP2 での testAction

CakePHP1.3 コントローラーのテスト(testAction なし バージョン) http://d.hatena.ne.jp/zainin/20100615/1276696300 の続きを書こうとして、ふと「2.0-phpunit」ブランチが気になって、コミットを追った。 その結果、testAction ありバージョンの意味が分…

CakePHP1.3 コントローラーのテスト(testAction なし バージョン)

コントローラーのテストを testAction メソッドを使わず書いた場合の例です。 前提 & 環境 テストを実行するのは、コンソール「cake testsuite app all」です。 作業環境 PHP : 5.3.2 CakePHP : 1.3.2 意識する対象 PHP5.2 以上の動作を意識します。 PHP5.2 …

CakePHP1.3 CakeTestCase の拡張を読み込む bootstrap 的なものをつくる

テストケースを作成する際に、拡張元となる CakeTestCase を拡張します。 CakeTestCase を拡張した独自のクラスを作成することで、 共通の処理を追加することができます。 しかし、残念ながら、 CakeTestCase クラスの読み込みには、 app_controller.php の…

(cakephp)コンポーネントの有効無効を行う enabled プロパティ

コントローラーの components プロパティに沿って、コンポーネントが読み込まれますが、コンポーネントの 「startup」「beforeRender」「beforeRedirect」「shutdown」メソッドを実行する際、各コンポーネントの enabled プロパティがチェック($component->e…

Auth コンポーネントのパスワードハッシュ化回避

Auth コンポーネントの使用時に、 [/users/add] や [/users/edit/] で、パスワードを入力させて、バリデーションをしたいとき、 アクションの段階では、既にパスワードがハッシュ化されているため、 バリデーションがやりづらい問題を回避します。 結論は、 …

google code の様な「/p/プロジェクト名」なルーティングを作る

http://code.google.com/hosting/ 風の「/p/プロジェクト名」でアクセスできるルーティングを作ります。 「p」は固定の接頭語です。なくともいいけど、その場合は、予め使用する単語を予約する必要があります。 「プロジェクト名」:プロジェクトを識別する文…

テスト時のredirect()やcakeError() の結果を拾う。+ DebugKit使用時も。

前提 CakePHP 1.2.7 を使用。 cake testsuite app all のテストを対象 Core や App に手を加えたくない。 Core に手を入れると、アップデート時にマージを忘れる。 app_controller.php にテストの為のコードを書くと、毎回のオーバーヘッドが気になる。(テス…

CakePHP 1.2.7 のリリースとその変更点

公式アナウンス CakePHP 1.2.7 released http://bakery.cakephp.org/articles/view/cakephp-1-2-7-released Since the release of CakePHP 1.2.6 in late January 2010, the development team have closed 36 tickets in 64 commits. This includes a recent…

Ktai Library for CakePHP1.2(Ver 0.2.0RC1)のインストール

環境 cake_1.2.3.8166 ECWorks Blog | Ktai Library for CakePHP1.2(Ver 0.2.0RC1) Ktai Libraryの魅力 携帯サイト作成時には、 どうしても携帯端末の振り分けが必要になり、 PEARのNet_UserAgent_Mobileのお世話になっていました。PEARのNet_UserAgent_Mobi…

redmineのmysqlのダンプ

redmine&mysqlから、candycaneを使ってみた。CakePHP版redmine candycaneのソースを公開しました - yandodの日記 インストール cakephp1.2をダウンロード candycaneをダウンロードして、上記に上書き sqlの場合は、[app/config/sql/dump.sql]からインポート…

windowsでcakephpのbakeするためのコマンドライン

cd D:\cake\cake\console SET PATH=%PATH%;%CD% CD ../../ cd app

cakephpでHTMLの静的生成

fc2ブログ風に、公開ROOT直下にentry-<id>.htmlを生成 上書き判定機能・削除機能なし Postモデルについては、cakephpのチュートリアルに準じる

cakephp1.2でApp::importを使いapp/venderに置かれたPEAR::Net_UserAgent_Mobileを使う

参考:北青山通信 - from aoyama − CakePHPでPEARを使う1.pearライブラリをapp/vendorsへコピー app/vendors へ PEAR.phpをコピー。 app/vendors/Net/UserAgent へ PEAR::Net_UserAgent_Mobileをコピー (app/vendors/Net/UserAgent/Mobile.php app/vendor…

cakephp 1.2 でsmartyを使う

今までは、cakephp1.1に CakePHPでSmartyのススメ - ホームページ制作日誌 を参考にsmartyを導入していたが、 cakephp 1.2で、 smartyをインストールさせるのが、面倒だったので、 探してみたら、↓を発見! ECWorks Blog(仮): CakePHP RC2公開とSmartyViewの…