php

coreserverでphp5.3.8用のAPCをビルドしてみたけどうまくいかなかった

php

coreserverのPHPは5.2.5がデフォルトだけど、CGIモードにすると5.3.8か5.4.7が使えます。CakePHP2系は5.2.8以上が必要なので、coreserverでCakePHP2系を使うならCGIモードで5.3.8以上のどちらかにしないとです。 ただ、この5.3.8 / 5.4.7にするとcoreserver…

CakePHP 2.0.5のバグ報告をしたメモ

そろそろCakePHP2系を使ってみようと思って、CakePHP2の勉強会に参加しつつ、cakeコンソールでプロジェクトを作ろうとしたら、なんか大量のNoticeが出てきました。Noticeだけなので動かない事はないかもとは思ったけど、あまりに大量に出てcakeコンソールが…

CakePHP2を使うためにMAMPを更新した

CakePHP2系をそろそろ使ってみようと思ったら、なんか自分の環境でうまく動きません。どうも調べてみるとphpのバージョンが低すぎるのが原因みたいなので、MAMPをアップデートする事にしました。自分のMacはいまだにLeopardで、最新のMAMP2系は既にサポート…

CakePHPのSearch pluginでタグの絞込み検索を作る(AND検索)

一昨日にOR検索のほうは修正したばかりですが、CakeDCのsearch pluginの記事が少ないので1個置いときますね。CakePHP Advent Calendar 2010 8日目 - kanonjiの日記のコードに機能追加しました。色々な検索の方法の中に、HABTMの検索が書いてありますが、これ…

CakePHPのsearch pluginのサンプルコードと記事をちょっと修正。Containableは必要でした

CakeDCのsearch pluginの記事が少ないので1個置いときますね。CakePHP Advent Calendar 2010 8日目 - kanonjiの日記のコードをちょっとだけ直しました。タグ検索などを実装するHABTMの検索で、プラグインのReadme.mdにはあったContainableビヘイビアを使わな…

coreserverでのAPC(Alternative PHP Cache)について調べてみた

php

ちょっとCoreserverで動かしてるphpアプリで、APCが使えるなら使ってみたいと思ったので調べてみました。 まとめ その前に注意 Coreserverはサーバーによって構成が異なるので、このエントリーが当てはまらないかも知れません。 このエントリーの方法がCores…

CakePHPのDboSource::expression()を調べてみた。conditions等にSQLを書くためのものかな?

DboSource::expression() というメソッドを見かけて、ちょっと気になったので調べてみました。自分としてはもっと魔法のメソッド的な便利なのだったらいいなーとか思ってたんですが、残念ながらそうでは無いみたい。でも折角調べたのでエントリーにしておき…

.htaccessを使いローカル環境はそのまま、coreserverではCGIモードに設定する方法

php

CakePHPのちょっとしたアプリをcoreserverに設置したら、セーフモードのせいで画像アップロードが出来ませんでした。そういえばcoreserverはCGIモードにしないとセーフモードだったのを思い出して、htaccessで設定したんですが、そのままだとローカル環境で…

CakePHPでjQueryをそのまま書く際に使えるパス補完メソッドをjQueryオブジェクトに追加する。

CakePHPではHtmlHelper::script()を使いJavaScriptファイルを読み込むscriptタグを生成します。これはこれで使うんですが、jQueryプラグインを使う場合は、ロード完了のコールバックで動かしたいところです。また、内部に置いてあるJSONとか画像とかを読み込…

CakePHPのl10nとphpのsetlocale()がかみ合わない件

setlocale()でロケールを設定する必要が出たので、CakePHPのl10nと連動させようとしてます。ただ、残念な事にl10nとsetlocale()が上手くかみ合わず行き詰まりました。 とりあえずの結論 l10nからは'ja'か'jpn'が取得できます。setlocale()でロケールを日本語…

CakePHPのバグ報告ってどういう手順を踏めばいいんだろう?l10n::get()について。

CakePHPの l10n のソースを読んでたら、もしかしたらこれってバグ?ってのがありました。バグなら報告したいところなんですが、いざしようと思ったらどういう手順を踏めば良いのかわからず。もしかしたらそういう仕様なのかもしれない、曖昧なものという事も…

phpのDOMDocumentで断片的なhtmlを扱うならxmlとして読み込むのがよさそう(PHP Advent Calendar jp 2010 Day 23++)

php

PHP Advent Calendar jp 2010 23++日目 PHP Advent Calendar jp 2010 : ATNDCakePHP Advent Calendar 2010 に続いて PHP Advent Calendar jp 2010 の順番が回ってきてたんですが・・・すいません、昨日は日付がかわってから帰宅する事になってしまいました。…

CakePHPでbake projectする際、tmp/logsやlibsなど空ディレクトリにemptyを入れておく方法

./cake -app /path/to/app/to/put bake [project]新しくCakePHPアプリを作る際、appディレクトリをコピーせずに、bakeで作成しています。app_controller.php や app_model.php などを作成してくれますし、APP/config/core.php の Security.salt と Security.…

MAMPで開発中のCakePHPベースのアプリ。どこかでキャッシュされてる?

MAMP上で開発してるCakePHPベースのアプリで、リロードすると読み込みが早くなる場合がありました。CakePHPのキャッシュの仕組みをちゃんと把握してなかったので、デフォルトで何か動いてるのかとか、もしくはMySQL側の方かとちょっと調べてみました。特に最…

CakePHPのHtmlHelper->scriptBlock()やscriptStart()は$scripts_for_layoutで出力されない

