Home > Programing > Zend Framework

>> 【超お得】DELLオンライン広告限定日替わりページ <<

Zend Framework Archive

Zend Frameworkでビュースクリプトの拡張子を変更する

標準ではビュースクリプトファイルの拡張子は「phtml 」です。
これを「 html 」などに変更します。

アクションコントローラ内で変更する

$this->_helper->viewRenderer->setViewSuffix('html');

こんな感じですっ☆

これでデザイナーとファイルのやり取りが楽になりますっ。

  

タグ: ,

ZFチュートリアル Zend_Controller編 (3) 基本

Zend_Controller の処理の流れは、 いくつかの部品にわかれ実装されています。
処理の概要を知っておくことは有用です。

Zend_Controller_Front
Zend_Controller の処理全体を取りまとめます。FrontControllerパターンであるといえます。
サーバから受け取ったすべてのリクエストを Zend_Controller_Front が処理し、最終的にリクエストを
ActionController (Zend_Controller_Action) に委譲します。

Zend_Controller_Request_Abstract
リクエスト環境を表し、コントローラ名やアクション名 そしてリクエストパラメータを設定したり取得したりする機能を提供します。
さらに、アクションが Zend_Controller_Dispatcher でディスパッチされたかどうかを追跡する機能もあります。
この抽象リクエストオブジェクトを拡張し、 リクエスト情報をカプセル化します。
それによって、 ルータはリクエストの情報を取得して コントローラとアクションを決定できるようになります。
デフォルトでは Zend_Controller_Request_Http が用いられます。
これは、HTTP リクエスト環境全体へのアクセス機能を提供します。

Zend_Controller_Router_Interface
こちらを使用してルータを定義します。ルーティングとは、リクエストの内容を調べて、
そのリクエストを処理するコントローラとアクションを決定する処理のことです。
このコントローラとアクション、そしてリクエストパラメータがリクエストオブジェクトに設定され、
Zend_Controller_Dispatcher_Standard で処理されます。
ルーティングが発生するのは一度だけ、 つまり最初にリクエストを受け取ってから 最初のコントローラにディスパッチされるまでの間だけです。
デフォルトのルータである Zend_Controller_Router_Rewrite は、 Zend_Controller_Request_Http で指定された
URI を受け取ってそれを分解し、コントローラや アクション、そして URL に含まれたパスのパラメータを取得します。
たとえば、http://localhost/foo/bar/key/value のような URL の場合は
foo がコントローラ、 bar がアクション、そしてパラメータ key の値として value を取得します。
Zend_Controller_Router_Rewrite は、任意のパスにマッチさせることもできます。

Zend_Controller_Dispatcher_Interface
こちらを使用してディスパッチャを定義します。ディスパッチとは、 コントローラとアクションをリクエストオブジェクトから受け取り、
それを実際のコントローラファイル/クラスとメソッドに対応させる処理のことです。
コントローラやアクションが存在しない場合は、 デフォルトのコントローラやアクションにディスパッチします。
実際のディスパッチ処理では、 コントローラクラスのインスタンスの作成と そのクラスのアクションメソッドのコールを行います。
ルーティングは一度しか発生しませんが、 それとは異なりディスパッチは繰り返し発生します。
リクエストオブジェクトのディスパッチ状態がリセットされるとループが再開され、 現在リクエストオブジェクトに設定されているアクションが
コールされます。 リクエストオブジェクトのディスパッチ状態が (TRUE に) 設定された状態でループが終了すると、処理が終了します。
デフォルトのディスパッチャは Zend_Controller_Dispatcher_Standard です。
これは、MixedCasedClasses 形式の名前の最後に Controller がついたクラスをコントローラとして使用し、
アクションメソッドの名前は camelCasedMethods 形式 (最後に Action をつける) となります。
たとえば FooController::barAction() のような場合、コントローラは foo、アクションは bar となります。

Zend_Controller_Action
コントローラの基底コンポーネントです。 各コントローラはこの Zend_Controller_Action クラスを継承して作成します。
このクラスではアクションメソッドを定義します。

Zend_Controller_Response_Abstract
基底レスポンスクラスで、アクションコントローラからの応答内容を収集し、 それをレスポンスとして返します。これはヘッダと本文の両方を収集します。
デフォルトのレスポンスクラスは Zend_Controller_Response_Http で、 これは HTTP 環境での使用に適しています。

まとめ
Zend_Controller の処理の流れは比較的シンプルです。 Zend_Controller_Front がリクエストを受け取り、
Zend_Controller_Router_Rewrite をコールして、 配送先となるコントローラ (そしてコントローラ内のアクション) を決定します。
Zend_Controller_Router_Rewrite は URI を分解し、リクエストからコントローラ名とアクション名を取得します。
その後、Zend_Controller_Front はディスパッチループに突入します。 まず Zend_Controller_Dispatcher_Standard を
コールしてそこにリクエストを渡し、 リクエストで指定されたコントローラとアクションを取得します (あるいはデフォルトを使用します)。
コントローラが終了すると、処理は Zend_Controller_Front に戻ります。リクエストのディスパッチ状態がリセットされ、
別のコントローラをディスパッチするように指示された場合は、 ループが続けられて次の配送処理が行われます。
それ以外の場合は、処理がそこで終了します。それ以外の場合は、 処理が終了します。


