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

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS