ようこそゲストさん

CPA-LABテクニカル

2008/02/05(火) CakePHP追加コントローラー。ローカルはOK、でもレンタルサーバーでNG。の現象解明

はてなブックマークの情報 はてなブックマークに登録 はてなブックマーク数 cakephpspok
CakePHP1.2bで題名の通り、追加したモデル&コントローラーで不具合?が。ローカルの環境では全く問題なく動くのに、リモートのレンタルサーバーにアップロード後に試すと、なぜかこんなエラーが。
Error: The requested address '' was not found on this server.
ずいぶん悩んで時間がかかったけど、なんのことはない。
layout指定の最初の文字を大文字にしていました。。。。 (& デバッグモードdebug 0 の時)
  • var $layout= 'infl…';
とすべきところ
  • var $layout= 'Infl…';
としていました。。。


はい、私が悪いです。


確かにウィンドウズ(windows)環境では、大文字小文字を区別しませんでしたね。。。そんなの忘れてたし、まさかこんなことでつまずくなんて。。。。だから、CamelCaseとか複数形とか大嫌いだ。
ローカルはウィンドウズ、リモートはunix/linux系という人は多いかと思うので、覚書。


リモートは、Configure::write('debug', 0);にしているので、こうなったわけですな。
ここでデバックモードを1以上にすると以下のエラーがでて、間違いに気づきます。

Error: The layout file /home/hogehoge/hoge/cake/hoge/app/views/layouts/Inf….ctp can not be found or does not exist.

リモートで、あれっという現象にであったら、とりあえずデバッグモードを1にしてみると手がかりあるかも。


なお、アメリカのgoogleディスカッションをみると、似たような現象で、新たにアップしたモデルなどが動作しない場合は、キャッシュをクリアすると動いた事例もあるようです。お試しあれ。


cake1.2bのお話。

#  非公開コメント   
  • TB-URL  http://www.cpa-lab.com/tech/058/tb/

CakePHP規約ワードメーカー WordMaker for CakePHP Conventions

はてなブックマークの情報 はてなブックマークに登録 はてなブックマーク数 cakephpspok
CakePHPには、データベースのテーブル名や、クラス名、ファイル名に「規約」がさだめられています。CakePHP規約

しかし日本人にとっては、複数形だの、CamelCase*1など、全然なじみがありません。私なんぞ、womanの複数形をwomansにしてしまうような英語オンチです*2


なので、サイト構築しながら、命名にものすごく悩むわけです。プログラミングしながら、とてもよく間違えるわけです。
なので、それをサポートするページを作りました。私自身が必要なものです。


CakePHP 規約ワードメーカー WordMaker for CakePHP Conventions


これで、作りたい単語を入力すれば、テーブル名からクラス名から、自動的に作ってくれます。
もちろんCakePHPのinflector(語尾変化)クラスを使っていますので、Cakeウェイです。


ただ、これを作ったおかげで、CakePHPの単語変化にちょっとおかしな部分をみつけました。日本人からみておかしいだけで、英語圏の人にとっては普通なのかもしれません。また時間のあるときに書きたいと思います。


おまけですが、AJAXも勉強したかったので、AJAX化してあります。若干レスポンスが悪いかもしれませんが、ご容赦を。というか私以外には要のないサイトかもしれない。
CakeのAjaxヘルパーは優秀ですな~。あっというまにAjaxになっちゃったよ。
Javascriptなんて、全然知らないのに。


さらについでに、「この単語じゃないですか?」というsujestsuggest機能をつけました。アメリカyahoo.comのAPIを使用させていただいております。
こことリアルタイムで通信するので、若干レスポンスが重たいです。
しかし、もうちょっとたくさんのサジェストをしてくれるといいのだけれど、かなり字数を打ち込まないと、「~じゃないですか」がでてこない。
もっといい辞書APIをご存じの方がいれば、ぜひお教え下さい。

*1 : 英単語の最初の一文字が大文字で、残りは小文字の書き方

*2 : ただ単に頭が悪いというつっこみはしないで


#  非公開コメント