CakePHP

CakePHP2.0の導入

更新日:

Cake2の安定版CakePHP2.0.3がリリースされたみたいですので、導入して使い心地を試してみたいと思います。CodeIgniterの勉強をやめてから、いろいろなフレームワークを試していますが、まだどれに落ち着くか決まっていません。いままでは、私一人でプログラムを作成していたので、フレームワークは必要なかったのですが、今後誰かに社内業務を引き継ぐとなると、私が使いやすいものではなく、PHP初心者でも習得がし易いフレームワークがいいのかとも思いますので、CakePHPも候補の1つとして勉強してみたいと思います。

1) 日本語公式サイト(http://cakephp.jp/)へ行き、ダウンロードボタンをクリックします。

2) ダウンロードした圧縮ファイル『cakephp-cakephp-2b55a02』をcakephpに名称変更して、C:¥xampp¥htdocsフォルダにコピーします。

3) cakephpのフォルダ内には、『app』『lib』『plugins』『vendors』フォルダと『.gitignore』『.htaccess』『index.php』『README』ファイルがあります。Cakeの1.3系とは、フォルダ構成が違っているみたいですので、検証してみます。

  • 『app』フォルダ
    ここが実際にWebアプリケーションを組み込んでいく場所です。 このフォルダの中には、『Config』『Cosole』『Controller』』『Lib』『Locale』『Model』『plugin』『Test』『tmp』『Vendor』『View』『webroot』の各フォルダと『.htaccess』『index.php』のファイルがあります。これは1.3系と同じです。
  • 『lib』フォルダ
    1.3系では、『cake』フォルダでしたが、『lib』フォルダの中に、『cake』フォルダが入る構成になっています。この『lib』フォルダがCakePHPのコア部分になると思います。基本的にはこのフォルダ内は一切手を加える必要はないと思います。
  • 『plugins』フォルダ
    プラグインが入るフォルダだと思いますが、とりあえず今は何も入っていません(正確にはemptyファイルが入っています)。
  • 『vendors』フォルダ
    CakePHPに各種ライブラリファイルなどを追加して利用して追加するときに、この『vendors』フォルダに配置します。ここにも今はemptyファイルがあるだけです。

4) ついでに、『app』フォルダの構成も調べてみます。実際に作成したファイルを配置するのがこのフォルダになります。1.3系とフォルダの名称が結構変わっているみたいです。

  • 『Config』フォルダ
    Cake2になって『app』フォルダ内の名称が基本的に先頭大文字のキャメルケースに変更になっています。cake1.3系では、『config』でしたが、先頭文字が大文字になって『Config』となっています。
  • 『Console』フォルダ
    Cake1.3系にはなかったフォルダです。コンソールという名称ですので、入出力関係のファイルが配置されるのだと思いますが、今は使い方がわかりません。 中には、『Command』『Template』フォルダがあり、『Command』フォルダ内には、『Task』フォルダがあります。
  • 『Controller』フォルダ
    Cake1.3系では、『controllers』でした、先頭文字が大文字になって、複数形が単数形になっています。フォルダ内には『Component』フォルダがあります。
  •  『Lib』フォルダ
    1.3系では、『libs』フォルダでした。ライブラリファイルを配置する場所でしょうか。
  • 『Locale』フォルダ
    1.3系では、『locale』フォルダでした。言語ファイルを配置する場所だと思います。
  •  『Model』フォルダ
    1.3系では、『models』でした。MVCの『モデル』のプログラムが配置される場所です。中には、『Behavior』フォルダと、『Datasouce』フォルダがあります。
  • 『Plugin』フォルダ
    1.3系では、『plugins』でした。『プラグイン』と呼ばれるプログラムを配置する場所です。
  • 『Test』フォルダ
    1.3系では、『tests』でした。テストに関する各種の設定ファイルを配置する場所です。
  • 『tmp』フォルダ
    プログラムのtmpファイル(一時保管ファイル)を保存する場所です。これは、フォルダ名が変わっていません。
  • 『Vendor』フォルダ
    1.3系では、『vendors』でした。各種ライブラリを保存する場所です。
  • 『View』フォルダ
    MVCのビューファイルを配置する場所です。1.3系では『views』でした。中には、『 Elements』『Emails』『Errors』『Helper』『Layouts』『Pages』『Scaffolds』フォルダがあります。
  • 『webroot』フォルダ
    実際のWebアプリケーションのルートフォルダです。このフォルダ名は変わっていません。 中には、『css』『files』『img』『js』の各フォルダと、『.htaccess』『favicon.ico』『index.php』『test.php』の各ファイルがあります。

5) フォルダ構成とフォルダ名が結構変更になっていましたので、簡単に説明しましたが、とりあえずほとんどのフォルダ名がキャメルケースに変更になり、複数形が単数形に変わったと覚えておけばいいのかと思います。

