■ Zend Framework を絵文字の表示に対応させる HTML_Emoji ライブラリ の利用例として、絵文字の表示に対応したテンプレートエンジンを作ってみました。 都合により Zend Framework 用のコンポーネントとして作りましたが、 他の PHP 用フレームワークやテンプレートエンジンでも、 同じようにすれば絵文字に対応させられると思いますので、参考にして下さい。 このコンポーネントを用いると、次のような機能が Zend_View に追加されます。 テンプレートに埋め込まれた絵文字を、キャリアに応じて自動的に変換します <?= ... ?> で囲まれた範囲の絵文字の変換 & HTML エスケープを自動的に行います $this->foo でなく $foo と書くことで変数の値を参照できます docomo の携帯の場合は、Content-Type: application
In this article, I'll discuss the development and features of Zend_Loader_Autoloader and its related functionality. However, the main point of the article is to show the various concerns and design decisions that go into developing a comprehensive autoloading solution for your PHP applications. Autoloading, while seemingly a trivial optimization task, has many facets that are often overlooked
■ Zend_Loader_Autoloader クラスの正しい使い方 まずは結論を。 Zend_Loader_Autoloader クラスを用いる際には、 registerNamespace() メソッドは使わず、 setFallbackAutoloader(true) に設定しておくべきです。 Zend Framework 1.8 では、Zend_Loader_Autoloader というクラスが新設され、 従来の Zend_Loader::registerAutoload() メソッドは、 Zend Framework 2.0 以降では廃止される予定となりました。 ところが、Zend_Loader_Autoloader クラスを用いるようコードを書き換えてみると、 困ったことに、PEAR のライブラリや Revulo_View_Phtmlc のような独自クラスをオートロードしてくれま
symfonyにはsfWebDebugToolbarというのがあるらしいです。 どこかで見たことあるなあと思ったら、ZFDebugbarにそっくりじゃないですか!*1 symfony1.2のdebugツールバーは拡張が容易になったそうですね。 sfWebDebugToolbarを�拡張してみる http://d.hatena.ne.jp/Fivestar/20090517/1242552666 奇遇ですね!ZFDebugも拡張が容易になってます! 最新(r72)のをさっきsvn exportして試してみました。ZFDebugの配布先はgooglecodeに移行されてます。 http://code.google.com/p/zfdebug/ 拡張する際はdebugバー用のプラグインインターフェイスを実装します。 <?php require_once 'ZFDebug/Controller/P
Polley Wong translated Zend Framework's dispatch process into an easy-to-read workflow diagram. Stepping through the critical steps of the dispatch process, you'll understand the relation between Front Controller, Dispacther, Helper, and Broker. You'll also have a good picture of what role they play and why they are there.
PHPでのDIコンテナのわかりやすい説明としては「最小のDIコンテナ in PHP」や「DIコンテナなんていらない」の中で説明されているし、DIコンテナをより詳細に推し進めた形としてはSeasar2のドキュメントか何かを見ていただいた方がいいと思います。DIコンテナは使いこまれた技術で基本概念や実装方法については知られていますので、ここでは、ZFを例にしてDIコンテナを使うメリットについて具体的に検討してみたいと思います。 Zend Frameworkを例にとると 前記事Zend_Application(1) - noopな日々で触れた下記のページにあるように、 http://www.infoq.com/jp/articles/drinking-your-guice-too-quickly DIコンテナはサービスロケーターから進化する流れがわかりやすいわけですが、それらを前提的な話として、
発表のダイジェストはlllnorikolllさんがまとめて下さってますので、私は雑感を。まとめじゃないです! 携帯対応とか 携帯対応については、いくつかの現場で体験してきたので、今回の発表はよくわかりました。 全部SJISで自社サーバ環境ならSET NAMESじゃなくてMySQL*1の設定ファイルに書いても良いよね。と思ったのですが、あれは質疑の中だったので行き違いとかもあったのかな?と少し思いました。 SET NAMESについては別の観点で、ZendFramework勉強会@Tokyo でしゃべってきましたよ | ブログが続かないわけにてまとめていただいています。他にSET NAMESだとセキュリティ面で気を使う面が増えたりもしますね。 この話を聞きながら、某プロバイダで開発したときのことを思い出したのですが、NDAにかからない範囲で書きますと、端末の違いを吸収する機能をフレームワーク、
Zend Framework 使いにとっては記念すべき 1 回目の勉強会が開催された。 ZendFramework勉強会@Tokyo - events.php.gr.jp id:wozozo にしゃべれと言われたので、 Phwittr の事なんぞを。 Zend Framework Study@Tokyo vol1View more presentations from heavenshell. 後半が設計論的な事になったのは反省。 Phwittr だけで 40 分も持ちませんと言い訳。 次回機会があれば、コンポーネント関係とか View 関係で話そうかな。 他の方のレポートは最速でブログを更新した、lllnorikolll さんの所を参照下さい。 ざくっと感想だけ。 携帯はバッドノウハウだらけ 絵文字とかフィルターとかヘルパー作ったら便利なのかな 初期のディレクトリ構成を縛るのはいいのかも
ZendFramework勉強会@Tokyoに参加してきました。 ZFではじめる携帯サイト – bayside 携帯サイトをZendFrameworkを利用して作る際に必要となる知識を、全般的にざっと紹介。 FirefoxのUserAgentSwitcherというアドオンは、UserAgentを偽装するだけだけれど、FireMobileSimulatorというのが絵文字なども再現してくれてすごいとのこと。 あとで入れてみよう。。。 思い立ったらZF 〜 今日の目次 〜 – junichiro CakePHPとZendFrameworkの比較をしながら、それぞれの特徴をざっと紹介。 junichiroさんが使っているZendFrameworkのファイルレイアウトは、githubにあるらしい。ファイルレイアウトに悩んでその先に進むまでが大変なときは、ここから利用させてもらうと便利!→http:
ZendFrameworkのファイルをバックエンドとしたキャッシュは他のコンポーネントや拡張を必要としないのでお手軽に実施できます。 ただ、キャッシュエントリーが多くなるとキャッシュのクリアーなどで若干問題が発生するかもしれません。 複合的な要因で発生するようなので再現性や検証が難しいのですが。 事例:_cleanメソッド内でタイムアウト 高負荷なサイトでキャッシュの全クリアを実施したときに、Zend_Cache_Backend_File::_clean()のforeachループ内のis_fileとis_dirでタイムアウトして落ちるというケースがありました。(元々高負荷な状況ですので、30秒タイムアウトというのは余裕のあるラインではないのですが) 状況としてはユーザーリクエストで発生していたので、automatic_cleaning_factor による期限切れキャッシュなどの掃除が大量
Viewでの処理結果をシームレスにキャッシュするため、レスポンスオブジェクトに追加するデータを文字列データではなく、__toString可能なオブジェクトにしてみました。PHP的には文字列で格納してゴリゴリ追加していくというのも悪くはないのですが、個人的には関数ライクに処理していきたいので、直接操作するよりも配列等にスタックしていく方が好きです。 いろいろなところでViewが使われていますが、基本的な処理としては、renderで取得した文字列を$response->appendBodyして、レスポンスオブジェクトに追加しています。response側が受け取ったデータをスタックするように変更すればまずはOK.ということで、append appendBody setBodyのところで問答無用にキャストしている部分を修正しました。 <?php /** * Append content to th
Zend_View, Zend_Layoutに関するヘルパー使用法の覚え書き。 アクションコントローラー内の各アクションで自動ビューレンダラー無効 <?php $this->_helper->viewRenderer->setNoRender(); アクションコントローラー内の各アクションで、任意のビュースクリプトを呼び出し <?php // 引数は呼び出すビュースクリプト(拡張子抜き) $this->_helper->viewRenderer->setRender('hoge'); アクションコントローラー内の各アクションで、レイアウトを無効 <?php $this->_helper->layout->disableLayout(); アクションコントローラー内の各アクションで、任意のレイアウトを呼び出し <?php // 引数は呼び出すレイアウトスクリプト(拡張子抜き) $this->
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く