Zend Framework

Zend_ResutのResultオブジェクト(Zend_Rest_Client_Result)について

Zend_RestでYahoo! オークションやショッピングのapiを使用しました。 APIKEY, 'query' => 'nike', 'type' => 'all', 'category' => 0, 'page' => 1, 'sort' => 'end', 'order' => 'a', ); // クラ…

Zend FrameworkのCLAが承諾された

Zend FrameworkにCLAを提出してから1ヶ月弱、ようやく承諾されました。これに伴い、Zend Framework accountのアカウントがcontributor groupへ追加されたので、プロポーサルができるようになりました。 これから、徐々に書いていこうと思います。ただ、書い…

Zend_Logでログのローテーション その2

前回は簡単な使い方を書きましたが、今回は拡張する人用の情報を書きます。 クラスの構成 こんな感じになっています

Zend_Logでログのローテーション

勉強会で話したZend_Logを拡張してログのローテーションをできるようにしたものです。 log4jやlog4phpを参考にしながら、基本的な機能の部分をZend_Logに合わせて作りました。前回の記事でも書きましたが、logrotateなどを使用してサーバー側でローテーショ…

Zend_Filter_InputをZend_Controllerで使ったときのメモ

Zend Frameworkを使って、MVCフレームワークで開発しているとき、Zend_Filter_Inputを使ってフォームで入力された値のフィルタリングを行う処理を記述した時のメモ。以下のようなフォームで、入力された値についてチェックをかける場合。

Zend_Domを使ってみた

Zend Framework 1.6から追加されたZend_Domを使ってみました。 XPathだけではなく、CSSセレクタによるDOMドキュメントの問い合わせを行うことができます。以下のような感じでドキュメントを読み込ませてみました。

Zend_Feedを使ってWebページのフィードを生成する

Zend_Feedを仕様すると、WebページのフィードをRSS形式とAtom形式で簡単に作ることができます。まずは配列形式でフィードデータを生成します。

Zend_Httpを使ってAPIからファイルをアップロードする

Zend_Httpを使ってAPIからファイルをアップロードするプログラムを作ってみました。http://example.com/api/file_post というAPIがあって、これを使ってファイルをアップロードすると仮定しています。 コードは以下のようになっています。

[php]独自のZend_Viewのビューヘルパーの作り方?

前回で独自のビューヘルパークラスを作る方法がわかったので、今回は実際に作ることにします。作るヘルパーの内容は、自分も普段よく使っているもので、出力しようとする文字列の長さが指定したものより長い場合に、指定した長さで文字列を切り取って表示す…

独自のZend_Viewのビューヘルパーの作り方?

独自のZend_Viewのビューヘルパーはいくつかのルールをみたせば簡単に作ることができます。 ヘルパー名とビューヘルパーのクラス名の最後の部分は同じにする(ただしMixedCaps方式) ビューヘルパーのクラスにはヘルパー名と同じ名前のpublicメソッドが定義さ…

Zend_Auth_StorageのCookie対応版をCodeReposにおきました

先日書いたZend_Auth_Storage_Interface.phpを実装したスクリプトをCodeReposにおいておきました。実装内容もさることながら、テストもあまりしていません。もし使えそうだったら使ってみてください。 ツッコミ大歓迎です。

Zend_Auth_Storage_Interface を実装してcookieに対応

cookieで認証情報を引き回したかったので作ってみました。まだまだ改良の余地がありますが、とりあえず公開してしまいます。本来はZend_Http_Cookieをうまく使いたかったのですが、Zene_Http_ClientやZend_Http_CookieJarから使われるのが前提のようなつくり…

Zend_Layout ? Smartyに対応させてみる

今回はZend_View_Interfaceを実装してSmartyに対応させたビューをZend_Layoutへ対応させてみようという試みです。 使用するSmartyのクラスはこれ(ViewSmarty)です。まずはZend_Layoutにviewを登録する方法ですが、以下のどちらかの方法でViewSmartyのクラス…

Zend_Layout クイックスタート

前回の続き。Zend_LayoutをZend FrameworkのMVCを利用して使用し、ビューを表示する例を書きます。 今回使用するファイルおよびディレクトリ構成は以下のようになっています。

Zend_Layout ? 使いどころなど

Zend Framework 1.5からZend_Layoutが追加されています。興味はあったのですが、リファレンスガイドやその他ちょっと調べてもいまいち良くわからなかったので敬遠していましたが、このたびAkra's DevNotesのブログでとてもわかりやす解説を見つけて理解する…

Zend Frameworkのbootstrap.php

Zend Frameworkを使ってMVCフレームワークで開発をしようとする場合、Zend Frameworkのリファレンスガイドではドキュメントルート直下に置いたindex.phpをフロントコントローラとして使います。そして本命のディスパッチ処理はもちろん、ビューやルータの設…

