「コントローラでキャッシュする」指定方法が変更になっている?

CakePHPでは、アクション単位でキャッシュ有無の指定を行うことが出来ます。その場合、 var $cacheAction = array( 'view/23/' => 21600, 'view/48/' => 36000, 'view/52' => 48000 );などのように記載するよう、解説されていますが、 これはver1.2までの仕…

CakePHP1.3のキャッシュ不具合

CakePHPのバージョンを1.2.5から1.3.6に上げたところ、一部のページで、指定と異なる内容が表示されたりするようになりました。原因は、キャッシュの不具合。 ファイル名の正規化などを行うInflector::slugの不具合のため、異なるページのキャッシュが同一名…

Ver1.2->1.3でvendorPathsの設定不備によるエラーの解消

CakePHPのverを1.2から1.3にあげると、既存のソースで Configure::read('vendorPaths') の設定を用いていたため、エラーが出る場合の解消法。 $vendorPaths = array_values(App::path('vendors'));を代わりに使えばよさそう。

スマートフォンで一部サイトが文字化ける

XOOPS Cubeで運営していたサイト。 スマートフォン系*1のデフォルトブラウザで見ると、酷い文字化けでまったく読めない状態でした・・・。 * 11/16 情報追記、AppleWebKitの挙動です 原因は、EUC-JPとSafariの相性だった模様。 以下のサイトの情報を元に、解…

レンタルwiki用ダイスボット案

オンラインでキャンペーン的なことをやっていると、 ゲーム中に出てきたNPCなどの設定をwikiで記録しておくと、何かと便利です。 仲間内でよく使ってるのが、無料の@wiki。 「ここでダイスも振れればいいのに」という要望があったので、検討してみました。 …

要ログインページのURLをメールから直接開けないケース

要ログインページのURLをメールで送信して開いてもらった場合、 ログイン後の遷移先が、指定のURLではなくRouting.basePathになる場合があります。 Yahooメールで確認しましたが、他のブラウザメールでも発生するかもしれません。 メールアドレス登録確認な…

ロールバック

CakePHPはロールバックも簡単でした。何らかの条件分岐でsave()処理を巻き戻したい場合の記載方法。http://book.cakephp.org/ja/view/1633/Transactions

 Elementキャッシュ

ホームなど、ポータル系の画面で 新着情報エリア 自分の情報エリア RSS情報エリア ・・・などのように更新タイミングが分かれている場合は、Elementキャッシュがよいようです。Elementキャッシュ導入で、参考にしたのは以下。 http://text.tklabo.net/blog/8…

ビューキャッシュ(2) キャッシュ読み込みタイミング

