トップページPHPCakePHP 初心者メモ > CakePHPをやっと始める気になったので、はまった部分をメモっておく

2008年4月 2日

CakePHPをやっと始める気になったので、はまった部分をメモっておく


 以前から始めたい始めたいと思っていた、PHP開発フレームワーク「CakePHP」。

 いちを、、現在の私のメイン言語はPHPですが、未だにまともにクラスも書けないし、オブジェクト指向の頭にはなっていない、、、というのが現在の状況。
 しかし、これではまるっきり先には進まないし、仕事で開発案件もたまってきているので、思い切ってCakePHPの勉強を始めようと思った。

 いちを参考書はすでに買ってあるのです(^^;)

 ↓こちら

CakePHPガイドブック
CakePHPガイドブック
posted with amazlet at 08.04.02
安藤 祐介 新原 雅司 堂園 俊郎
毎日コミュニケーションズ
売り上げランキング: 3084

 

 が、この参考書を見ても、何からやっていいかわからないので(^^;)、とりあえずチュートリアルでもやってみることにした。

 やったのはこれ↓


 実行環境は、以下のローカルマシン環境で実施した。


 で、上記のチュートリアルには、cake自体をドキュメントルートに、と書いてあるが、すでにローカルのルートディレクトリは使用していたので、Apacheのhttpd.confでエイリアスを使用することにした。
 cakeは「C:\cake」として配置し、「ブログチュートリアル」ということなので、アクセスするURLは「http://localhost/blog/」になるように、httpd.confには以下のように記述した。

Alias /blog "C:/cake"

<Directory "C:/cake">

    Options ALL
    AllowOverride All
    Order allow,deny
    Allow from all

</Directory>



 次に、データベース(MySQL)を設定した。XAMPPに付属しているphpMyAdminにて、「blog」というデータベースを作成し、以下のテーブルを作成した。

CREATE TABLE posts (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(50),
    body TEXT,
    created DATETIME DEFAULT NULL,
    modified DATETIME DEFAULT NULL
);


を作成。ついでに同様にphpMyAdminからレコードを一つ追加した。

 次にCakePHPからMySQLにアクセスできるように、「cake/app/config/database.php」を編集する。

var $default = array('driver' => 'mysql',
                     'connect' => 'mysql_pconnect',
                     'host' => 'localhost',
                     'login' => 'root',
                     'password' => '',
                     'database' => 'blog' );



 MySQLのパスワードを設定しないといけないだろうが、ここはとりあえず置いといて、デフォルトのままで行く。

 それではいざ!と言う感じで、ブラウザから、「http://localhost/blog/」にアクセスしたみたが、あえなく撃沈。。。どうもまだ設定しないといけないようだ。。。

 「.htaccess」の設定が必要だったらしい。

 設定する「.htaccess」は、

  • /blog/.htaccess
  • /blog/app/.htaccess
  • /blog/app/webroot/.htaccess
の3つ。

 それぞれのファイルで太字の部分を追加しなければいけなかった。

  • /blog/.htaccess
<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /blog
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>


  • /blog/app/.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /blog/app
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
 </IfModule>


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



 これで、いざ!、「http://localhost/blog/」へアクセスすると、CakePHPのデフォルト画面が表示され、データベースへも接続されています、という旨も表示されたので成功!!

 あとは、「A.6. Post Model の作成」から順にやっていけば、その通り動いてくれる。
 というか、CakePHPってこんなに高速に開発ができるのか!!と感心させられる。
 なかでもやはりデータベースとのやりとりが、SQL文を意識しなくてもいいと言う部分がとっても良い。素でPHPからデータベースにアクセスするには、一つのテーブルでもいくつもSQL文を書かなければいけませんからね。Pear DBを使ったにせよ、SQL文は必要。これを書かなくて、O/Rマッピングという仕組みで動いているのはすこぶる便利だな~と思う。


 さぁ、こんな感じで、CakePHPを使ってどんどん開発を進めていくことにしよう!!



CakePHPガイドブック
CakePHPガイドブック
posted with amazlet at 08.04.02
安藤 祐介 新原 雅司 堂園 俊郎
毎日コミュニケーションズ
売り上げランキング: 3465
おすすめ度の平均: 4.5
4 わかりやすい!
4 もう一歩!
5 よくまとまっている
5 1.1系がメイン、しかし基本的な学習には充分
4 判りやすく丁寧に書いてあります。


関連エントリー

トラックバックURL

このエントリーのトラックバックURL:

コメントする