Zend_Config_Yamlのようなものを考えてみる2

前回に引き続きZend_Config_Yaml.phpのようなものを考えてみました。 Yamlのパーサは前回挙げたPHP拡張モジュール SyckとPHPライブラリのspycに対応しています。 Zend_Config_Iniでは継承を示すトークンに「:(コロン)」を使っていましたが、Yamlで「:」は特…

Zend_Config_Yamlのようなものを考えてみる

前回のエントリーに対するコメントで、YAMLはでないですかねというコメントがあってちょっと触発されてZend_Config_Yamlについて色々考えてみました。一応最初に言っておきますが、Zend_Config_Yamlのようなものができたわけではないのであまり期待せず読ん…

Zend_Config_Xmlでxmlの要素名に-(ハイフン)が使えない

Zend_Config_Xmlでは、コンフィグファイルを読み込むと、XMLの要素名をプロパティーとしてアクセスできるようになります。test_config.xml xml version="1.0" ?> 123457 というデータがあったら

Zend_Dbでトランザクション(MySQLi)

Zend_Db_Adapter_Mysqliを使ってDBのトランザクションを制御する方法を書きます。とはいえ、インターフェースはZend_Db_Adapter_Abstractで定義されているので他のDBでも処理の書き方には変わりはないと思います。MySQLの代表的なストレージエンジンで、Inno…

Zend_Controller_Action_Helper_ContextSwitchで独自のコンテクストを追加する方法

Zend_Controller_Action_Helper_ContextSwitch(長い)で、独自のcontextを追加する方法を書きます。 デフォルトで組み込まれている機能(xmlとjson形式)の使い方は前のエントリーを参照ください。今回は自分の都合で、gif形式での方法を書きます。新しいコン…

Zend_ControllerアクションヘルパーのContextSwitch

Zend Framework1.5から新しく追加されたContextSwitchアクションヘルパーを使ってみました。 あるページのレスポンス形式をhtmlに加えてrssやatomフィードも追加したいとか、Ajaxで受け取るデータをxmlとjsonの両方に対応したい場合に、新しくactionメソッド…

Zend_ControllerのContextSwitchアクションヘルパーでZend_View_Interfaceが使えない件

Zend Framework1.5から新しく追加されたZend_ControllerのContextSwitchアクションヘルパーを使ってJSON形式でレスポンスを返そうとしたところ、 Fatal error: Call to undefined method Lib_ViewSmarty::getVars() in ... というエラーが出ました。確かにこ…

Zend_ControllerへSmarty組み込む (続きの続き)

前回デフォルトのmodifierを設定して、出力に対して自動的にエスケープ処理を行うように設定したのですが、urlエンコードをかけたいときは {$hello|smarty:nodefaults|escape:"url"}なんて長い記述になってしまいまして(そういうことを某氏に軽く突っ込まれ…

Zend_ControllerへSmarty組み込む (続き)

前回SmartyをZend_Controllerへ組み込みましたが、このままでは出力はエスケープされません。Smartyでの出力のエスケープ処理は以下のようになります。 {$hello|escape:"html"}view側で出力の都度エスケープ処理を行ってもいいのですが 面倒くさい ものにも…

Zend_ControllerへSmarty組み込む

Zend_ViewでSmartyを使う方法は、このページを参考に、Zend_View_Interfaceを実装して、最低限Smartyのプロパティである$template_dirと$compile_dirを設定してあげれば使えます。 require_once 'Zend/View/Interface.php'; require_once 'Smarty/Smarty.cla…

Zend_Controllerでの基本的なフロントコントローラ

Zend_Controllerでフロントコントローラ(Zend_Controller_Front)は以下のような役割を果たします。 リクエストを適切なActionControllerへ引き渡す レスポンスの内容を取得して、リクエスト元へ返す Zend_Controllerでの基本的なフロントコントローラの作…

Zend_Validate_StringLengthの処理

文字数が指定範囲内にあるかどうかをチェックするZend_Validate_StringLengthのバリデート処理は以下のようになっています。 public function isValid($value) { $valueString = (string) $value; $this->_setValue($valueString); $length = iconv_strlen($…

Zend_Controller クイックスタート

復習の意味も込めて、Zend_Controllerについて。 Zend Frameworkのリファレンスガイドとソースコードを参考に書いていきます。Zend_ControllerはZendFrameworkでのMVCモデルの根幹をなす部分で、フロントコントローラパターンを実装しています。 フロントコ…

Zend Frameworkのリファレンスマニュアルはすでに1.5仕様になっていた

今日Zend_Db_Tableのリファレンスガイドを見ていたら以下のような記述がありました。 取得操作用のAPIは変更され、Zend_Db_Table_Selectオブジェクトで クエリを変更できるようになりました。 しかし、昔ながらの方法であるfetchRow()やfetchAll()は今でも同…