兼業主夫 ときどき 指揮者 のち ギーク?

2009-01-10

今日はケーキを焼いてみようと思う 〜4. 新規プロジェクトを作る その6〜

 chorフォルダを覗いてみたところ、無事にいろいろなファイルが保存されていた。

f:id:hiko_s:20090110170815j:image

(「test」フォルダはCakePHPが作ったのものではないのであしからず)

今日はケーキを焼いてみようと思う 〜4. 新規プロジェクトを作る その5〜

 「これでいい?」と聞かれたのに「n」と答えたら、データベース設定の最初からやり直す事になった。

f:id:hiko_s:20090110164427j:image

 「Name」は「default」で、後は先ほどと同じように入力していく。

f:id:hiko_s:20090110165602j:image

 入力し直したのでこれで「y」

f:id:hiko_s:20090110165603j:image

 「別のデータベースについても設定する?」と聞かれているのが、今回は特に必要ないのでここでは「n」

 

f:id:hiko_s:20090110165604j:image

 データベースの設定ファイル(database.php)を作成した後、なんかまた聞かれた。

 しかも今度は「Name」のところが「default」ではなくて「chor」になってる。もしかして最初からそれで良かったという事?

 とりあえず問題ないと思うので「y」と答えてみる。

f:id:hiko_s:20090110165605j:image

 あれ、また聞かれた。「n」っと。

f:id:hiko_s:20090110165606j:image

 「上書きするか?」って? さっきファイルを作ったからだな。問題ないとは思うので「y」しておく。

f:id:hiko_s:20090110165607j:image

 無事終了。さっきやり直したのが変に作用したのか?


 気づいたらもう17時。

 本当はここからいよいよMVCの作成に入るのだが、時間切れなので今日はここまで。

 Blog書きながら、しかもスクリーンショットを撮りながらやるとさすがに時間がかかる。

今日はケーキを焼いてみようと思う 〜4. 新規プロジェクトを作る その4〜

f:id:hiko_s:20090110163348j:image

 先ほどのデータベース指定は「default」で良かったらしい事に今更気づく。(ちゃんと本に書いてあったのに)

 仕方ないのでそのまま続行。

 使うデータベース名は「chor」なのでその通り入力。

f:id:hiko_s:20090110163647j:image

 テーブルにプレフィックスを使うかどうか聞かれている。

 要するにテーブル名に特定の名称を付与するかどうか(「chor-tracks」のように)を聞かれている。ここで指定しておくと「chor_tracks_controller.php」ではなくて「tracks_controller.php」という形で使用出来るらしいのだが、今回は特に必要ないと思うので「n」で。

f:id:hiko_s:20090110164821j:image

 テーブルのエンコードを聞かれた。「utf8」や「euc-jp」「shift-jis」のように指定するらしい。ここではUTF-8なので「utf8」と指定。

f:id:hiko_s:20090110164905j:image

 『CakePHP徹底入門 (翔泳社)』ではこの後「スキーマ」について聞かれる(Table schema?)と書いてあったのだが聞かれなかった。

 で、前述の通り間違いに気づいたのでここで「n」を押してやり直そうと思う。

今日はケーキを焼いてみようと思う 〜4. 新規プロジェクトを作る その3〜

 データベースの設定に入る。

 名前を聞かれているので、「chor」と入力。

f:id:hiko_s:20090110160936j:image

 Driverと聞かれているが、要するにデータベースの種類を選べって事だ。

 「mysql」と入力。

 

f:id:hiko_s:20090110162119j:image

 「Persistent Connection?」とか聞かれた。

 エキサイト翻訳だと「パーシステントコネクション?」と出て意味不明。

 『CakePHP徹底入門 (翔泳社)』によれば

これはデータベースとの持続的な接続を可能にするかどうかの選択です。テスト的にサイトを作る場合は特に高負荷にはならないと考えられるので「Enter」を押します(nを選択)。持続的データベース接続についてはPHPマニュアル第41章を参照して下さい。

とのこと。

 いまいち理解出来ていないが、とりあえず「n」で良いらしいので従っておく。

f:id:hiko_s:20090110162603j:image

 データベースのホスト先を聞かれているが、ここでは「localhost」のまま使用するので「Enter」でOK。

f:id:hiko_s:20090110162728j:image

 ポートを聞かれているが、自PC内のローカルサーバなので初期値でそのまま行く事にして「Enter」。

f:id:hiko_s:20090110162846j:image

 データベースのユーザを聞かれているので、入力。

 ちなみにローカルサーバなのでrootユーザで入ってしまう。

f:id:hiko_s:20090110163119j:image

 パスワードも入力。

今日はケーキを焼いてみようと思う 〜4. 新規プロジェクトを作る その2〜

 「cake bake」したら下記画面が表示された。

 

f:id:hiko_s:20090110160932j:image

 インストール先のフルパスを入れてね、って出た。

 初期値([ ]で囲まれた部分)には\myappとか付いてるので、その前までを再度入力。

f:id:hiko_s:20090110160933j:image

 「見てOK?」って聞かれているので「y」を入力。(初期値が[y]だから、Enterだけで行けるとは思うけど)

f:id:hiko_s:20090110160934j:image

 「Do you want verbose output? (あなたは冗長な出力が欲しいですか? by エキサイト翻訳)」と聞かれたので、初めてだから[y]としておく。

f:id:hiko_s:20090110160935j:image

 なんかいっぱい出た!

 で、引き続きデータベースの設定に入るらしい。

今日はケーキを焼いてみようと思う 〜4. 新規プロジェクトを作る その1〜

 では早速Bakeを使って新規のプロジェクトを作ってみようと思う。

 『CakePHP徹底入門 (翔泳社)』によれば、

