罪と罰++二律背反
PHP/ZendFramework
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
リンク元
]
開始行:
[[PHP]]
*ZendFramework [#u480147e]
-PHP5.1.4以上
**インストール [#f8ea3e94]
-解凍してそのまま、アップする
-ライブラリをインクルードパスに加える(例:/usr/local/Zen...
-※ドキュメントディレクトリより、上位の階層へ配置する
include_path = ".:/usr/local/ZendFramework/library"
-ディレクトリ構成
【application】
+--【controllers】
| ■IndexController.php
| ■ErrorController.php
+--【models】
+--【views】
+--【scripts】
■index.phtml
【public_html】
■.htaccess
■index.php
***.htaccess/URLをrewriteルールで書き換えて、index.phpを...
RewriteEngine on
; トップページを指定します。
RewriteBase /
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
-WINなサーバで、.htaccessが使用できない場合、httpd.confへ...
***Ubuntuでrewriteエンジンを有効に(enableへシンボリックリ...
ln -s /etc/apache2/mod_avaliable/rewrite.load /etc/apach...
**アクションの呼び出し方法 [#l1fd5c3f]
http://FQDN/コントローラ名/アクション名/パラメータ1/値...
**コントローラ [#u6af599e]
-ファイル名:(コントローラ名)Conroller.php で、クラス名:...
-(アクション名)Action
-「Controller」・「Action」は、固定
***IndexController.php/デフォルトコントローラ [#i7392bda]
<?php
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
// デフォルトアクション
}
// 存在しないアクションが指定された場合、デフォルト...
public function __call($method, $args)
{
if ('Action' == substr($method, -6))
{
$controller = $this->getRequest()->getContro...
$url = '/' . $controller . '/idnex';
return $this->_redirect($url);
}
}
}
(('Actin'→'Action'に修正))
***index.php/フロントコントローラ [#r5ab55c9]
<?php
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::getInstance()->setParam('noViewRe...
Zend_Controller_Front::run('../application/controllers');
***ErrorController.php/エラーコントローラ [#o773306c]
-存在しないコントローラへのアクセスに使用される。controll...
require_once 'Zend/Controller/Action.php';
class ErrorController extends Zend_controller_Action
{
public function errorActin()
{
// エラーメッセージ
$response = $this->getResponse();
$resposen->setBody('コントローラが見つかりません...
}
}
***コントローラチェーン [#udce840e]
-別アクション(fugaコントローラのhogeアクション)へ転送
-同一コントローラの場合、コントローラは省略可能
$this->_forward('hoge', 'fuga');
-現在のアクション処理が終了後に移る。即転送する場合は、re...
return $this->_forward('hoge', 'fuga');
**リクエストオブジェクト [#cf053d5a]
|メソッド|取得する値|
|getQuery()|QUERYSTRING|
|getPost()|POST|
|getCookie()|Cookie|
|getServer()|SERVER|
|getEnv()|ENV|
|_getParam()|GET & POST|
|_hasParam()|パラメータ存在|
**レスポンスオブジェクト [#m2ccb561]
-echo/printは原則禁止
|メソッド|内容|
|setHeader()|HTTPヘッダを設定|
|setBody|コンテンツを設定|
|appendBody|コンテンツを追加|
|sendHeaders|ヘッダを出力|
|outputBody|コンテンツを出力|
|sendResponse|ヘッダとコンテンツを出力|
|clearHeaders|ヘッダ情報を消去|
|clearBody|コンテンツを消去|
|setRedirect|リダイレクトを設定する|
**Zend_View/ビュー [#g6cf2b33]
-PHPのプログラムにHTMLを含める
-..application/views/sampleview.php
<html>
<body>
<?php foreach ($this->person as $value): ?>
<span><?php echo $this->escape($value['namae']); ?></spa...
<?php endforeach ?>
</body>
</html>
-コントローラでレンダリングする
requre_once 'Zend/View.php';
public function IndexAction()
{
$data = array(
array(
'namae' => '名前A'
),
array(
'namae' => '名前B'
),
array(
'namae' => '名前C'
)
);
$view = new Zend_View();
$view->setScriptPath('../application/views');
$view->person = $data;
echo $view->render('sampleview.php')
}
**その他 [#obe5c035]
***コンポーネント [#pc4fa7f5]
-Zend_DB(データベース)
-Zend_Auth(認証)
-Zend_Acl(アクセス制御)
-Zend_Config(設定)
-Zend_Debug(デバッグ情報を表示。インスタンスは生成しない)
-Zend_Log(1.インスタンス生成、2.ライター作成、3.メ...
-Zend_Exception(例外)
**推奨コーディング規約 [#z826fb66]
***書式 [#m4ad80c5]
-文字コード:UTF-8 BOMなし
-改行コード:LFのみ
-開始と終了:<?php 〜 終了タグなし
-インデント:半角スペース4文字、タブは使用しない、全体を...
***命名規則 [#rfd1ec34]
-ファイル名
--英数字+(アンダースコア)
--プログラムファイルをグループ化する場合、同一名称+語尾...
-変数
--英数字
--(アンダースコア)は使用しない
--クラス内private、protectedは、頭に(アンダースコア)
--camelCase
-定数
--大文字で
--単語間には(アンダースコア)
-クラス
--先頭は大文字で
***コーディングスタイル [#q783d4d7]
-変数間には、半角スペース
-文字列
--シングルクォートで囲む
--文字列が開業を含む場合、開業のみダブルクォート囲み、ピ...
--文字列を連結する場合は、2行目以降に変数名を記述せず、...
-条件分岐、for、while
--開始の中カッコ({)は、条件文と同一の行で閉じカッコは...
-SQL
--ダブルクォートで囲む
--SQL文、関数は大文字
--プレースホルダを使用する場合は、シングルクォートで囲む
--カンマは、後ろに持ってきて、行の頭に持ってこない
-ドキュメント
-phpocumenter互換で
-ファイル
/**
* 簡単な説明
* 詳しい説明
* LICENSE:
* @copyright
* @license
* @version
* @since
*/
終了行:
[[PHP]]
*ZendFramework [#u480147e]
-PHP5.1.4以上
**インストール [#f8ea3e94]
-解凍してそのまま、アップする
-ライブラリをインクルードパスに加える(例:/usr/local/Zen...
-※ドキュメントディレクトリより、上位の階層へ配置する
include_path = ".:/usr/local/ZendFramework/library"
-ディレクトリ構成
【application】
+--【controllers】
| ■IndexController.php
| ■ErrorController.php
+--【models】
+--【views】
+--【scripts】
■index.phtml
【public_html】
■.htaccess
■index.php
***.htaccess/URLをrewriteルールで書き換えて、index.phpを...
RewriteEngine on
; トップページを指定します。
RewriteBase /
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
-WINなサーバで、.htaccessが使用できない場合、httpd.confへ...
***Ubuntuでrewriteエンジンを有効に(enableへシンボリックリ...
ln -s /etc/apache2/mod_avaliable/rewrite.load /etc/apach...
**アクションの呼び出し方法 [#l1fd5c3f]
http://FQDN/コントローラ名/アクション名/パラメータ1/値...
**コントローラ [#u6af599e]
-ファイル名:(コントローラ名)Conroller.php で、クラス名:...
-(アクション名)Action
-「Controller」・「Action」は、固定
***IndexController.php/デフォルトコントローラ [#i7392bda]
<?php
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
// デフォルトアクション
}
// 存在しないアクションが指定された場合、デフォルト...
public function __call($method, $args)
{
if ('Action' == substr($method, -6))
{
$controller = $this->getRequest()->getContro...
$url = '/' . $controller . '/idnex';
return $this->_redirect($url);
}
}
}
(('Actin'→'Action'に修正))
***index.php/フロントコントローラ [#r5ab55c9]
<?php
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::getInstance()->setParam('noViewRe...
Zend_Controller_Front::run('../application/controllers');
***ErrorController.php/エラーコントローラ [#o773306c]
-存在しないコントローラへのアクセスに使用される。controll...
require_once 'Zend/Controller/Action.php';
class ErrorController extends Zend_controller_Action
{
public function errorActin()
{
// エラーメッセージ
$response = $this->getResponse();
$resposen->setBody('コントローラが見つかりません...
}
}
***コントローラチェーン [#udce840e]
-別アクション(fugaコントローラのhogeアクション)へ転送
-同一コントローラの場合、コントローラは省略可能
$this->_forward('hoge', 'fuga');
-現在のアクション処理が終了後に移る。即転送する場合は、re...
return $this->_forward('hoge', 'fuga');
**リクエストオブジェクト [#cf053d5a]
|メソッド|取得する値|
|getQuery()|QUERYSTRING|
|getPost()|POST|
|getCookie()|Cookie|
|getServer()|SERVER|
|getEnv()|ENV|
|_getParam()|GET & POST|
|_hasParam()|パラメータ存在|
**レスポンスオブジェクト [#m2ccb561]
-echo/printは原則禁止
|メソッド|内容|
|setHeader()|HTTPヘッダを設定|
|setBody|コンテンツを設定|
|appendBody|コンテンツを追加|
|sendHeaders|ヘッダを出力|
|outputBody|コンテンツを出力|
|sendResponse|ヘッダとコンテンツを出力|
|clearHeaders|ヘッダ情報を消去|
|clearBody|コンテンツを消去|
|setRedirect|リダイレクトを設定する|
**Zend_View/ビュー [#g6cf2b33]
-PHPのプログラムにHTMLを含める
-..application/views/sampleview.php
<html>
<body>
<?php foreach ($this->person as $value): ?>
<span><?php echo $this->escape($value['namae']); ?></spa...
<?php endforeach ?>
</body>
</html>
-コントローラでレンダリングする
requre_once 'Zend/View.php';
public function IndexAction()
{
$data = array(
array(
'namae' => '名前A'
),
array(
'namae' => '名前B'
),
array(
'namae' => '名前C'
)
);
$view = new Zend_View();
$view->setScriptPath('../application/views');
$view->person = $data;
echo $view->render('sampleview.php')
}
**その他 [#obe5c035]
***コンポーネント [#pc4fa7f5]
-Zend_DB(データベース)
-Zend_Auth(認証)
-Zend_Acl(アクセス制御)
-Zend_Config(設定)
-Zend_Debug(デバッグ情報を表示。インスタンスは生成しない)
-Zend_Log(1.インスタンス生成、2.ライター作成、3.メ...
-Zend_Exception(例外)
**推奨コーディング規約 [#z826fb66]
***書式 [#m4ad80c5]
-文字コード:UTF-8 BOMなし
-改行コード:LFのみ
-開始と終了:<?php 〜 終了タグなし
-インデント:半角スペース4文字、タブは使用しない、全体を...
***命名規則 [#rfd1ec34]
-ファイル名
--英数字+(アンダースコア)
--プログラムファイルをグループ化する場合、同一名称+語尾...
-変数
--英数字
--(アンダースコア)は使用しない
--クラス内private、protectedは、頭に(アンダースコア)
--camelCase
-定数
--大文字で
--単語間には(アンダースコア)
-クラス
--先頭は大文字で
***コーディングスタイル [#q783d4d7]
-変数間には、半角スペース
-文字列
--シングルクォートで囲む
--文字列が開業を含む場合、開業のみダブルクォート囲み、ピ...
--文字列を連結する場合は、2行目以降に変数名を記述せず、...
-条件分岐、for、while
--開始の中カッコ({)は、条件文と同一の行で閉じカッコは...
-SQL
--ダブルクォートで囲む
--SQL文、関数は大文字
--プレースホルダを使用する場合は、シングルクォートで囲む
--カンマは、後ろに持ってきて、行の頭に持ってこない
-ドキュメント
-phpocumenter互換で
-ファイル
/**
* 簡単な説明
* 詳しい説明
* LICENSE:
* @copyright
* @license
* @version
* @since
*/
ページ名: