本日の業務日報と進捗表は以下の通りです。予定より前出しで進捗しております。
なお、本日「ルバシカ・黒」をヤフオク!に出品いたしましたことを報告いたします。
21世紀のライフスタイルに合った新しい装束 ―
日本標準機構では、日本の装束をカジュアルにアレンジして販売しています。
狩衣(かりぎぬ)、直衣(のうし)、直垂(ひたたれ)などを現代のライフスタイルに合わせてより着やすく、よりカジュアルに。
カジュアル装束の販売は
日本標準機構
2013年10月31日木曜日
2013年10月30日水曜日
在庫管理システム『SASO1.0』コントローラクラス
コントローラクラスは全て、スーパークラスのControllerBaseクラスを継承します。
ControllerBaseクラスの役割は主に、レガシーPHPであるlogicディレクトリの中身、及びビューの呼び出しです。
そして、エラーページを呼び出す役割もあります。
ビューはviewディレクトリ内のtemp.phpというテンプレートファイルから呼び出されます。
各ページのタイトルなどはtemp.phpに記述されます。
少々長いControllerBaseクラスに対し、それぞれのコントローラクラスは非常に単純です。
やっていることは、タイトルの設定と、呼び出すlogicとviewディレクトリ以下のファイル名のセットです。
「$this->_invalidAccess();」を設定することでPOSTなしでアクセスするのを防ぎます。
(startAction()に飛ばされます)
ControllerBaseクラスの役割は主に、レガシーPHPであるlogicディレクトリの中身、及びビューの呼び出しです。
そして、エラーページを呼び出す役割もあります。
ビューはviewディレクトリ内のtemp.phpというテンプレートファイルから呼び出されます。
各ページのタイトルなどはtemp.phpに記述されます。
<?php
namespace saso\classes\controllers;
use \saso\classes\base;
class ControllerBase{
private $_title;
private $_content;
private $_errorMessage;
private function _linkTo($path){
return 'http://' . $_SERVER['HTTP_HOST'] . '/' . PROGRAM_DIR . '/' . $path;
}
private function _getContentTitle() {
return $this->_title;
}
private function _getContent() {
return $this->_content;
}
protected function _setContentTitle($title) {
$this->_title = $title;
}
protected function _setCurrentContent($current) {
require_once 'logic/' . $this->_controllerName . '/' . $current.'.php';
$this->_content = 'view/' . $this->_controllerName . '/' . $current.'.php';
require_once 'view/temp.php';
}
protected function _invalidAccess(){
$postTest = new base\Post();
$nameTest = new base\Request($postTest);
if(is_null($nameTest->getRequest())){
header('Location: http://'.$_SERVER['HTTP_HOST'] . '/' . PROGRAM_DIR . '/' . $this->_controllerName . '/start/',TRUE,'303');
}
}
public function error($errorCode){
switch($errorCode){
case 'database':
$this->_errorMessage = 'データベースに接続できませんでした。';
break;
case 'invalid':
$this->_errorMessage = '入力値が不正です。';
break;
case 'notFound':
$this->_errorMessage = 'ページが見つかりません。';
break;
case 'invalidClone':
$this->_errorMessage = 'クローンは使えません。';
break;
default:
$this->_errorMessage = '予期せぬエラーが発生しました。';
break;
}
$this->_title = 'エラー';
$this->_content = 'view/error.php';
require_once 'view/temp.php';
}
}
少々長いControllerBaseクラスに対し、それぞれのコントローラクラスは非常に単純です。
やっていることは、タイトルの設定と、呼び出すlogicとviewディレクトリ以下のファイル名のセットです。
「$this->_invalidAccess();」を設定することでPOSTなしでアクセスするのを防ぎます。
(startAction()に飛ばされます)
<?php
namespace saso\classes\controllers;
class ItemController extends ControllerBase{
protected $_controllerName = 'item';
public function startAction(){
$this->_setContentTitle('商品管理');
$this->_setCurrentContent('start');
}
//商品登録
public function addItemAction(){
$this->_setContentTitle('商品登録');
$this->_setCurrentContent('addItem');
}
public function addItemConfirmAction(){
$this->_invalidAccess();
$this->_setContentTitle('登録確認');
$this->_setCurrentContent('addItemConfirm');
}
public function addItemSaveAction(){
$this->_invalidAccess();
$this->_setContentTitle('登録完了');
$this->_setCurrentContent('addItemSave');
}
}
2013年11月前半の予定
標題の予定は以下のガントチャートの通りです。
袴及び袴その2の製品作成に入ります。
それと同時に、新商品の開発も行ないます。
立体裁断は一日仕事となりますので、製品製造はその日はいたしません。
以上、今後とも日本標準機構をよろしくお願いいたします。
袴及び袴その2の製品作成に入ります。
それと同時に、新商品の開発も行ないます。
立体裁断は一日仕事となりますので、製品製造はその日はいたしません。
以上、今後とも日本標準機構をよろしくお願いいたします。
2013年10月29日火曜日
2013年10月28日月曜日
2013年10月25日金曜日
在庫管理システム『SASO1.0』POSTとGETの受け取り
POSTとGETの受け取りもクラスにします。
参考:http://www.objective-php.net/
手順としては、まずPOSTはPostクラス、GETはUrlParameterクラスが受け取ります。
(リクエスト振り分けクラスDispatcherがGETはスラッシュ区切りの第3パラメータ以降としていたのでした。)
次に、RequestクラスがPostインスタンス、UrlParameterインスタンスを引数に取り、
そののちgetRequest()メソッドで使えるようにします。
ここで、Requestクラスは2種類のインスタンスを引数に取りますが、
その2種類にはsetValues()メソッドを持って欲しいのです。
そこで、RequestInterfaceを定義します。
<?php
namespace saso\classes\base;
interface RequestInterface{
function setValues();
}
それを実装したものが以下の二つです。<?php
namespace saso\classes\base;
class Post implements RequestInterface{
private $_values;
public function setValues(){
foreach($_POST as $key => $value){
$value = htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
$this->_values[$key] = $value;
}
return $this->_values;
}
}
<?php
namespace saso\classes\base;
class UrlParameter implements RequestInterface{
private $_values;
public function setValues(){
foreach($_GET as $key => $value){
$this->_values[$key] = $value;
}
return $this->_values;
}
}
Requestクラスはコンストラクタでインターフェースをタイプヒンティングしています。<?php
namespace saso\classes\base;
class Request{
private $_request;
public function __construct(RequestInterface $r){
$this->_request = $r->setValues();
}
private function _hasKey($key){
if(false == array_key_exists($key,$this->_request)){
return false;
}
return true;
}
public function getRequest($key = null){
if(null == $key){
return $this->_request;
}//キーを指定されなかったら、全部を配列で返す。
if(false == $this->_hasKey($key)){
return null;
}//言われたキーがない場合nullを返す
return $this->_request[$key];//普通は言われたキーのヴァリューを返す
}
}
使い方は以下の通りです。<?php
$post = new base\Post();
$name = new base\Request($post);
echo $name->getRequest('itemName');
参考:http://www.objective-php.net/
登録:
投稿 (Atom)