php cake.php bake -app ドキュメントルートのフルパス/プロジェクトのフォルダ名(任意)

とやればいいらしい。

 だがしかしちょっと待って欲しい。

 ドキュメントルートをフルパスで指定するのは面倒くさくないか?

 プロジェクトのフォルダ内でBakeする場合はフルパスで指定する必要はないようなので、手動でフォルダを作成してそこでBakeする事にする。

 さらに言えば、「php cake.php」はパスが通っていれば「cake」でもいいようなので、入力するコマンドは

cake bake

と簡潔になった。

 では早速「chor」をフォルダを作ってやってみよう。

今日はケーキを焼いてみようと思う 〜3.5. うっかりミスを訂正する〜

 CakePHPのデータベース名は"複数形"で作るという命名規則がある事をすっかり失念していた。

 id:kidd-number5に指摘されたので、そそくさと直しておく。(最近CakePHPを触っていない事がありありと分かってしまった)

 DBの名前変更はphpMyAdminのメニュー項目にはないので、下記SQL文を実行する必要がある。

 

 ALTER TABLE 変更前テーブル名 RENAME TO 変更後テーブル名;

ALTER TABLE `track` RENAME TO `tracks`;

ALTER TABLE `suite` RENAME TO `suites`;

 ふぅ、何とか軌道修正完了。

今日はケーキを焼いてみようと思う 〜3. Bakeの下準備として〜

 Bakeするためには、Windowsの場合「C:\xampp\php」や「C:\xampp\cake\console」のような場所(CakePHPをインストールし場所によって場所は異なる)にパスを通す(登録する)必要があるらしい。

 これはつまり、どのような場所(フォルダ)からもPHPやBakeを起動出来るようにする必要がある、という事だ。

 がつがつCakePHPでBakeする人ならパスを通しておくのも良いだろうが、あまりBakeしない人に中には「少しのために余計なパスを追加したくない」と思う人もいるだろう。

 そこで CakePHP のおいしい食べ方: [1.2]Easy Bake on Windows を参考にして、一時的にパスを通す事にした。

(1) consoleフォルダをコマンドプロンプトで開く

  (開き方は自分で調べましょう。)

(2) SET PATH=%PATH%;%CD%

  と打ち込む。すると、そのコマンドプロンプトのウィンドウ上だけ、consoleフォルダのパスが追加されます。(%CD%は、カレントディレクトリ、という意味です。)

http://cakephp.seesaa.net/article/78855802.html

 ということで、その通りやってみる。

 

今日はケーキを焼いてみようと思う 〜2. データベースの作成〜

 Bakeはデータベースまでは作ってくれないようなので、そこはphpMyAdminでちゃちゃっと作る事にする。

 CakePHPで合唱DBを作ると決めた訳ではないし多分作らないのだが、例がないと作りようがないのでとりあえず合唱DBっぽいものを作る事に。

 「chor」というDBを作って、track(曲)とsuite(組曲)というテーブルを用意した。

○ 曲テーブル

CREATE TABLE `chor`.`suite` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 255 ) NOT NULL ,
`created` DATETIME NOT NULL ,
`modified` DATETIME NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM COMMENT = '組曲情報' 

○ 組曲テーブル

CREATE TABLE `chor`.`track` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 255 ) NOT NULL ,
`composer` VARCHAR( 255 ) NULL ,
`lyricwriter` VARCHAR( 255 ) NULL ,
`translater` VARCHAR( 255 ) NULL ,
`arranger` VARCHAR( 255 ) NULL ,
`suite_id` INT NULL ,
`suite_order` INT NULL ,
`created` DATETIME NOT NULL ,
`modified` DATETIME NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM COMMENT = '曲情報' 

 これで用意が出来たので、ようやくBakeに入る事ができる訳だ。(ここまで1時間強)

今日はケーキを焼いてみようと思う 〜1. 現状確認〜

 まず環境はXAMPPをインストールして構築したもの。簡単に言えばWindows + Apache + MySQL + PHPということである。

 もっと詳しく言うと、下記のような感じ。

  • Windows Vista SP1
  • XAMPP Windows版 Version 1.6.6a
  • MySQL 5.0.51a
  • PHP 5.2.5
  • phpMyAdmin 2.11.4

 ここにCakePHP 1.2.0.7296 RC2 が入っている。

 プロジェクトは既存のものがない訳ではないのだが、せっかくなのでCakePHPプロジェクトもDBも新規に作る事にしよう。

 そういえばCakePHPの1.2が正式リリースされたのでそいつを入れるところから始めた方が良いような気もするが、そうするときっと今日の勉強会の時間が終わってしまうので(私は結構トロいのだ)また後日、ということにする。

今日はケーキを焼いてみようと思う 〜はじめに〜

 月に2回の勉強会。

 昨年末からBlogを書くのがおっくうで、あれやこれやとありながらつい書き逃していたのだが、ちゃんと月に2回開催されているのである。たとえ仕事に追われて勉強会で自分の仕事をしたりしていても。

 ようやく勉強会で仕事以外の事が出来る余裕が出来たので、前々から気になっていたCakePHPでのMVC構造に合わせたソースコードの自動生成機能である「Bake」を試してみようと思う。

 参考にするのは様々なWebサイトと『CakePHP徹底入門 (翔泳社)』である。

 何故この本を選んだかというと、端的に言えば「私の行った本屋で売っていた中で、Bakeを扱っていたのがこの本だけだったから」という理由だったりする。

 ちなみにWeb情報だけでいいんじゃね? という意見もあるとは思うが、新しい事を始める場合には何となく本から入りたいという性分なので本を買ってみた。Bake以外のところは読む気ゼロだけど、勉強のための本にかけるお金は基本的にけちらないと決めているので気にしない事にする。