CakePHP 1.2の事は分かりませんが、1.3系ではHtmlHelperでJavaScriptをViewテンプレートに書いていきます。scriptタグを書いても良いのかもしれませんが、HtmlHelperを使って書いたらスクリプトをバッファに貯めておいて にまとめて出力してくれます。まぁ折…

CakeDCのsearch pluginの記事が少ないので1個置いときますね。CakePHP Advent Calendar 2010 8日目

CakePHP Advent Calendar 2010 8日目 http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=2510&forum=16CakePHP Advent Calendar 2010の順番が回ってきました。8日目のkanonjiです。最近立て込んでいたので、実はみんなの記事を今日読み…

CakePHPのコアライブラリ、Sanitize::clean()のodd_spacesオプションの謎

CakePHPのバリデーションは、基本的にデータベースへ格納する直前にするもので、コントローラーに処理が入るところでのチェックが気になっていました。 ブラウザから受け取った値をバイナリセーフじゃない関数で処理すれば、NULLバイトアタックを受けたりす…

phpのisset()とis_null()とempty()とif($foo)の違いにいまさら気がついた

php

phpで変数の値の有無について判別する場合、isset()やempty()やif文にそのまま変数だけ書いたりします。 この判別がゆるゆるで、例えば empty('0') は string が入ってるのに true で空っぽ扱いです。 確かにゼロですけどね。 柔軟で人間らしいという声もあ…

Prefix routing毎にセッションCookieのセッション名を切り替える。CakePHP1.3

CakePHP 1.3.0から少し変わった Prefix Routing で、管理画面や携帯サイトなど、ディレクトリで分けた別サイトっぽく出来ます。 ただ、同じController/Modelクラスを使うし、config系も共有しています。 実態としては同じサイトの一部という感じです。 そこ…

現在開いてるページへのリンクを判別できるHtmlHelperを作る。CakePHP1.3

CakePHP の HtmlHelper は、名前の通り html を生成します。 Baker暦の浅い自分は、何で html を普通に書かずわざわざHelperを介するのか、よく分からなかったりします。 でも、組み込みだし、どうも CakePHP 関連の情報を調べてると、HtmlHelper は使うのが…

CakePHPのプラグイン、cakeplus pluginの機能と使い方

プラグインを拡張する方法(how to extend a plugin) - cakephperの日記(CakePHP, Laravel, PHP) の @cakephper さんの cakeplus plugin です。 CakePHPでの開発で良く使う機能をいくつかまとめたプラグインの様で、ちょっと具体的に何が出来るのか分からなか…

CakePHP1.3.xで複数のPrefix Routingを設定してる時のBakeの動き

CakePHP 1.3.0からPrefix Routingの設定方法が若干変わりました。 CakePHP 1.2系は使ったことが無いので良く知りませんが、1行で複数のPrefixを設定できるようになったようです。 さて、Bake で View や Controller を焼こうとすると「Would you like to cre…

CakePHP1.3.xのHtmlHelperでGoogle AJAX Libraries APIのjQueryを読み込む

CakePHP 1.3.0から、AjaxHelperとJavascriptHelperが非推奨になり、JsHelperとHtmlHelperを使うように変更になりました。 ライブラリの.jsファイルの読み込みは HtmlHelper->script() を使いますが、Google AJAX Libraries APIから読み込む方法がCookbookに…

CakePHPのFormHelperのGETメソッドとPOSTメソッドの違いではまった件

プルダウンやラジオボタン、チェックボックスと、テキスト入力を組み合わせた、ちょっと複雑な検索画面を作っている時にはまりました。 ほとんど、フォームの入力値をAND検索するだけだったのでpostConditions()を使って作ってました。 検索画面なのでGETメ…

CakePHPでRDB以外のデータソースを使う時のBakeのエラーと回避

CSVをデータソースとして扱えるようにする CsvSource というプラグインがあります。 コントローラーの $uses にCSVを使うモデルを設定したら、Bake で View を焼く際にエラーが出るようになってしまいました。 CsvSource とは http://github.com/cakephp/dat…

cakeコンソールのBakeを使ったアプリケーションのセットアップ

CakePHP 1.3.0 での Bake の動きを調べてみました。 Cookbook って cake コンソールや Bake について、あんまり書いてないんですよね。 Bakeは色々と機能があるようなので、まずは最初のアプリケーションのセットアップと、データベース設定について、 bake …

rhaco2のアクセサ、拡張アクセサについてのメモ

rhaco2は内容が変わりやすいフレームワークです。 この記事の公開日が過去な程、参考にはなるかもしれませんが、正確じゃなくなっている可能性が高くなります。 また、手探りで調べているところも多いので、元々正確じゃないかもしれません。 アクセサ rhaco…

いまさらだけどrhaco2の紹介と、自分用のセットアップのメモ

rhaco2は内容が変わりやすいフレームワークです。 この記事の公開日が過去な程、参考にはなるかもしれませんが、正確じゃなくなっている可能性が高くなります。 また、手探りで調べているところも多いので、元々正確じゃないかもしれません。 rhaco2の特徴 r…

CakePHPのController->__mergeVars()でcomponentsがマージされてない?

CakePHP 1.3.0 を学習中に、もしかしたらバグかも?というのにはまったので、ブログに書いて誰かのアドバイスを期待しようという記事です。 バグっぽいなぁと思いつつも、CakePHPは最近はじめたばかりで、これがバグなのか、自分が何かを間違えてるのか*1ち…

phpのErrorException が Exception じゃなくて RuntimeException を継承してたらしっくりきそうなんだけど、どうだろう?

php

定数 説明 発生時の行頭 種類 E_ERROR Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted. Fatal error: Runtime E_WARNING Run-time warnings (non-…