特定のURL(ビューキャッシュが作成されると、その後、同じURL(model/action/parms)にアクセスしても、コントローラ・モデル・ビューなどの処理を一切通過しなくなります。 その処理は、Dispacherの中にありました。

モデルキャッシュの検証

前述の通り、表示が劇的に速くなるビューキャッシュですが、若干問題点があります。 特に、閲覧者権限によって、1つの画面に表示/非表示させる部分が複数存在する場合。 前述の通り、cake:nocache でキャッシュせず毎回判断する方法もありますが、数が多いと…

ビューキャッシュ導入(1)

ビューキャッシュ導入(途中経過)時の追加・変更点と、効果について。導入方法は概ね各種サイトの情報通りですが、設定ファイルでキャッシュの有効期限を設定できるようにしました。

ビューキャッシュとDebugKitプラグインの関係

まず、ビューキャッシュを導入しました。導入方法は基本的に、ネット上あちこちにある紹介の通りなのですが、一箇所トラブルがありました。 DebugKitプラグインが動作していると、ビューキャッシュされません。 core.phpでdebug設定を0にすれば解決ですが、…

負荷測定

CakePHPベースの自作アプリケーションのα版を公開環境においてみて一番問題だったのは、負荷でした・・・ アクセス〜表示に数秒かかるとは。 アプリ内部の追加や修正が一通り見込みついたところで、負荷対策開始。 手始めとして、実際に負荷を測定して「見え…

ルルブ @ iPad

あの田中天さんが、iPadにルルブいれて、使用感をレポートしてました。2010-07-05 iPadヤバい。マジヤバい。

SecurimageでCAPTCHA導入

CakePHPに、CAPTCHA機能PHPライブラリ「Securimage」を導入してみました。

CAPTCHA導入方法

CakePHPにCAPTCHAを導入する方法のメモ

デモ公開開始

CakePHPで、こんなニッチなものを作ってました(笑) 新作スクリプト、デモ公開開始 きゃら・し!

さくらインターネットレンタルサーバにセットアップした際の2つの問題

さくらインターネットレンタルサーバにCakePHPをセットアップする方法はネットに各種情報がありますが、それらですぐには解決方法が見つからなかった点が2点ありました。 mediaプラグインでアップした画像が表示されない データ保存前に Sanitize::cleanを行…

SourceForgeにCakePHPをセットアップする場合

SourceForgeのWebホスティングサービスにCakePHPをセットアップする場合、app/webroot あるいは Webroot/ 以下の .htaccessに RewriteBaseの設定追加が必要です。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /[設置dir名] RewriteCond %{REQUEST_FILENAME} !-d RewriteC</ifmodule>…

"桃ラー" 拡張、自作『辛旨』なラー油

昔から、『唐辛子系辛いモノ』に強い人間が、桃ラーの評判見て、食って、”作って”見たw 『唐辛子系”辛い”』、は以下基本ですw

インストーラ改修(4) テーブルprefix対応

DBのprefix設定に対応してみました。 2010/04/19 1つのDBに複数をインストールする場合のために、外部キ−名にもprefixを適用追加が必要でした

インストーラ改修(3) インストール前に権限チェック

インストーラのindex()アクションで、事前にインストール&運用に必要なディレクトリやファイルの権限チェックと表示を追加しました。

installプラグインの削除について

インストールプラグインでは、インストール完了後に 「Click here to delete installation files」 という処理を行なう事が出来るのですが、これが正しく動かない場合があります。これは権限設定の問題で、正しく動く条件は app/plugins/install 以下が全て …

インストーラ改修(2) エラー検出とロールバック

app/config関連の権限設定を間違えていると、database.phpを作成する過程でエラーになります。 その付近のエラー検出追加と、ロールバック処理を追加しました。 app/config関連で必要な権限設定は以下の通り app/config (777) app/config/database.php.insta…

インストーラ関連まとめ

CakePHPベースのプロジェクト管理システム、 「CandyCane」 http://thechaw.com/candycane/ のソース(概ね2010/04時点)をベースとした、CakePHPでの「インストーラ実装方法」まとめです。私的残件課題:「多言語化対応」ができてない、という問題点が、残…

インストーラ改修(5) core.phpの書換え:Security.salt

CandyCaneベースのインストーラで、core.phpの設定(Security.salt)をランダムハッシュで行なう改修です。この機能追加は、概ねCroogo ver.1.3の仕様ベースです。

インストーラ改修(1) システムメッセージ表示

CandyCaneのインストーラプラグインを改修してみます。 ベースソースは、昨日時点の http://thechaw.com/candycane/source/ です。 まずは、ふと気づいた 「コントローラで $this->Session->setFlash()してるはずのメッセージがテンプレートで表示されていな…

CandyCaneインストーラを使ってみた。

CandyCaneのインストーラプラグインを使ってみて、エラーになった箇所・私が勘違いしてた実仕様は以下の通り。 app/configディレクトリを読み書き可にしないとdatabase.phpを作成できない 権限を変えてないと、database.php.installをdatabase.phpにリネーム…

インストーラの作り方調査

インストーラを作りたい。 できれば、サーバにソースをアップロード→ブラウザアクセス、一部データ(管理ID,パスワードなど)を入力→実行 で、できるだけ全てが済むようなインストーラを。 基本的なインストーラの作り方の一例を記載した記事を見つけたので、…

CakeSchemaはENUMやInnoDBを扱えない

CakePHPには、テーブルを初期化・作成するSchema機能があります。 現在のDBからSchema設定を作成したり、 以前のSchemaとの差分を更新するSchema設定を作成したり、 database.phpのテーブル名prefixにも対応しているので、 システムのインストール・アップデ…