6) それでは、CakePHPの導入に戻ります。ブラウザで『http://localhost/cakephp』と入力します。セキュリティ関係の警告が2つ出ています。上の方は、『Security.salt』、下が『Security.cipherSeed』を変更するようにとの警告です。早速指示されたように、変更したいと思います。

7) その前に、DreamweaverでCakePHPのファイルを操作できるように設定をします。Dreamweaverのトップ画面から、『サイト』→『新規サイト』とクリックします。サイト名に『cakephp』(任意)、ローカルサイトフォルダーにcakephpを保存した、『C:¥xampp¥htdocs¥cakephp』と設定します。

8) 左メニューのサーバーをクリックし、『+』ボタンをクリックします。

9) サーバー名を『cakephp』、使用する接続を『ローカル/ネットワーク』、サーバーフォルダーを『C:¥xampp¥htdocs¥cakephp』、Web URLを『http://localhost/cakephp』と入力し保存ボタンをクリックします。

10) 『テスト』にもチェックを入れ保存をクリックします。これで『サイトキャッシュを更新中』のダイアログが表示され、ダイアログが閉じればDreamweaverでCakePHPのファイルを操作できるようになります。

11) それでは、6)の警告に従って、ファイルを更新したいと思います。『cakephp/app/Config/core.php』を開きます。187行目は、英数字、192行目は数字のみで他人にわからないように適当な値に変更します。こうして複雑な文字列をキーにすることで、セッション管理などを安全に行うことが出来るようになります。

12) ファイルを保存して、再びブラウザで『http://localhost/cakephp』にアクセスしてみます。上の2つが緑色に変わればOKです。

13) 続いて4番目の警告を見てみます。これはデータベースの設定ファイルが存在していないとの警告みたいです。指示されたとおり、database.phpファイルを作成したいと思います。作成するといっても、『cakephp/app/Config/databae.php.default』ファイルを同じフォルダ内にコピーして、名前を『database.php』に変更するだけです。

14) それでは、再度ブラウザで確認してみます。4つめの警告は緑になったのですが、下に新たに5つめの警告が発生しました。これはデータベースに接続できませんといっているみたいです。確かにまだデータベースを作成していませんし、データベースファイルの設定もしていませんので、当然といえば当然ですが。

15) phpMyAdminを開き、CakePHP用のデータベースを作成します。新規データベース名をとりあえず『cake_test』と入力して、作成ボタンをクリックします。

16) データベースを作成したら、先程作成した『app/Config/database.php』ファイルを開きます。63行目から69行目まで、自分自身のデータベース設定に合わせて入力します。70行目は先頭のコメント文字『//』を削除して、『'encoding' => 'utf8'』を有効にします。

17) 再度ブラウザで確認してみます。全て緑になりました。これでCakePHPの導入作業は終了です。

18) いつものように『Hello World!!』の表示をしてみたいと思います。ブラウザに『http://localhost/cakephp/hello』と入力します。当たり前のことですが、『コントローラが見つかりません。』と警告が出ますが、Cakeの親切なところは、只単にエラーを表示するだけではなく、コントローラの作成方法が記載されているところです。これならマニュアルがなくてものある程度のことは出来そうです。

19) 早速指示されたとおり、『app/Contoroller』フォルダに『HelloController.php』ファイルを作成し、ブラウザに表示されたコードをコピー&ペーストします。

20) ファイルを保存して、ブラウザを更新してみると、次にコントローラの中に『action index』がありませんと警告を受けますので、これも指示通り、HelloContorollerの中に、『public function index(){}』をコピー&ペーストします。

21) ファイルを保存して、ブラウザを更新すると今度は、ビューファイルがないのでビューファイルを作成して下さいと指示が出ます。指示通り、『app/View』フォルダに『Hello』フォルダを作成し、中に、『index.ctp』ファイルを作成します。

22) 再度ブラウザを更新します。警告が消えサイトらしきものが表示されましたが、中身が真っ白です。ここに『Hell World!!』を表示したいと思います。

23) 先程の『index.ctp』ファイルをダブルクリックすると、『このファイル拡張子に有効なエディターが見つかりません。』と表示されました。

24) どうやらDreamweaverに『.ctp』の拡張子を認識するように設定されていないようなので、拡張子を登録したいと思います。Deamweaverの『編集』→『環境設定』をクリックして、環境設定ダイアログが表示されたら、カテゴリで『ファイルタイプ/エディター』を選択し、コードビューで開くの箇所に『.ctp』を追加します。OKをクリックすれば、Dreamweaverで『.ctp』の拡張子ファイルが扱えるようになるはずです。

25) 再度、『index.ctp』ファイルをダブルクリックで開き、中に『Hello World!!』と入力しして、ファイルを保存後、ブラウザを更新します。

見事『Hello World!!』が表示されたところで本日は以上です。

-CakePHP
-

Copyright© WinRoad徒然草 , 2018 All Rights Reserved Powered by AFFINGER5.