2012年07月20日
講義103日目
------------------------------1H------------------------------
★ショッピングカート
●仕様
・カートの情報は全て$SESSION["cart"]内で管理
・$SESSION["cart"]内に商品情報を要素として持つ配列を生成する
・$SESSION["cart"][]内の商品情報に与える要素(テーブル構成により変動)
商品ID
商品名
価格
注文数
画像ファイル名
・カートの中身一覧ページ、他のページから参照できる簡易表示部品の二点を作成する
・中身一覧ページにアクセスする際にカート内に情報を追加する
・中身一覧ページでは、テーブル内のプライマリーなキーとして「ID」を
注文数として「quantity」を添え字としたデータをgetで渡すものとする
いずれかが存在しない場合はカート内に情報を追加しない
・中身一覧ページで在庫数を変えられるようにするカート外で行うべき処理
・既にカート内に存在する商品の場合追加しない
・カート外で行うべき処理
ユーザが「カートに入れる」行動を取る際、在庫を上回る数を選択しないように導くこと
注文を確定させた段階で在庫量カラムの数を減らすこと
在庫を上回る注文であった場合にエラーとなること(※)
テーブルに存在しないIDであった場合にエラーとなること(※)
※他のページでも行う可能性のあるエラーチェックのため関数化しておく
------------------------------2H------------------------------
★ショッピングカート
●cartの作成
①カートが存在しなければ初期化する
②まずはフォームから送られてきた「ID」「stock」を受け取れる
③エラーチェックを行う
IDとストックいずれかがないなら追加しない
既にカート内に存在する商品の場合追加しない
存在しないIDなら追加しない
在庫を上回るstockなら追加しない
④問題なければDBからデータを取得
⑤カートに入れる
⑥最後にカートの中身を表示
・テンプレートに書いていく
------------------------------3H------------------------------
★ショッピングカート
●cart
・削除変更
セッションを書き換える
再びcartページに戻ってくる
------------------------------4H------------------------------
★環境のバックアップ
●VMware上のファイルを退避する
・FFFTPで接続し、一旦ローカルPCに落としてくる
(Cドライブ直下などに、退避用のフォルダを作成しておく)
・データベースのデータは、phpmyadminを使うか、mysqldumpコマンドを使ってエクスポートする
・rootユーザで作ったファイルは、FFFTPでは触れないで、一旦puttyでログインし、
/home/userの下に移動してからFFFTPで取得する
・カレントディレクトリ下にフォルダやファイルが大量にあるなら、
zipコマンドやtarコマンドで圧縮してから移動すると良い
rootユーザのカレントディレクトリごと圧縮するにはrootになる
zipコマンドでの圧縮例
su
zip -r /home/bk_from_vmware.zip /home/user
mv /home/bk_from_vmware.zip /home/user
・.htaccess や .bash_profileなどのファイル名の頭に
ピリオドの付くファイルは隠しファイルなので気をつける
●ローカルPCのファイルを退避する
授業で使用したPC内の退避ファイル例
・VMwareから退避したファイルたち
・インストールしたツールたち
・C\pleiades 下のプロジェクトや設定ファイル
・IDmanagerの保存ファイルや、パスワードはサービスごとに多岐にわたるので
情報を紛失するとログインができなくなるため注意
------------------------------5H------------------------------
★RSS
●XMLの生成
生成ツールを使う
crontab で自動化
------------------------------6H------------------------------
★修了式
●コマンドプロンプト
・ftpコマンド
ftp接続ができる
ftp open IPアドレス
対象のIPアドレスに対して接続することができる
put getで送受信が可能
ファイル単位でしか送受信できないので圧縮するなどしたファイルを送受信する
・sshコマンド
とかもある
●PHPの資格取得などで体系的に学ぶことも可能になるので受けてみるのもいいかもしれない
-----------------------------memo------------------------------
2012年7月20日金曜日
2012年6月25日月曜日
2012年06月21日 講義085日目
2012年06月21日
講義085日目
------------------------------1H------------------------------
★最終課題
●昨日進めたこと
・jqueryの読み込みの順番の見直し、ライブラリ別に整理するなどの改善
・ログイン画面にhero-unitの導入
・問題点→レシートモジュールのメニューのjavascriptが効かなくなった
<!-- bootstrap-image-gallery -->を読み込んでる部分で再度古いbootstrapを読み込んでいた
●actionからtemplateへassign
action側 $this->でsymfonyのクラスを使ってオブジェクトをassign
例)$this->comments = 何かの値
template側
例)<?php foreach($comments as $comment):?>
$comment->getCategoryId()や$comment->getUrl()のようにオブジェクトから値を引っ張る
------------------------------2H------------------------------
------------------------------3H------------------------------
●レシートモジュール
・Feed内の値の取得方法で完全に迷宮に突入
・一つのFeedからテンプレート側で色々取得できる感じだったのに、ほしいurlまでたどり着けなかった
関数が用意されてない
・foreachの中で別の配列をインクリメントさせてまわすとかで解決した
------------------------------4H------------------------------
------------------------------5H------------------------------
------------------------------6H------------------------------
●色々と行き詰るなど
-----------------------------memo------------------------------
講義085日目
------------------------------1H------------------------------
★最終課題
●昨日進めたこと
・jqueryの読み込みの順番の見直し、ライブラリ別に整理するなどの改善
・ログイン画面にhero-unitの導入
・問題点→レシートモジュールのメニューのjavascriptが効かなくなった
<!-- bootstrap-image-gallery -->を読み込んでる部分で再度古いbootstrapを読み込んでいた
●actionからtemplateへassign
action側 $this->でsymfonyのクラスを使ってオブジェクトをassign
例)$this->comments = 何かの値
template側
例)<?php foreach($comments as $comment):?>
$comment->getCategoryId()や$comment->getUrl()のようにオブジェクトから値を引っ張る
------------------------------2H------------------------------
------------------------------3H------------------------------
●レシートモジュール
・Feed内の値の取得方法で完全に迷宮に突入
・一つのFeedからテンプレート側で色々取得できる感じだったのに、ほしいurlまでたどり着けなかった
関数が用意されてない
・foreachの中で別の配列をインクリメントさせてまわすとかで解決した
------------------------------4H------------------------------
------------------------------5H------------------------------
------------------------------6H------------------------------
●色々と行き詰るなど
-----------------------------memo------------------------------
2012年6月18日月曜日
2012年06月18日 講義083日目
2012年06月18日
講義083日目
------------------------------1H------------------------------
★最終課題
●zend AuthSubの実装
------------------------------2H------------------------------
●zend AuthSubの実装
・find ./ -name "*.php" | xargs grep ""
でそのディレクトリにある.php内のキーワードを絞り込んで探せる
Zendまで行って関数を見に行くとかする
------------------------------3H------------------------------
●zend AuthSubの実装
・結局、マニュアルのAuthSubの説明のソースを使ったらうまくできた
・セッションに作成したトークンがモジュール間で重複していたのが原因の一つとしてありそうだったので、
そのあたりを解消できたっぽいので解決したという予想(結局原因は不明)
・echoされてる部分をheader()でリダイレクトに変更
------------------------------4H------------------------------
●zend AuthSubの実装
・ログアウトするとAuthSubで使ったセッションを消去したりするロジックを追加
$_SESSION = array();
セッションを空にするとか
マニュアルではなんか色々と複雑なことをやってるっぽい感じだったけど
------------------------------5H------------------------------
●ドキュメント
FeedからspreadsheetKeyを取得するために試行錯誤してみるとか
------------------------------6H------------------------------
●ドキュメント
・spreadsheetKeyの取得
strlen()で文字列の長さを取得
str()でその文字列の長さ分削る
・メニューをスプレッドシート一覧にしてドキュメントの数だけループさせメニュー作成
問題点→表示の上限をどうやって設定するか→登録したシートのみ表示させるとか
ドキュメントは表示させるだけにしようか
・検索フォームも使いたい
-----------------------------memo------------------------------
講義083日目
------------------------------1H------------------------------
★最終課題
●zend AuthSubの実装
------------------------------2H------------------------------
●zend AuthSubの実装
・find ./ -name "*.php" | xargs grep ""
でそのディレクトリにある.php内のキーワードを絞り込んで探せる
Zendまで行って関数を見に行くとかする
------------------------------3H------------------------------
●zend AuthSubの実装
・結局、マニュアルのAuthSubの説明のソースを使ったらうまくできた
・セッションに作成したトークンがモジュール間で重複していたのが原因の一つとしてありそうだったので、
そのあたりを解消できたっぽいので解決したという予想(結局原因は不明)
・echoされてる部分をheader()でリダイレクトに変更
------------------------------4H------------------------------
●zend AuthSubの実装
・ログアウトするとAuthSubで使ったセッションを消去したりするロジックを追加
$_SESSION = array();
セッションを空にするとか
マニュアルではなんか色々と複雑なことをやってるっぽい感じだったけど
------------------------------5H------------------------------
●ドキュメント
FeedからspreadsheetKeyを取得するために試行錯誤してみるとか
------------------------------6H------------------------------
●ドキュメント
・spreadsheetKeyの取得
strlen()で文字列の長さを取得
str()でその文字列の長さ分削る
・メニューをスプレッドシート一覧にしてドキュメントの数だけループさせメニュー作成
問題点→表示の上限をどうやって設定するか→登録したシートのみ表示させるとか
ドキュメントは表示させるだけにしようか
・検索フォームも使いたい
-----------------------------memo------------------------------
2012年6月13日水曜日
2012年06月12日 講義080日目
2012年06月12日
講義080日目
------------------------------1H------------------------------
★最終課題
●backendのurl直打ち対策など
・default:
is_secure: on
credentials: [member, admin]
に設定、is_secure: をonにし忘れて/backendに進入できるというミスをするなど
とりあえず権限を持ってないとbackendには入れない状態
------------------------------2H------------------------------
●バックエンドのページ遷移を整えるなど
・404エラーページの表示
・defaultに申し訳程度にリンクを作る
・memberのcrudは基本的なバリデーションとかかける程度で放置の予定
・seculityは多分大丈夫な気がする
------------------------------3H------------------------------
------------------------------4H------------------------------
★バージョン管理ソフトの導入
●リポジトリの保存に際してキャッシュを対象外にする
・svnで使うエディターを設定する
[ユーザ名@localhost ~]$ vi .bash_profile
export SVN_EDITOR="vi"
を最後の行に追加
[ユーザ名@localhost ~]$ source .bash_profile
で変更を有効にする
・キャッシュとログを弾く.svnの設定を書き換える
リポジトリにコミットされない様に設定
svn propedit svn:ignore ./cache
viの中に対象外にするファイルを指定する
全ての場合は*/*(cacheフォルダの下のファイルまで全部)と記述して保存
やり直したい場合はコマンドをもう一度打って編集
svn propedit svn:ignore ./log
viの中に対象外にするファイルを指定する
全ての場合は*と記述して保存
やり直したい場合はコマンドをもう一度打って編集
・svn stat -u
M→変更がある
A→新たに追加
?→リポジトリに無い
!→リポジトリにしかない
D→削除予定
C→コンフリクト
・開発したソースをリポジトリにコミットするための準備
svn add *で?をAする
svn delete *で!をDにする
・
------------------------------5H------------------------------
●google docsのフィードの表示を試行錯誤してみる
・カレンダーと同様にClientAuthで接続(後日Auth subに変更する)
//スプレッドシートの一覧の取得
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
$spreadsheetService = new Zend_Gdata_Spreadsheets($client);
$feed = $spreadsheetService->getSpreadsheetFeed();
foreach($feed->entries as $entry){
echo $entry->title->text;
echo "<br>";
}
------------------------------6H------------------------------
●google docsのフィードの表示を試行錯誤してみる
・spreadsheetKey
どうやらURLらしい
すでに取得してるらしい
-----------------------------memo------------------------------
講義080日目
------------------------------1H------------------------------
★最終課題
●backendのurl直打ち対策など
・default:
is_secure: on
credentials: [member, admin]
に設定、is_secure: をonにし忘れて/backendに進入できるというミスをするなど
とりあえず権限を持ってないとbackendには入れない状態
------------------------------2H------------------------------
●バックエンドのページ遷移を整えるなど
・404エラーページの表示
・defaultに申し訳程度にリンクを作る
・memberのcrudは基本的なバリデーションとかかける程度で放置の予定
・seculityは多分大丈夫な気がする
------------------------------3H------------------------------
------------------------------4H------------------------------
★バージョン管理ソフトの導入
●リポジトリの保存に際してキャッシュを対象外にする
・svnで使うエディターを設定する
[ユーザ名@localhost ~]$ vi .bash_profile
export SVN_EDITOR="vi"
を最後の行に追加
[ユーザ名@localhost ~]$ source .bash_profile
で変更を有効にする
・キャッシュとログを弾く.svnの設定を書き換える
リポジトリにコミットされない様に設定
svn propedit svn:ignore ./cache
viの中に対象外にするファイルを指定する
全ての場合は*/*(cacheフォルダの下のファイルまで全部)と記述して保存
やり直したい場合はコマンドをもう一度打って編集
svn propedit svn:ignore ./log
viの中に対象外にするファイルを指定する
全ての場合は*と記述して保存
やり直したい場合はコマンドをもう一度打って編集
・svn stat -u
M→変更がある
A→新たに追加
?→リポジトリに無い
!→リポジトリにしかない
D→削除予定
C→コンフリクト
・開発したソースをリポジトリにコミットするための準備
svn add *で?をAする
svn delete *で!をDにする
・
------------------------------5H------------------------------
●google docsのフィードの表示を試行錯誤してみる
・カレンダーと同様にClientAuthで接続(後日Auth subに変更する)
//スプレッドシートの一覧の取得
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
$spreadsheetService = new Zend_Gdata_Spreadsheets($client);
$feed = $spreadsheetService->getSpreadsheetFeed();
foreach($feed->entries as $entry){
echo $entry->title->text;
echo "<br>";
}
------------------------------6H------------------------------
●google docsのフィードの表示を試行錯誤してみる
・spreadsheetKey
どうやらURLらしい
すでに取得してるらしい
-----------------------------memo------------------------------
登録:
投稿 (Atom)