cakephp利用時のメモ。メモですので、まとめてません。自分の検索用です。
2011年6月12日現在で、ver2.0も開発版でリリースされている。ver.2.0でPHP4は切り捨てられPHP5のみサポート。サポートされているのはver.1.2とver.1.3。以下はver.1.3.について(一部1.2の情報が入るかも)
MVCサポート、O/Rマッパーサポート、インストールが簡単。ドキュメントルート以下に展開し、アクセスして、表示されるエラーメッセージを解消していけば、最低の設定は終了。cakeのコア、アプリのコード、Webルートはセキュリティを高めるために、移動できる。マニュアルページのインストールに詳しく記述されている。
cakePHPでは、変数の中身を表示するのにprint_r()より、pr()のほうが、整形されて表示される分、わかりやすい。
Blogチュートリアルをそのまま行うと、日本語が文字化けする。サーバーとクライアントの文字エンコードの設定の違いによるということ。しかしmy.iniでmySQLのサーバーとクライアントの文字コードをutf8に設定しても直らず。show variables like '%char%';で見ても同じだが、実際はPHPがビルド時に指定されたクライアントのコードとして送信してしまうため。my.iniのとmysqliセクションにskip-character-set-client-handshakeを記述することで正しく直る。クライアントとサーバーの文字コード設定が違うとき、自動的に変換するのを防ぐ。クライアントのリクエストをサーバーの文字コードと同じ物を指定されたものとし、自動変換をさせなくする。ただし、SQLインジェクションの可能性が起きるので、使わない方がいいらしい。(つまり、PHPをビルドし直すのか?)
まっさらの状態から作成するなら、展開した中にあるcake→consoleに移動し、cake bakeで起動。アプリケーションの場所は..\..\meloncake(2つ下のインストールディレクトリ下の場合、お好きな名前で)がわかりやすいかも。もしくは起動時に..\..\meloncakeで起動する。ファイルのコピーに続いて、DBの設定に入る。そこで一度終了。もし、できるなら、このsonsoleディレクトリにパスを通しておくと、やりやすい。
再度同様に起動。パスを通した場合は、作成したアプリケーションディレクトリ(上記の場合ならmeloncake)に移動しておくと、パスを指定しなくとも、bake cakeのみで良い。作成する順番はM,C,Vの順番。scaffoldsはどだいという意味で、簡易なCRUDアプリとして動作させる機能。モデルとコントローラーに$scaffolds変数を設定するだで良い。ただし、似たような動作をするコードがbakeで作成されるため、初めからbakeを使って、コードをいじる方が良い。
直接SQLを叩くよりは、O/Rマッパーを利用。アソシエーションが強力。
開発環境にNetbeansを利用する場合、bake でプロジェクトを焼いておく。デフォルトのファイル構成でcakephpインストールディレクトリ丸ごと指定する場合はコアも全部含まれるため、コード補完目的で特別する必要はない。Netbeansがやってくれる。アプリケーションとコアを分ける場合などは、プロジェクトのプロパティからincludeディレクトリーにcakeを初め必要なディレクトリーを指定しておく。bakeを行ったディレクトリーにより、3つのindex.phpと.htaccessに多少の違いが出るようであるので、必要ならば開発前の環境作りの段階で確認しておく。
現状はphpのデバッグはxdebugで。設定方法は、web上にあふれている。
cakephpをドキュメントルート下のサブディレクトリとして開発するならば、デバッガーを正しく動作させるために、プロジェクトのプロパティで、実行構成のプロジェクトURL(インストールディレクトリに当たる部分)と開始ファイル(アプリケーションディレクトリのwebroot/index.php)を指定する。でないと、ブレイクポイントが効かなくなる。尚、ファイル構成をいじらないデフォルトの.htaccessであれ、bakeした結果作成される.htaccessであれ、これで動作する。ブレークポイントには効く場所と聞かない場所があるので、怪しいときは周辺数行をまとめて指定し、どこで効いてどこで無視されるか時々確認しておいた方が良い。
Netbeansのデフォルトでは当然viewの定義ファイルの拡張子は認識されないので、オプションのその他、ファイルタブで、ctp拡張子を追加しphpに結びつけておく。viewファイル内でもブレークポイントが効く。
| Codeigniter+Netbeans7でコード補完< 前 | 次 >php dbメモ |
|---|
| < 前 | 次 > |
|---|