Home > PHP > CakePHP

CakePHP Archive

CakePHP 1.2RC3はPluginの仕様が一部変わってる?

この記事の所要時間: 317

以下の記事は思い違いしている箇所があります。

slywalkerさんのblogに解説記事があるので、そちらも合わせてご覧下さい。(slywalkerさん、ありがとうございます!)

思い違いしていた点は以下。

  1. [変更点:1] コントローラ、モデルの命名規則
  2. Plugin名を先頭に付けるのはシステム的な強制だと思い込んでいました。book.cakephp.orgにもありますが、これは強制ではなく、推奨ですね。

    そもそもの勘違いはアクセスURLでした。↓の例だと「/admin/users/index」で、自動でadmin_users_controller.phpが読み込まれると思い込んでいました。(Routing.adminと同じノリで)なので、フレームワークがコントローラを探す際はURLから自動的にPlugin名を補完しているかと思っていました。

    ここがそもそもの間違いで、アクセスURLが「/admin/admin_users/index」であれば納得です。

    ということで、ここは従来のままでokということですね。

  3. 名前の競合
  4. 名前の競合を防ぐために、plugin名を先頭に付けるという方法が推奨されているという事でした。

昨日の勉強会で話題になっていたPluginですが、1.2RC3では仕様が変わっているようで、従来の方法で構築したPluginは動作しなくなっているようです。

変更点を調べてみました。

[変更点:1] コントローラ、モデルの命名規則

これまではPluginのコントローラ・モデルは、ファイル名とクラス名にPlugin名を先頭に付ける必要がありました。

しかしRC3の仕様では、Plugin名を付けてはいけません。

Plugin名が[admin]の場合は以下のようになります。

  • 従来
app/plugins/
  + [admin]
       + [controllers]
            + admin_user_controller.php (AdminUserControllerクラス)
       + [models]
            + admin_user.php(AdminUserクラス)
       + [views]
            + admin_user/index.ctp
  • RC3
app/plugins/
  + [admin]
       + [controllers]
            + user_controller.php (UserControllerクラス)
       + [models]
            + user.php(Userクラス)
       + [views]
            + user/index.ctp

[変更点:2] コントローラ、モデルの親クラス

さらにこれまではPluginのコントローラ・モデルの親クラスとして、%Plugin%AppController、%Plugin%AppModelクラスを定義する必要がありました。

しかしRC3の仕様では、任意となり、通常のAppController、AppModelクラスを継承してもokになりました。この場合は%plugin%_app_controller.php、%plugin%_app_model.phpを設置しなくても良いです。

もちろん従来どおり基底クラスファイルを設置して継承するのもokです。基底クラスファイルはフレームワークが自動で読み込んでくれます。

  • 従来

app/plugins/
+ [admin]
+ admin_app_controller.php <== 必須 + admin_app_model.php <== 必須 + [controllers] + user_controller.php (AdminAppControllerを継承) + [models] + user.php(AdminAppModelを継承) [/code]

  • RC3

app/plugins/
+ [admin]
+ admin_app_controller.php <== 任意(なくてもok) + admin_app_model.php <== 任意(なくてもok) + [controllers] + user_controller.php (AppController or AdminAppControllerを継承) + [models] + user.php(AppModel or AdminAppModelを継承) [/code]

名前が競合

仕様変更の影響ですが、まず従来の仕様で作られているPluginは当然ながら動作しません。

あと気になるのは、コントローラやモデルのクラス名からPlugin名が省かれたことにより、アプリケーション側や別のプラグインのコントローラ・モデルと名前が競合する可能性が出てきました。

複数のコントローラを一度のHTTPリクエストで読み込むことは少ないかもしれませんが、モデルに関しては十分に考えられます。あとさらに問題なのがViewテンプレートです。

app/plugin/%plugin%以下にviewsディレクトリを作る場合は問題無いのですが、app/viewsにPluginのViewテンプレートを設置したい場合は、コントローラ名がアプリケーションと競合すると、お互いが同じViewテンプレートを読み込む事になります。

