2013-05-01
■[CakePHP] URL生成Tips
その前に、基本のおさらい。
- $_SERVER['SERVER_NAME']
localhost
- Router::url(array('controller' => 'users', 'action' => 'login'), true))
http://localhost/sampleapp/users/login
これも基本でしょという声は華麗にスルーしつつ。
- FULL_BASE_URL
http://localhost
- $this->controller->request->base
/sampleapp
- $this->controller->request->webroot
/sampleapp/
2013-04-30
■[CakePHP] Configureを使う必然性
自分自身、CakePHPが提供するConfigureクラスとPHPネイティブのdefineの使い分けがよく分かってなかったので調べてみた。
CakePHP - Configure::write or define()のgrigriさんの答えでようやく腑に落ちたのでここに引用しておく。
Benefits of using Configure: * No collisions with other php scripts. * Can be changed at runtime * Easy to organize, list, group and persist related settings Benefits of using php constants: * Less verbose * More efficient
2013-04-13
■[CakePHP] 携帯端末用プラグインに手を入れました
ガラケー(フィーチャーフォン)についての知識・経験が圧倒的に不足しているため、MASA-P/cake_ktai_library ? GitHubというCakePHPプラグインを導入しようとしました。
1.3系(MASA-P/cake_ktai_library at 0.x-1.3 ? GitHub)と2.x系(MASA-P/cake_ktai_library at 0.x-2.x ? GitHub)とがあったので、後者をダウンロードしてPluginフォルダに置いてみたところ、
Non-static method Lib3gk::get_instance() should not be called statically, assuming $this from incompatible context
※同様のエラーが他二件
Declaration of KtaiComponent::initialize() should be compatible with Component::initialize(Controller $controller)
※同様のエラーが他二件
といったエラーが発生…
[動作環境]
PHPを継続的に使ってきたわけではないので詳しいことは分かりません(ダメ開発者や…)が、エラーメッセージから推察するに言語仕様の変更によるものと思われました。
そのあたりを修正したところ、無事エラーが消え、動作しました!
Folkしたリポジトリにその修正をコミットしておきましたので、必要な方は下記からどうぞ。
2013-04-10
■ CakePHPのキャッシュまとめ
CakePHPで利用できるキャッシュ機構についてまとめてみました。
詳細はリンク先参照。
ブラウザキャッシュ
出力したコンテンツをブラウザ側でキャッシュさせる/させないを制御します。
リクエストとレスポンスオブジェクト — CakePHP Cookbook v2.x documentation
Viewのキャッシュ(ファイルキャッシュ)
同一リクエスト(コントローラ/アクション/パラメータ)に対するレスポンスをキャッシュします。
もちろん、レスポンスの内容が異なる(例:PC用とスマホ用)場合は違うURLになるようにしなければなりません。
キャッシュヘルパー — CakePHP Cookbook v2.x documentation
CakePHPアプリケーションの基本的な設計指針 (2) - キャッシュまわり - - 24時間CakePHP
element単位でキャッシュする仕組みもあります。
ビュー — CakePHP Cookbook v2.x documentation
CakePHPのCache(Viewキャッシュ)について考える | 半年前の私への教科書の"1.element ( & requestAction ) キャッシュ"参照
Modelのキャッシュ
1リクエストの間だけキャッシュされます。
モデルの属性 — CakePHP Cookbook v2.x documentation
CakePHP標準(?)のキャッシュ
CakePHP標準(?)のキャッシュエンジン。キャッシュストレージを指定することでファイル(デフォルト)やメモリに任意のデータをキャッシュします。
CakePHPでファイルキャッシュ、メモリキャッシュを使う|A Day In The Boy's Lifeの"CakePHPでメモリキャッシュを利用する"参照
実行コードのキャッシュ
PHPの実行コードをキャッシュして、コンパイルに要する時間を短縮します。
2013-01-31
■ phpDocumentorを使うまでに有効だったリンク
Windows + All-In-One Eclipse + CakePHP の環境でなるべく簡単にドキュメントを作成する方法で結構回り道をしてしまったので、結果的に有効だった最小限のリンクを貼っておく。
なにはともあれ、公式サイト。
合わせて、この記事が大変助かった。
ポイント3つ!phpDocumentor を Pleiades All in One 日本語ディストリビューションで使うための設定!!! | oki2a24
後は、Eclipseの「実行構成」(≠外部ツール)を定義して、一発で実行できるようにしておく。
ポイントは…
- 「新規>フォルダー>拡張>リンクされたフォルダー」で"PATH\TO\ECLIPSE\xampp\php"を追加すること
- 「実行構成>PHP CLI アプリケーション>PHPスクリプト」で"/PROJECTNAME/php/phpdoc.php"を指定すること
- 「PHPスクリプト変数」は例えばこんな感じ。
-d "PATH\TO\ECLIPSE\xampp\htdocs\PROJECTNAME\app" -t "PATH\TO\ECLIPSE\xampp\htdocs\PROJECTNAME\doc"
