RIGHT:&tag(CakeShop); #contentsx * 1-A1 商品の詳細を表示する [#i50fa8d2] 最初のイテレーションなので、いろいろとやることがある。 インストール手順などは、メモで残しつつWiki上に書いていくこと!(忘れないうちに) |~イテレーション番号|1| |~対象ユースケース|A-商品を注文する| |~期間|2007-01-29〜2007-02-04| |~メンバー|opaken| |~目標|調べることいっぱいだが、頑張って環境を一通り整理し、1画面でも見れるようにすること!| ** 基本仕様整理 [#s1e7a0fb] -Wikiに基本仕様となるユースケースや特徴(要望)などをまとめる ** 動作環境構築 [#xd926744] *** 開発ツール [#f7508506] -Eclipse 3.2 + PDT *** データベース [#n398ebb2] -MySQL 4.4(XAMPPに入っている) -phpMyAdminを使ってDB操作をする http://localhost/phpmyadmin/ -データベースは、とりあえずローカルのみ準備 |~ホスト|~DB名|~ユーザー|~パスワード| |localhost|cakeshop|cakeshop|cakeshop| -&color(Red){phpMyAdminの新規データベース作成時に、接続照合順序を「utf8_unicode_ci」にして作成すること!(これを忘れると後で文字化けします)}; *** サーバ [#kb080d97] -Apache 2.2(XAMPPに入っている) -エイリアスは、下記のように設定する |~用途|~エイリアス|~URL| |フロント系|/cakeshop|http://localhost/cakeshop| |管理系|/cakekitchen|http://localhost/cakekitchen| *** ソース管理、バグ管理 [#y6f6717f] -Subversion svn+ssh://cre8system.sakura.ne.jp/home/cre8system/var/svn/repo/trunk/cakeshop -Trac 0.10.3 http://dev.cre8system.jp/trac/ *** ルール [#gee7c4d8] -イテレーション番号 イテレーション番号−ユースケース番号+ユースケース毎の通番とする (例)1-A1 = イテレーション1で「A 商品を注文する」ユースケースの1回目を意味する -コーディングルールはどうする? -Trac(チケット、マイルストーン)の運用はどうする? -バージョンの付け方 cakeshop_0_1_イテレーション番号 とする。 イテレーション完了時にタグを付けて管理する。 -ドキュメント Wiki上に書いていくこと。絵や図などは、手書きで残しておいても良い。(無くさないように) *** アーキテクチャ(フレームワーク) [#qecb8a18] -CakePHP 1.1を基盤として構築する。 --cake_1.1.12.4205.zip -その他、ライブラリは随時、吟味しながら入れていく。 ** テーブル設計 [#ta71fb83] -[[CakeShop/テーブル設計]]を考える。 -とりあえず必要と思われる項目を入れる。 -基本的には商品の情報は1つのテーブルで管理する。 -在庫は、別のテーブルで管理するので、後で考える。 ** テーブルの準備 [#ead4fa5c] -phpMyAdminでテーブルを作る。 -とりあえず手入力・・・ --最終的にWikiの表組みからDDLに変換するツールを作りたいな・・・ ** プロジェクトの準備 [#s2566e61] -CakePHPの1.1系の最新をダウンロードする。 -Eclipseのworkspace/cakeshopに解凍したものを置く。 -もともとのappをコピーして、shopフォルダはフロント系、kitchenフォルダは管理系として用意する。 -.htaccessの修正が必要 --shop/.htaccessに下記を追加 RewriteBase /cakeshop --shop/webroot/.htaccessに下記を追加 RewriteBase /cakeshop/webroot --kitchen/.htaccessに下記を追加 RewriteBase /cakekitchen --kitchen/webroot/.htaccessに下記を追加 RewriteBase /cakekitchen/webroot -httpd.confに下記を追加 Alias /cakeshop "C:/eclipse_pdt/workspace/cakeshop/shop/" <Directory "C:/eclipse_pdt/workspace/cakeshop/shop/"> Options FollowSymLinks Indexes MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> Alias /cakekitchen "C:/eclipse_pdt/workspace/cakeshop/kitchen/" <Directory "C:/eclipse_pdt/workspace/cakeshop/kitchen/"> Options FollowSymLinks Indexes MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> -database.phpの修正 --shop/config/database.php.defaultの名前をdatabase.phpに変更して下記のように修正 var $default = array('driver' => 'mysql', 'connect' => 'mysql_connect', 'host' => 'localhost', 'login' => 'cakeshop', 'password' => 'cakeshop', 'database' => 'cakeshop', 'encoding' => 'utf8', 'prefix' => ''); ※encodingをutf8にできるように後でMySQLのコネクト部分のソースを修正する。 --kitchen/config/database.php.defaultの名前をdatabase.phpに変更して先程と同様に修正 ** MySQL文字化け対応 [#h50403f4] -CakePHPのMySQL用DBOを修正する。 --cake/libs/model/dbo/dbo_mysql.php connect関数の所を下記のように修正 if (mysql_select_db($config['database'], $this->connection)) { $this->connected = true; // encoding add start if(!empty($config['encoding'])){ $this->query("SET NAMES '".$config['encoding']."'"); } // encoding add end } ** 画面のテンプレートレイアウト [#m0ffedf0] -よさげのレイアウトをいれておく。 -shopとkitchenで違うものにしておく。(見分けつけるように) ** CRUDページ [#kba93067] -decorateを使ってkitchenフォルダにGoodsテーブルのCRUDを作る。 -テストデータをCRUDで完成したページから入力して作る。 ** 商品表示ページの実装 [#l0796e82] -CRUDで作ったviewの部分を参考に、ControllerとModel、Viewを作る。 -Modelは、kitchen側のものを利用するように、shopフォルダのconfig設定でPATHを修正する。 ** デモページの用意 [#y943ebf5] -さくらのサーバーにアップしてデモ見れるようにしたいな。 -サブドメインの設定をする |~用途|~フォルダ|~URL| |フロント系|$HOME/www/cakeshop|http://cakeshop.cre8system.jp/| |管理系|$HOME/www/cakekitchen|http://cakekitchen.cre8system.jp/| * ふりかえり [#c7784b4f] イテレーション終わったら、ふりかえりをしましょう! ** Keep(よかったこと) [#a76b12e6] ** Problem(わるかったこと) [#k2016113] ** Try(次回挑戦) [#j7cdd8ee] ** 関連ページ [#b3a3b0e2] #lsx #newpage_subdir() ** コメント [#e2ce95fc] #comment |