Category: CakePHP

9月 27 2011

CakePHP初期設定

まずCakePHP: 高速開発 php フレームワークここからダウンロード。
今回は1.3.12 安定版をダウンロードしました。そして解凍。

次に開発したい場所へ中身をコピー。今回はlocalhosot/testでの場合で設定
testに
「app」 「cake」 「vendor」 「plugins」.htaccess index.phpが出来る。「」はフォルダー

ヴァーチャル風にhttp://test.localhost/でアクセスしたい場合はApacheのhttpd.confを編集。
C直下にlocalhostがある場合のパス


	DocumentRoot C:/localhost/test/
	ServerName test.localhost

windowsで開発していると.htaccessが使えないのでwindowsで .htaccess を使うを参考にする

とりあえずApacheを再起動してhttp://test.localhost/へアクセスしてみる。赤いエラーが出てなければ良いとのこと。黄色いエラーは今後直していくので、赤いエラーが出た場合はここまでの設定を見直す。

続いて黄色いエラーをなくす作業


Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE\cake\libs\debugger.php, line 694]

Notice (1024): Please change the value of 'Security.cipherSeed' in app/config/core.php to a numeric (digits only) seed value specific to your application [CORE\cake\libs\debugger.php, line 698]

この2つは暗号化するハッシュ文字の設定。初期値だとセキュリティ的に問題があるので変更したほうがいいですよってことのようだ。

それぞれapp/config/core.phpの204行目、209行目を適当な英数字に変更するとエラーがなくなる。

つづいて


Cake is NOT able to connect to the database.

これは接続できるデーターベースがありませんよ~~~ってことですね。
データーベースを使わなければこのままで問題ない。使う場合は「app/config/database.php.default」を「app/config/database.php」にリネームして76行目あたりを環境に合わせて編集するようですが、とりあえず詳しくは後で設定します。

まずはページを表示したい。

http://test.localhost/test/に「ようこそ!CakePHP」と表示させてみよう!!!

まずhttp://test.localhost/のtestへアクセスすると/app/controllers/にあるコントローラーのtest_controller.phpが呼び出される。コントローラーは「_controller.php」と名づけるのがルール。
その/app/controllers/test_controller.phpにクラスを作るクラス名にもルールがある。
クラス名はファイル名のtest_controllerを「TestController」とし「AppController」を継承する。

class TestController extends AppController {
    public $name = "Test";
    public $uses = null;
    public $autoRender = true;
    function index(){
    	 $this->set("content", "ようこそ!CakePHP");
    }

    function hello(){
        $this->set("content", "Hello World!");
    }
}

public $nameにはコントローラ名。public $usesはモデルを指定もモデルはDBなどの操作に使用するので今回はnull。public $autoRenderはビュワーを指定します。

この状態でhttp://test.localhost/test/へアクセスしてみると

Missing View

Error: The view for TestController::index() was not found.

Error: Confirm you have created the file: D:\localhost\dewks\app\views\test\index.ctp

Notice: If you want to customize this error message, create app\views\errors\missing_view.ctp

と表示される。http://test.localhost/test/へアクセスするとTestControllerクラスのfunction indexが呼び出される。/test/index.htmlや/test/index.phpってイメージですね。
それでindex用のビュワーが無いですよ!!!って怒られました。。。

そこで/app/views/以下に「test」フォルダーを作りそのtestの下にindex.ctpを作ります。拡張子は.ctp。
/app/views/test/index.ctpを以下のように作成します。


すると「ようこそ!CakePHP」と表示されます。ヘッダーやフッターはデフォルトで成型されてます。

ちなみにhttp://test.localhost/test/hello/へアクセスすると「 function hello」が呼び出されます。/app/views/test/index.ctpと同じように/app/views/test/hello.ctpを作ってあげれば「Hello World!」と表示されます。

じゃトップページhttp://test.localhost/はどうするの?どうもトップページだけ勝手が違うみたいです。
トップページでは/app/controllers/pages_controller.phpがコントローラーのようです。index_controller.phpでは無いので注意。さらにPagesControllerのfunction displayが呼び出される設定。それらは「/app/config/routes.php」で行われているようですので気になるときは見てみましょう。
そこで/app/controllers/pages_controller.phpを作ってみます。

class PagesController extends AppController {
    public $name = "Pages";
    public $uses = null;
    public $autoRender = true;

    function display(){
        $this->set("content", "Top page");
    }
}

このままでは当然ビュワーが無いと怒られます。いままでの流れで行くと/app/views/pages/display.ctpを作ってあげれば良いのだろう。/app/views/pages/はすでに存在するのでdisplay.ctpを作ってみる。中身は/app/views/test/index.ctpと同じ。
するとちゃんと「Top page」と表示されました!!!

初期設定としては、まずここまで!

≪参考サイト≫
PHPフレームワーク「CakePHP」入門
CakePHPを使えるようにしよう