Hatena::ブログ(Diary)

TODO: set my blog title RSSフィード

2013-05-01

[] URL生成Tips

CakePHPでURLを生成するときに“使える”変数・定数


その前に、基本のおさらい。

  • $_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

[] 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

[] 携帯端末用プラグインに手を入れました

ガラケー(フィーチャーフォン)についての知識・経験が圧倒的に不足しているため、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したリポジトリにその修正をコミットしておきましたので、必要な方は下記からどうぞ。

fullkawa/cake_ktai_library at 0.x-2.x ? GitHub

2013-04-10

CakePHPキャッシュまとめ

CakePHPで利用できるキャッシュ機構についてまとめてみました。

詳細はリンク先参照。

ブラウザキャッシュ

出力したコンテンツをブラウザ側でキャッシュさせる/させないを制御します。

リクエストとレスポンスオブジェクト — CakePHP Cookbook 2.x ドキュメント

Viewのキャッシュ(ファイルキャッシュ)

同一リクエスト(コントローラ/アクション/パラメータ)に対するレスポンスをキャッシュします。

もちろん、レスポンスの内容が異なる(例:PC用とスマホ用)場合は違うURLになるようにしなければなりません。

キャッシュヘルパー — CakePHP Cookbook 2.x ドキュメント

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


element単位でキャッシュする仕組みもあります。

ビュー — CakePHP Cookbook 2.x ドキュメント

CakePHPのCache(Viewキャッシュ)について考える | 半年前の私への教科書の"1.element ( & requestAction ) キャッシュ"参照

Modelのキャッシュ

1リクエストの間だけキャッシュされます。

モデルの属性 — CakePHP Cookbook 2.x ドキュメント

CakePHP標準(?)のキャッシュ

CakePHP標準(?)のキャッシュエンジン。キャッシュストレージを指定することでファイル(デフォルト)やメモリに任意のデータをキャッシュします。

CakePHPでファイルキャッシュ、メモリキャッシュを使う|A Day In The Boy's Lifeの"CakePHPでメモリキャッシュを利用する"参照

実行コードのキャッシュ

PHPの実行コードをキャッシュして、コンパイルに要する時間を短縮します。

いろいろなミドルウェアがありますが、APCやeAccelerator等が有名です。

いまさらAPCをインストールして、PHPの実行を高速化してみた ::ハブろぐ

2013-01-31

phpDocumentorを使うまでに有効だったリンク

Windows + All-In-One Eclipse + CakePHP の環境でなるべく簡単にドキュメントを作成する方法で結構回り道をしてしまったので、結果的に有効だった最小限のリンクを貼っておく。

なにはともあれ、公式サイト。

phpDocumentor

合わせて、この記事が大変助かった。

ポイント3つ!phpDocumentor を Pleiades All in One 日本語ディストリビューションで使うための設定!!! | oki2a24

後は、Eclipseの「実行構成」(≠外部ツール)を定義して、一発で実行できるようにしておく。

ポイントは…

-d "PATH\TO\ECLIPSE\xampp\htdocs\PROJECTNAME\app" -t "PATH\TO\ECLIPSE\xampp\htdocs\PROJECTNAME\doc"