ZFチュートリアル目次
http://yaegassy.jp/zend-framework.html#4


タグ: , ,

ZFチュートリアル Zend_Controller編 (2) ファイル説明

Version 1.9.6のZend_Controllerを解剖してみます。

Zend_Controller (Ver.1.9.6)

ファイル数: 50ファイル
※拡張子がないものはディレクトリになります。

Action
-- Exception.php
-- Helper
---- Abstract.php
---- ActionStack.php
---- AjaxContext.php
---- AutoComplete
------ Abstract.php
---- AutoCompleteDojo.php
---- AutoCompleteScriptaculous.php
---- ContextSwitch.php
---- FlashMessenger.php
---- Json.php
---- Redirector.php
---- Url.php
---- ViewRenderer.php
-- HelperBroker
---- PriorityStack.php
HelperBroker.php
Interface.php
Action.php
Dispatcher
-- Abstract.php
-- Exception.php
-- Interface.php
-- Standard.php
Exception.php
Front.php
Plugin
-- Abstract.php
-- ActionStack.php
-- Broker.php
-- ErrorHandler.php
-- PutHandler.php
Request
-- Abstract.php
-- Apache404.php
-- Exception.php
-- Http.php
-- HttpTestCase.php
-- Simple.php
Response
-- Abstract.php
-- Cli.php
-- Exception.php
-- Http.php
-- HttpTestCase.php
Router
-- Abstract.php
-- Exception.php
-- Interface.php
-- Rewrite.php
-- Route
---- Abstract.php
---- Chain.php
---- Hostname.php
---- Interface.php
---- Module.php
---- Regex.php
---- Static.php

ZFチュートリアル目次
http://yaegassy.jp/zend-framework.html#4


タグ: , , ,

ZFチュートリアル Zend_Controller編 (1) はじめに

Zend_ControllerはZend Framework の MVC システムの中心となるものです。

Zend_Controller_Front は フロントコントローラ パターンを実装しており、 すべてのリクエストをいったんフロントコントローラで受け取った上でその URL にもとづいたアクションコントローラに配送します。

Zend_Controller は、拡張性を考慮して作成されています。

拡張方法は下記の二つがあります。

  • 既存のクラスのサブクラスを作成する
  • アクションヘルパーを作成する

新しいサブクラスを作成すると、コントローラクラスの基盤となる インターフェイスや機能を新たに書くことができます。 アクションヘルパーを使用すると、システムの機能を強化したり変更したりできるようになります。

Zend_Controllerの構造

フロントコントローラー
全てのリクエストを受け付け、処理を各機能に依頼し、レスポンスを返す

ルータ
リクエスト内容から処理の手順を決める

ディスパッチャ
処理を担当するアクションコントローラーを決め、アクションコントローラーを呼び出す

アクションコントローラー
実施の処理を行うビジネスロジックと呼ばれる部分

リクエストオブジェクト
リクエストされた全ての情報を管理する

レスポンスオブジェクト
レスポンスする全ての情報を管理する

アクションヘルパー
アクションコントローラーに機能を追加する

プラグイン
イベント発生時に処理を追加する

標準的なディレクトリ構成

application ---------------- アプリケーションディレクトリ
┣controllers -------------- コントローラディレクトリ
┃┣IndexController -------- アクションコントローラ
┃models ------------------- モデルディレクトリ
┃views -------------------- ビューディレクトリ
┃┗scripts ---------------- ビュースクリプトディレクトリ
┃__┗index ---------------- コントローラ名
┃____┗index.phtml -------- ビュースクリプト(アクション名 + .phtml)
html ----------------------- 公開ディレクトリ
┣.htaccess ---------------- 全てのリクエストをindex.phpに渡す設定
┗index.php ---------------- フロントコントローラ

rewrite ルールの作成

上のレイアウトの html/.htaccess ファイルを、次のように編集します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

ZFチュートリアル目次
http://yaegassy.jp/zend-framework.html#4


タグ: , , ,

PHPアプリでのナビゲーションUIの管理と表示

Codezineさんでこんな記事があがってましたっ。

PHPアプリでのナビゲーションUIの管理と表示 - Zend_Navigation -

http://codezine.jp/article/detail/4612

Zend Frameworkのプログラマ向けリファレンスガイドでは、Zend_Navigationの大事な部分が日本語に翻訳されていない為、使い方がわかりづらいですよねっ。
http://framework.zend.com/manual/ja/zend.navigation.html

参考にしましょう☆

  

タグ: , , ,

Zend Frameworkで大規模開発中

現在、非常にタイトなスケジュールで会社の命運を変えるシステムプロジェクトを担っています。