@see: CakePHP1.2RC3 Plugin使用の際のViewについて – 忍び歩く男 – SLYWALKER

Pluginを作る時は競合しないようなクラス名を付ける必要がありますね。(PHP5.3ならnamespaceが使えますが。。。)

ドキュメント化されていない

この変更がいつ施されたかは追いかけていないのですが、RC3ではこのような挙動になっています。

残念ながら[2008/12/13]現在は、book.cakephp.orgのドキュメントも従来の仕様のままです。ドキュメントどおりに作ってもRC3では動作しませんので、ご注意を。

ただWebにはあまりにもこの事についての情報が無いので、ここの人が追試して「使い方間違ってるよ」的な指摘をしてくれるのを願っていたりもします。

CakePHP アプリケーション実行の流れをシーケンス図で書いてみた

この記事の所要時間: 041

CakePHP関西勉強会での発表のためにアプリケーション実行の概要をシーケンス図で書いてみました。

具体的にはDispatcher#_invoke()[cake/dispatcher.php]が、コントローラ・コンポーネント・ビュークラスの各メソッドを呼び出す流れです。これを見るとアプリケーション側の各メソッドがどの順序で呼び出されるかが分かります。

なお図にあるUserControllerとUserComponentは、アプリケーションで定義しているものです。

勉強会での発表資料に解説があるので、そちらも参考にして下さい。
@see CakePHP関西勉強会終了しました&発表資料


cakephp_dispatcher__invoke_sequence.pdf

CakePHP関西勉強会終了しました&発表資料

この記事の所要時間: 229

CakePHP関西勉強会が無事に終了しました。

東京で第一回CakePHP勉強会を行ってから1年経過して、ついに関西で開催することができました。一つの節目を迎えたようで感慨深かったです。

今回ははじめて勉強会の幹事をやってみました。たいして幹事らしいことはできませんでした(・・・)が、例によってやってみると色々と考えないといけないことがありました。勉強になりました。

以下、つらつらと。

1. CakePHP アプリケーションの流れを追う

  • shin1x1
  • フレームワークがどう動くかを大枠で発表しました
  • 全体の流れが上手く伝われば嬉しいです:-D
  • 技術解説は難しい。。。まだまだ表現を考えないと。
  • デモを交えると良かったかも。
  • Dispatcher#_invoke()のシーケンス図はまた上げます。上げました。
  • Componentは是非活用してみて下さい。
  • 第1回Python関西勉強会参加者募集中です
  • ありがとうございましたー

