2009-01-01から1年間の記事一覧

あきらめていたソース汚れがみるみる落ちて行く

Zend_Applicationに初めて触った時、なんで、ブートストラップをコンフィグで駆動させるためにこんなにステップ数を踏むんだい?って正直思っていたけれど、モジュール別ブートストラップをコンフィグとプラグインリソースで実装してみて、その理由がわかっ…

Zend_Application(4) モジュール別ブートストラップを使う

ZF 1.8.1がリリースされて、Zend_Applicationの全容が見えてきた感があります。内部的には、微妙なところも散在しているようなんですが、十分実用的になったと思います。

Zend Frameworkネタはブログには向かない

さんざん書いてきて、アレですが、最近のZFのリリース間隔と更新のフットワークの軽さを考えると、 過去ログが検索にかかってしまって古い情報に埋もれてしまうので技術的な情報はブログに書くのは向かないかもと思った。 あ、でも書くけど。(試行錯誤のロ…

Zend_ApplicationとZend_Loader_Autoloader、suppressNotFoundWarningsで困った(けど、原因がわかりました 追記)

ZF1.8RCでそれぞれテストして良好だったんですが、それで余裕ぶっこいて1.8.0の正規リリースをいきなり投入したら困ったことになりました。

 キラーアプリは技術者の夢 ---「LingrとRejawサービス終了のお知らせ」を読んだ感想 ---

面白く読ませていただきました。 共感したところ 自分が技術的に成長した今だから言えることですが、今のLingrやRejawのようなプロダクトなら、1人か、多くても2人ぐらいで作れるべきであった、と思います。「少数精鋭」を突き詰めると、究極的には1人になる…

ギミックの誘惑

やりたいことと、ベースになっている技術に隔たりがある場合、つい黒魔術的なギミックで解決する誘惑にかられてしまう。 その時は、「われ発見せり」てな感じでちょっとした愉悦感を味わってしまうのだけれど、後になってみるととても恥ずかしく思えることが…

モデリングとTDD

PHPのUMLモデリング用ツールでラウンドトリップ対応しているものはあまり見かけないのですが、これはたぶん、PHPの記法的に対応しにくい書き方が許されてしまうからではなかろうかと。そのため、PHPな現場でのモデリングツールの使い方としては、ウォーター…

業務用システムとWebアプリの温度差

Web系の開発者って、"新しいこと"、"おもしろいこと"に対する欲求が他の分野の開発者よりも強い気がします。

デスマの友

某プロジェクトがデスマになった時、お世話になった息抜きスポットの<be>ブーランジェピシエ@六本木ミッドタウンがどうも閉店してるっぽい?のでちょっと残念だなと思った。 デスマなプロジェクトって自虐的に語られることが多いんですが、現場が殺伐とし…

gitもしくはgithubとは一体なんなのか

git

ソースコード管理といえば、VSSかSVNで通してきた身としては、CVSでやってるプロジェクトとか使いにくいなぁと思ってしまうような適応性のなさを発揮してしまいます。かといって、CVSだからできませんとは言えないですしw gitについても、いまだに使ったこ…

Skinny Controller, Fat Model ?

コントローラーががんばりすぎる設計(Fat Stupid Ugly Controllers)に対するアンチテーゼとして出てきた話、"Skinny Controller, Fat Model" 元ネタ 元はこのブログ記事Buckblog: Skinny Controller, Fat Modelらしいですが、元ネタの元はこれ?http://www.a…

Zend Framework 1.8で垣間見るコーディング規約の変更

ZF-6331によると、Zend Frameworkはname space対応するにあたり、コーディング規約に変更が入るらしいです。これまでのハンガリアン記法*1からPEAR2コーディング規約への準拠へと変わるそうな。主な変更点は、 これまでインターフェース名は _Interfaceで終…

フロントでキャッシュするプラグイン

※フロントコントローラーのdispatchでdispatchループをbreakできるコードを入れておく必要があります。*1 getCache()->load($id)) { $this->_isCacheHit = tr…

Zend_Application(3) リソースコンテナをアクションコントローラー内から使う方法

Zend_Application絡みでコンテナをどうやって取得する?というのが残る課題だったような気がしますが、getInvokeArgを使う方法はすっきりしててうまいですね。 getInvokeArg('bootstrap'); $router = $bootstrap->getResource('router'); #fw-mvcのログより …

Zend_Application(2) /Zend FrameworkにおけるDIコンテナ活用のメリットについて/

PHPでのDIコンテナのわかりやすい説明としては「最小のDIコンテナ in PHP」や「DIコンテナなんていらない」の中で説明されているし、DIコンテナをより詳細に推し進めた形としてはSeasar2のドキュメントか何かを見ていただいた方がいいと思います。DIコンテナ…

Zend Frameworkの”不思議”なところ

いろいろ触って、ソースもそれなりに見てきて思うんですが、ZendFrameworkにはちょっと不思議なところがあります。 たとえばZend_Formのデコレーター。これ便利ですごくいいんですけど、だからこそなんですが、デコレーターっていう名前にしていて、開発者ブ…

Zend_Application(1)

SVNに1.8のリリースタグが作られました。いよいよZend_Applicationがリリース待ちですね。 というわけで、試してみました。 マニュアル(英語版)はここでリリース済み、日本語版も間もなく出る?でしょう。ファイルリストはこんな感じ Application.php Appli…

第1回Zend Framework勉強会@Tokyoに参加してきました

発表のダイジェストはlllnorikolllさんがまとめて下さってますので、私は雑感を。まとめじゃないです! 携帯対応とか 携帯対応については、いくつかの現場で体験してきたので、今回の発表はよくわかりました。 全部SJISで自社サーバ環境ならSET NAMESじゃな…

Zend_Formを使うなら

Zend_Formについて、ZFのメイン開発メンバーの一人、[Matthew Weier O'Phinney]が連載を開始しているので、要チェックかもしれません。 第1回はシンプルなデコレーター、第2回はデコレーターをレイヤー化して適用する方法が書かれていますね。 http://weie…

FlexとZend_Amf

VBAとか、軽視されるケースが結構あるけれど、Webフレームワークといっても、いまだにACCESS98のレベルにすら到達していないっていう気がしなくもない(って何がw) そういう意味ではクライアントインターフェースをお手軽に提供するFlex連携は必須技術の一…

Zend Framework勉強会に参加します

明日、日頃からお世話になっているZend Frameworkさんの勉強会が開かれるので参加させていただくことになりました。 勉強会というものに参加したことがないので、とんでもない勘違いをしていないか、ちょっと心配です。とりあえず、持ち物はデジカメとビデオ…

Reflectionに対してcall_user_func_arrayは使えない??

PHP

ReflectionFunctionを併用して関数の遅延評価をテストしていたのですが、思わぬ挙動に・・・ ReflectionFunctionの基本動作の確認 invoke('/php/i', 'PHP is the web scripting language of choice.') ); //int(1) 関数を動的に与えるのはちょっとキモイです…

複数サーバー間セッションにZend_Cacheを利用する

Zend_Cacheのバックエンドmemcachedはとても便利ですね。請負で常駐で入って昨年3月にリリースされたサービスでも使いました。設計からリリースまでほとんどの作業をこなしたのですが、そこでは、会社の方針でPHPセッションは使用禁止*1、スケール目的にフ…

echo "test"; exit();

存在しないコントローラーへのリクエストをテストしていたのですが、なぜかエラーコントローラーからのレスポンスが得られなくなっていました。例外が投げられることもなく、画面が更新されないという現象に悩まされました。 同じURLをZend Debuggerに通して…

リクエストに対するフィルター・バリデーションについて

リクエストに対するフィルタやバリデーションを実施するのに、たとえばZend_Formを使っている分にはZend_Formに設定するフィルタやバリデーションを使えるからよいのですが、それ以外のデータについてはどうでしょうか。 Zend Frameworkでは、リクエストのバ…

素潜りな3月

成功と失敗 失敗プロジェクトに参加すると「そこは無理筋だったなぁ」とか「ここはあぁすればよかった」とかいう反省が生まれてきます。フリーのエンジニアとしては、サービスの要件定義部分から関与できるケースは少ないので、デスマーチな状況に入ってから…

Zend_Cache_Backend_Fileの限界点

ZendFrameworkのファイルをバックエンドとしたキャッシュは他のコンポーネントや拡張を必要としないのでお手軽に実施できます。 ただ、キャッシュエントリーが多くなるとキャッシュのクリアーなどで若干問題が発生するかもしれません。 複合的な要因で発生す…

そういうのを遅延ロードとは言わないのでは?

nullを返さないためにgetterで初期化するのはありだけど、初期化するためにgetterを呼ぶのは違う気がする。

既存システムにページキャッシュを入れてみる

既存CMSで構築されたシステムを移植する作業中なのですが、急ぎ負荷問題だけ解消しておきたいサイトがあったので先行してキャッシュだけ導入しておきました。 Zend_Cacheのページキャッシュが適用できるようなサイトならこの作業は数分で済みます。オプショ…

simplexml_load_file simplexml_load_string

simplexml_load_fileで、ちょっとん?だったのでメモ。ZFのissueに上がっていたのですが、今は見失ってしまいました・・クローズしたのかもしれない。 ほぼ同じ構造のドキュメントですがZend_Config化すると$config->files->file->id等で値を取得しようとし…