その中で選んだフレームワークがZend Frameworkです。
CakePHPやSymfonyも選択にはありましたが結局Zend Frameworkにしたのは
「将来性」「発展性」「モジュール構造の概念」「ファイル名の奇麗さ」「Smarty」「自由度」です。

将来性
Zendと名前がついているだけで、安心ですね。

ライブラリは元々ピュアPHP開発でも使用していたので
信頼しています。

勿論、日本語圏での問題は発生しますがそれはそれで別ライブラリや自前で対応ですね。

発展性
更新頻度が激しいことが魅力です。バージョンがどんどんあがっていきます。
何か、期待させられるという感じが良いのではないでしょうか。

モジュール構造の概念
マニュアルにモジュール構造のやり方がしっかり載っています。
勿論、他フレームワークでもありますし、やれますが
マニャアルにしっかりやり方が記載されていることが良かったです。

ファイル名の奇麗さ
コントローラーのファイル名がXxxxController.phpというファイルになります。
これを見たときに非常にわかりやすく感じました。

モデル名は制約がないのですが当社では上記の考え方にあやかり
XxxxModel.phpという形にしています。

ビューファイルはZend_VIewの場合はデフォルトでは.phtmlです。
phtmlなので大抵のエディタでシンタックスカラーなどがしっかり対応できます。

CakePHPの単数系とか複数系とかのルールはちょっと・・・。
勿論それはそれでメリットもあるのですが今回はデメリットと考えました。

Smarty
マニュアルにしっかりSmartyをテンプレートエンジンとして使用する方法が載っています。
当社は今までSmartyを多用していました。

乗り換えが楽でした。

自由度
最後に自由度です。上記のようなファイル名なども含め、自由度が高いです。
これはフレームワークとしては逆にデメリットと取れなくもないですが
当社ではメリットに感じました。

RADといった考え方ならCakePHPは非常に魅力ですが大規模開発なら、
迷わずZend Frameworkをおすすめします。

本当にこれを選んで良かったと思っています。

  

タグ: , ,

Zend Framework 1.9.3 patch 1 リリースっ

またまたZend Frameworkの最新版が出ましたっ。

1.9の3番目のメンテナンスリリースです。
Zend_Dbなど含め、多数の更新があります。

Zend-Framework-1.9.3-Released_1253722434889
http://devzone.zend.com/article/10050-Zend-Framework-1.9.3-Released

最近はZend Frameworkを研究していますので非常にこの更新の早さは楽しいですね。

タグ: , , ,

Zend Framework 1.9.2 リリースっ

オレオレフレームワークっていうんですかね??
某社でシステム関連の業務を取り仕切っていますがシステムの開発も
担っているんですよ。

特に社内システムとかもですね。社内用のシステムって
開発だけじゃなくて保守もやはり、求められるんですよね。

そんなときにフレームワークを使ったりしていると
困る事ってよくあるので自分流のやり方で
やってしまうんですが引き継ぎが難しくなるんですよねー。

そんなこんなで最近社内でZend Frameworkを流行らせようと
思い、しっかり初めました。

Zend-Framework_-Downloads_1251295265481

非常に良いですね。ライブラリ的には使ってたんですが、
しっかりMVCするとほんと便利ですわ。これ。

そんなこんなで最新版リリースです。1.9.2ですー。
マニュアルも更新されてますっ。

皆さんも活用しましょーー。
http://framework.zend.com/manual/ja/

タグ: ,

Zend Framework 1.8.2 リリース

Zend Frameworkが1.8.2になりましたっ。

Zend_Dbが良くなったみたいですよん。

http://zendframework.com/manual/ja/index.html
zend_framework_182

全文を読む

タグ: ,

Zend Framework 1.8.1 リリース

http://devzone.zend.com/article/4620-Zend-Framework-1.8.1-Released

Zend Frameworkが1.8.1になりました。13日前に1.8.0がリリースされました。
更新早いですねー☆

早速使ってみよっ。

下記、引用

  • Zend_Loader::registerAutoload() now proxies to Zend_Loader_Autoloader, and marks the instance as a fallback autoloader.
    This will ensure equivalent functionality, and reduces the number of deprecation notices emitted to one.
  • Many bugfixes and improvements to Zend_Application.
  • Addition of module generation capabilities to Zend_Tool
  • Addition of strong object typing capabilities to Zend_Amf
  • Many more manual translations!

全文を読む

タグ: , ,

ホーム > Programing > Zend Framework

QR Barcode
QR Code for Zend Frameworkでビュースクリプトの拡張子を変更する
バナー
にほんブログ村 IT技術ブログへ
にほんブログ村 IT技術ブログ オープンソースへ    にほんブログ村 IT技術ブログ ネットワーク・SEへ
人気ブログランキングへ   




Yahoo
Twitter
あわせて読みたい
あわせて読みたいブログパーツ
ZF使いのリンク
お気に入りリンク
オフィシャルリンク

Return to page top