2. フォームメールを生成するプラグイン

  • 腰が気になる(w slywalkerさん
  • Pluginの解説は少ないので、とても役立ちます!
  • 懇親会でもPluginに興味を持った人が多かったですね:-D
  • デモとソースを交えた分かりやすい発表でした。
  • $_schema()を書き換える方法は、Model#schema()をオーバーライドしてもok。
  • Controller/Modelを配置するディレクトリを分ける目的でPlugin使うと、Viewディレクトリが分離するのが悩み。。。

LT1. 開発事例と失敗談

  • keisonさん
  • 初のプレゼン!でも落ち着いてましたね:-D
  • かなり多くの案件でCakePHPを実用されていました。
  • 事例はほんと参考になります!
  • 失敗談は皆が通る道ですね><

LT2. CakePHPと私(仮)

  • m-takagiさん
  • CakePHPが一切出てこないネタ:-)
  • 湯布院旅行記(w
  • LL温泉の写真なのに、写っているのは食べ物とカメラばかり:-D
  • 今回も期待を裏切らない楽しいLTでした。さすがです。

懇親会

  • PHP関西勉強会の懇親会と同じ韓国料理屋さん
  • 岐阜から参加された方が!
  • PluginとComponentの話が飛び交ってました
  • スピーカー候補の方多数!(よろしくお願いしまーす)
  • m-takagiさんは次回LTに向けて食べ物の写真を例のカメラで撮影(w
  • あちこち移動して色々な方とお話できました。楽しかったです!

勉強会や懇親会ではネタっぽく話していましたが、是非発表する側へ回って欲しいというのは今回運営を行ったみんなが思っていることです。はじめはLTからでも良いので、是非手を挙げてみて下さい。

次回は春頃には何かやりたいですね。

参加された皆さん、発表・運営を行ったみなさん、お疲れ様でした!

CakePHP関西勉強会を開催します

この記事の所要時間: 126

12/12(金)に大阪でCakePHP関西勉強会を開催します。

■内容
CakePHPに関する発表(Tipsや事例紹介等)と質疑応答を行います。

■概要
日時: 2008年12月12日(金) 19:30~
会場: 扇町インキュベーションプラザ(メビック扇町)
URL: http://www.mebic.com/outline/
MAP: http://www.mebic.com/access/
費用: 200円~500円程度(会場・機材費を参加者で頭割り)

events.php.gr.jp – CakePHP関西勉強会

これまで東京を中心に行われてきたCakePHP勉強会ですが、いよいよ大阪で行います。

以前からCakePHP勉強会を関西でやってみると面白いのでは?という声は聞いていたのですが、なかなか実現することができませんでした。

CakePHPカンファレンス以降さらに熱気が加速したのもあり、いよいよ開催となります。(先日のPHP関西勉強会でもbakerな方が半数以上でした!)

内容としてはセミナー形式でCakeに関する発表(私も発表します-)+質疑応答を行います。その後会場を移動して懇親会(という飲み会)へ、という流れです。

日頃CakePHPを使っているけど、話をしたり聞いたりができない人という方にとっては、そうした話に触れられるまたと無い機会だと思います。是非ご参加ください!

# 関西でのPHPコミュニティを盛り上げようという一環でもあるので、Cake自体をあまり知らない方も是非是非!

参加には事前受付が必要ですので、以下から参加申込みを行って下さい。

参加申込み

PHP関西勉強会で発表してきました&発表資料

この記事の所要時間: 248

大阪で開催されたPHP関西勉強会で発表してきました。

開催決定から開催までわずか4日(募集開始からは3日)というある意味ゲリラ的なイベントだったのですが、なんと定員が埋まるという驚きの結果になりました。

開催までは以下な感じで。

11/4 1:00? IRCでkunitさん、m-takagiさん、shin1x1で開催決定
=> まあ最悪3人でやろうか、くらいのノリ
11/4 blogやらwassrやらtwitterやらで告知
11/5 eventsで募集開始
11/7 勉強会

東京なら勉強会も多いのでこんなのもアリでしょうけど、関西のPHP系勉強会は最近あまり開催されなかったので、そもそも人が来るのかなあと思ってました。

良い方に予想外でした。やはり関西のPHPerはイベントに行きたくてウズウズしてたんですね:-D

今回は発表もあったので簡単にメモを。

PHPUnit + SeleniumRCなお話

  • 開催にご尽力頂いたkunitさん
  • PHPUnit + Testing_Selenium + Selenium RC
  • 資料ナシのプレゼン!(これは真似できません。。。)
  • Selenium IDEで作ったテストケースを、PHPUnitのテストケースに変換するツール
    => を、デモする予定だったけど間に合わず。。。
  • 考えたら今週kunitさんイベント出まくりで、そのどれもで発表してる!
  • 今後公開されるとの事なので期待!
  • Seleniumのテストは個人の環境でちょろっとやっていた程度なので、テストサーバで一元的にやってしまおうという発想は面白かったです。

私とCakePHP

  • shin1x1
  • 必死のぱっちで資料作りました。。。
  • 思いのほかbakerが多くてビックリ!
    => もっと濃いネタ用意しとけば。。。続きはCakePHP関西勉強会で:-D
  • Smartyユーザが結構多いのも意外でした
  • とにかくガーと話し続けた感じでした。でも皆さん真剣に聞いて頂いて、とても話やすかったです:-D。ありがとうございましたー。

PHPScraping2008

  • 東京から急遽参加のさせざきさん
  • プロジェクタに画面が上手く映らないトラブルが
    => 発表前のトラブルは焦りますね><
  • Zend Frameworkをフルに活用したスクレイピング
  • 図があるのは分かりやすくて良いですね。
  • せっかくなんでいろいろデモが見たかったですー

ざざっと片付けて、懇親会へ

懇親会

  • 予想外(!)にキレイな韓国料理屋さんで
  • 正直寝不足で半分くらいボーとしてました。。。
  • Cakeの話とか、Pieceの話とか、勉強会の話とか
  • ITEMANさんとkunitさんの話は聞いてるだけで勉強になる
  • 翌日KOFで発表するはずの2人は4:00頃まで飲んでたらしい

kunitさんの関西愛(wから始まった今回の勉強会ですが、突発的にも関わらず盛り上がりました。

せっかく火を付けていただいたところなので、この火を細々でも絶やさないようにしていきたいですね。(来月あたりにCakePHP関西勉強会を行いますので、是非!)

何から何までお膳立て頂いたkunitさん、m-takagiさんにホント感謝感謝です。

参加された皆さんお疲れ様でした!

CakePHPカンファレンス東京で司会してきました

この記事の所要時間: 527

cake
Photo by Kiryu Tsukimiya

CakePHPカンファレンス東京が無事に終了しました。
参加された皆さん本当にお疲れ様でした。

今回は司会役ということでなかなか貴重な経験ができました。

カンファレンス自体の詳細なレポートは皆さんが書かれていますので、司会者の立場から見た感想を書きます。

まず率直な感想ですが、本当に楽しかったです!

素晴らしい発表を檀上袖から見ることができたのも貴重でしたし、参加された皆さんの反応を見ることができたのも良かったです。

発表の合間の司会でポロっと言ったコメントに反応してもらったり、開発に使うテキストエディタ(環境)アンケートを取ってみたりと「対話」ができたのが楽しかったです。

150名くらいの前で司会をするのはもちろん初めてのことだったのですが、反省点はありつつも、とても楽しめました。また何人かの方に懇親会等々で「楽しかったよ」と言って頂けたのは何よりの収穫でした。

1点やってみて分かった事が、テンションの上げ下げというか気持ちのコントロール(というと大げさですが)が意外と難しいかったです。

人前で話すのは基本緊張するのですが、話が乗ってきたり、場の雰囲気に馴染めてくると、まだ話したい気分になってきます。しかしそこは司会ですので進行する必要があるわけです(当たり前ですが)。

次に発表が始まると聞く立場になって色々と思考を巡らしながら発表を聞きます。で、話すテンションが冷め切ったくらいに発表が終わって、また司会として話すわけです。

この気持ちの持って行きようを上手くやりくりするのが意外と大変なんだな、とやってみて初めて感じました。これまでやってこられた方々には頭が下がる思いです。

あとは反省点を。

ようは事前準備不足ということなのですが、ペラ1 で良いので台本を用意しとけば良かったです。

スタッフ用スケジュール表はすずきさんが用意してくれていたのですが、司会用を自分で用意しておくべきでした。

ゆるい感じで進めていたので、ひどいとちりや間違いは無かったと(自分では)思っているのですが、言い忘れや説明不足が結構ありました。都度気がついたスタッフからサインを送ってもらってフォローして貰いました。(ホント助かりました:-D)

特に質疑応答については開始前に説明しておけば良かったかな、と思います。

日頃からこういった会に参加している人は発表後に質疑応答の時間があるというのは認識しているとは思うのですが、初参加の人にとっては流れが分かりづらいところだったかな、と反省しています。質疑応答がある事が分かっていれば、発表を聞きながら質問を考えることできたかなと思うと、もう少し丁寧にフォローしとくべきでしたね。

あと些細な事ですが自己紹介をしておけば良かったです。おそらく大多数の人は「おまえ誰?」状態だったかと思います。。。

次の機会があるかどうかは分かりませんが、今後に生かしていきたいと思います。

さて今回は司会ということでずっと進行に気がいって、いささか内容に集中できていない箇所もあったのですが、以下、発表についてのメモです。

国内でのCakePHPの利用状況について

  • Garrett氏を日本に招くという大仕事をやってのけた安藤さん
  • CakePHPの特徴と国内のCakePHP史が簡潔にまとまってました
  • 安藤さんのプレゼン資料はそのまま現場でも使えてしまいますね。これはホントに有り難い!:-D

Agileな開発現場での実践例

  • テストと言えばこの方、岸田さん
  • いつもながら自分にとってはど真ん中ストライクなテストの話
  • 現場から出てきたお話なのでかなり参考になります
  • テストにかかる工数は開発コードの約半分
  • でも結合テストや運用・改修を考えると十分にコストは回収できる
  • あとFWのバージョンアップをする時の影響をテストで判断できる
    => これは大事!

Garrett J Woodworth氏 招待講演

  • CakePHPプロジェクトマネージャのGarrett氏と通訳の堂園さん
  • 具体的なTipsというよりCakePHP、コミュニティの考え方を伝える
  • 舞台袖から見て、国内のCakePHPのイベントでGarrettが話していることに密かに感動
  • 1.2はRC4を経てstableリリースへ
  • 1.3はPHP4も対応
  • 2.0はPHP5 Only
  • の予定らしい:-D
  • TODO: ircにjoinする
  • 堂園さんの通訳はさすがでした!

XoopsCubeなのにCakePHPを使う!

  • いつもクールビューティなhaltさん
  • XOOPS CubeのモジュールをCakePHPで作る
  • ベースモジュールが公開されている
  • CakePHPでアドオンが作れるメソッドは他にも広がるかも(海外でも何かあったような。。。)
  • こういうパターンでFWが使われるのはCakePHPならではのような
  • XOOPS Cube自体の実装が(いろんな意味で)気になるけど。。。

ライトニングトーク

  • どのLTもレベルが高くて、とても興味深い!
  • 正直5分じゃなくて、もっと聞きたかった:-D
  • 今後の勉強会で是非発表をお願いします!

神業の会場撤去(皆さんご協力ありがとうございました!)そのまま懇親会へ。

懇親会

  • 会場が広い!その辺の結婚式の2次会よりも確実に広い!
  • いちおう司会役だったのですが、Garrettとすずきさんにおんぶにだっこでした。。
  • サプライズCakeにはアイドルの撮影会並にカメラが集まってきてました:-D
  • 献本頂いたCakePHPガイドブックにGarrettのサインをして貰った人が!(羨ましい)
  • 話の内容は例によって書けない事多数。
  • 名刺交換させて頂いた方々からは「楽しかったよ」と言って頂けて本当に良かったです!

今回は前日の会食を含めて色々な事を経験させて貰いました。Garrettの発表でも触れられていましたが、本当にコミュニティって素晴らしいなと感じました。今後もどんどん参加していきたいと思います。

最後になりますが、本カンファレンスに対して様々なご支援を頂いた企業の皆様、はるばる日本までお越し頂いたGarrett氏、そしてカンファレンスにオンライン・オフライン問わず参加して頂いた皆さん、本当にありがとうございました。

スタッフの皆さん本当にお疲れ様でした!!

CakePHPカンファレンス東京

CakePHP debug=0とdebug=2ではパフォーマンスがかなり違う

この記事の所要時間: 048

CakePHPでは動作レベルをConfigure::write(‘debug’, N)で設定できるのですが、この値によってかなりパフォーマンスが変わります(特にフレームワークの起動)。

パフォーマンスを調べる時は実際に運用する環境に合わせた設定をして計測しましょう、という話です。

計測対象

CakePHP1.2のリポジトリ[rev:7706]で、DB接続無しで単にビューを出力するだけのコントローラで計測しました。

実行時間とステップ数は、xdebug.auto_trace=Onで調べています。

[app/config/core.php]

Configure::write('debug', 0);
or
Configure::write('debug', 2);

[app/controllers/top_controller.php]

<?php
class TopController extends AppController {
  public $uses = array();

  public function index() {
  }
}
&#91;/php&#93;
<p>[app/views/to/index.ctp]</p>

TopController

計測結果

※debug=0はキャッシュを効かせるため、1回目のリクエストは無視

debug 実行時間(s) ステップ数
2 3.0879 25301
0 0.6376 2803

debug=0はdebug=2に比べて圧倒的に早くなっています(5倍!)。また目安ではありますが、ステップ数が1/10になっています。

これはdebug=0では内部的にキャッシュを利用していることが大きく作用しています。

このキャッシュはdebug=2でも動作しているのですが、キャッシュ期間が短い(10s)ので、あまり恩恵を受けることができません。もちろんdebug=2(debug>0)は開発用なので、キャッシュが効かなくなっているのは正しい動作と言えます。

パフォーマンス計測はdebug=0で

通常、運用に入る場合はdebug=0に設定するので、本稼働システムのパフォーマンスを計測したい場合はdebug=0で計測するべきでしょう。

CakePHPカンファレンス東京が開催されます。

この記事の所要時間: 112

10/25(土)に都内でCakePHPカンファレンス東京が開催されます。

■日時
2008年10月25日(土) 10:30 ~ 15:30
※終了後、希望者のみ懇親会(16:00~18:00)を別会場にて実施いたします

■会場
東京都千代田区神田駿河台2-3 DH2001Bldg.(最寄り駅:JR御茶ノ水駅)
デジタルハリウッド 東京本校 1Fセミナールーム

CakePHPカンファレンス東京

これまで開催してきたCakePHP勉強会の拡大版という位置付けなのですが、拡大の仕方が普通じゃないです。

  • 定員が140名!
  • 朝からがっつり5時間!+懇親会を合わせると7時間!
  • 豪華なスピーカー陣!
  • そしてそして、なんとCakePHP開発者であるGarrett J. Woodworth氏の来日講演!!

てな感じで盛りだくさんなわけです。

海外のオープンソース開発者が来日して直接、話が聞けるというのはなかなか無い機会なので、bakerの皆さんは、もちろんのこと、「CakePHPって何?」な人も是非ご参加下さい。

参加費は無料(懇親会除く)ですが事前申込みが必要となります。申込みは誠意準備中なので、しばしお待ちください!

# 個人的には朝開催の夕方終わりなので懇親会参加しても日帰りできそうなのが遠征組として有り難かったりします:-D

第3回CakePHP勉強会も盛り上がりました。

この記事の所要時間: 342

第3回CakePHP勉強会に参加してきました。

回を増すごとに熱気むんむんなのですが、今回はあのトライコーンさん(すずきさんいつもありがとうございます!)の会場がびっしり埋まる勢いでした。

特に今回は関東圏外の方が多いのにも驚きました。北海道の方や福岡の方が来てらしたので、大阪からの自分では遠方者扱いとはなりませんでした;-)。ありがたいことです。

~フェイス女学園~ CakePHP を使った効率的なPC・モバイルサイト構築について

  • スパイスボックスラボラトリ 神部さん
  • 受付でバタバタしていてあまり落ち着いて聞けませんでした><
  • 資料公開に期待!
  • サービスが伝播していく流れがリアル
    => 何だかんだいってTVは強力なのかな

CakePHPでの失敗談

  • ブルーオーシャン 岡田さん
  • 「CakePHPポケットリファレンス」出版おめでとうございます!
  • 次期C++を使って、C++版CakePHP? => CakeC++とか?:-D
  • 実際の失敗談は参考になります
  • アソシエーション周りの話はあるある
  • ビヘイビアのインスタンスは一つのみ
    モデルごとの設定は$this->__setting[%モデル名%]以下に書く
  • コンポーネントのstartup()でインスタンス変数がクリアされる話は、?
    => 手元のRC1では再現できなかった

ホッテントリメーカー@CakePHP

  • phaさん
  • 放浪生活は勝手に親近感が:-D
  • ゆるい感じがイイ!
  • 用語が分かりづらかった話はリアル
    => 確かにフレームワークを少しでも知っていないと難しい
    => 解説記事の用語が専門的過ぎる話は結構大事な指摘かも
  • phaさんもCake教に染まってしまったオチ:-D

CakePHPゆとり開発環境

  • k1LoWさん
  • 遠目に見ると知り合いに檄似で勝手に親近感が:-D
  • いきおいある良いLT!
  • Emacsを使ってCakePHP開発を最適化
  • デモが見たかった!
  • rails.vimをCakePHP用にカスタマイズしようとして放り投げたのを思い出した。。。
  • 会場でのエディッタ使用調査は、vim>eclipse>emacs>秀丸>textmateでした:-D

AuthComponentについて

  • 受付をご一緒した高木さん => 助かりました!
  • OpenIDが手軽に使えるのは嬉しい
  • AuthComponent自体を使ってない。。。事例増えてるみたいだし追っかけてみよう>自分

Cakeにテストがやってきた

  • きしださん
  • 自分にはど真ん中ストライクなCakePHPでのユニットテスト話
  • CakePHPでちゃんとしたユニットテスト事例は初めて聞いた気が。
  • やっぱControllerにロジック書いちゃダメ。
  • 1000あるテストケースの実装が見たかった:-D
  • => ユニットテスト勉強会に行きたいな。
  • チケットには「このテストが失敗する」の英語とそのテストケースがあればok:-D
  • CakePHP1.2本、企画中!

何が違う? CakePHP and symfony

  • 司会しつつ動画配信しつつの安藤さん
  • symfonyとCakePHPの違いを「使って」比べる
  • イメージだけで判断してはダメ!
  • モデルの戻り値は、CakePHPが連想配列、symfonyはオブジェクト
  • ヘルパは、CakePHPがオブジェクト、symfony:が関数
  • => モデルの戻り値はオブジェクトがいいなあ。あちこちで出る話題だからいずれはそうなると思うけど。
  • 1.2はsymfonyよりちょい遅い => PTはこれからかな

懇親会

  • 居酒屋の地下室をほぼ貸し切り状態!
  • あちこちのテーブルが盛り上がっていて楽しかったー!!
  • 勉強会を連日はしごする人が結構いてビックリ。みんなアツいなー。
  • ubuntuをレッツノートに入れたくなった;-D

次回はCakePHP本家の人が?

いやあ今回も盛り上がりました。この盛り上がりを見るとCakePHPのパワーを改めて感じました。

次回はいよいよgwoo氏を呼ぼうという流れになっているのでさらに盛り上がりそうですね。

参加された皆さんありがとうございました&お疲れさまでしたー。鈴木さん、高木さん、そして何から何まで安藤さんお疲れ様です!

CakePHP index.php以外からフレームワークを使う

この記事の所要時間: 121

CakePHPでは[app/webroot/index.php]がFront Controllerになっているのですが、これを他のファイル名に変える方法です。(DocumentRootがapp/webrootになっている場合)

1. index.phpを他のファイル名に変更

ここではgw.phpをFront Controllerにします。

$ mv index.php gw.php

2. .htaccessを変更

あとはapp/webroot/.htaccessのRewriteRuleを変更すればokです。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
#    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    RewriteRule ^(.*)$ gw.php?url=$1 [QSA,L]
</IfModule>

index.phpはフレームワークを避けるとか

これは以前index.phpだけはデザイナーさんが自由に使いたいという要望があったため考えました。(もちろんPagesControllerを使っても良いのですが)

index.phpはサイトのトップページになることが多いので、アクセスによる負荷を考えて、あえてフレームワークを避けるという手にも使えますね。

ホーム > PHP > CakePHP

検索
フィード
メタ情報

Return to page top