php
例えば、アクションで次のように値が設定されている場合、 stash['name'] = array('yamaoka', 'hiroyuki'); $this->render(); } } テンプレート内でnameっていう名前のinput要素をhelperで作るとこうなってほしい <input type="text" name="name[]" value="yamaoka" />
ある程度中身の実装ができるとあとはviewヘルパーがほしくなる。どういうふうに使えるといいんだろ。 inputText('yourname', array('id' => 'yourname')); ?> こんな感じにヘルパーのインスタンスをテンプレート内で使えるようにすればいいかな。それにして…
あまり考えずにMoony_Logger_FileとMoony_Cache_Fileのクラスを作ってみた。それぞれ、テキストログを出力するクラス、ファイルキャッシュを行うクラス。 info('this is a message'); Moonyの各クラスをロードするためのstaticメソッドを「import」と名付け…
http://labs.unoh.net/2008/04/doctest-for-php.html 書きました。PHPのコアな人には今さらっていうような内容でも、もっと初心者に近い人に紹介すると言う意味で書くことが多いかも。>ウノウラボそういう橋渡しって必要だと思うんだよなぁ…。
SQLite用のDaoをごにょごにょ書いた。こんな感じで使う。SQL書きたい人なので、自分オンリーの場合はDaoを用意してSQL渡すのが好き。 connect($dbFileName); $result = $dao->query('select * from foo;'); で、SQLite関数のマニュアルを見ていると、気にな…
要するに、クラスにして「/*** 〜 */」の形式でテストを書いておけばrhacoのDocTestが使えるってわけだ。テストツールとしてrhacoを使うってのは割とありだな。rhaco++
Moonyは基本的にwebフレームワークとしての機能しかデフォルトでは提供しないようにしようと思うんだけど(O/Rマッパーとかいらない)、webサイト作るときにこれもほしいなーって機能は割とある。簡単なDaoクラスとか、キャッシュを取り扱うようなクラスとか…
【告知】PHP Framework Fight! (仮)開催告知 - 肉とビールとパンケーキ by @sotarokが気になってる。追記: 捕捉早すぎるw>id:sotarok
個人的なMagickWand for PHPのメモ。画像をリサイズして小さなサムネイルを作る場合、ただリサイズしただけだとJpegのEXIFデータとかが残ってしまう。不要な場合、次の関数で削除できる。 MagickStripImage 画像のヘッダに含まれるプロファイル情報とコメン…
ジョブキューにやりたいことを溜めておいて、まとめて何かを処理するということを考えてみる。MySQLのテーブルにキューを蓄積、cronで定期的にプログラムを走らせればいいのだろうけど、もうちょっとスマートなやり方がある気がする。JavaだったらMQとか使う…
なんかViewヘルパー的な関数をMoonyでいろいろ作ろうとしてたけど、php_speedyでいいんじゃないかと言う気がしてきた。組み合わせて使う感じで。テンプレート描画部分も任せちゃおうかなぁ…。
大学のとき、配布されていた掲示板のスクリプトを改造しようとしたのね。改造候補としていくつか見てみたんだけど、PerlのCGIスクリプトはぱっと見何がなんだかわからなかった。それに比べると、ブランケット(中括弧)で構文が書かれているPHPの方がわかり…
Moonyにはデフォルトテンプレートという仕組みがある。まず、アクションクラスのrenderメソッドの引数としてテンプレート名が省略された場合、デフォルトテンプレートが自動的に使われるようになってる。アクションクラスが「Foo_Bar」だったら、「foo/bar.p…
自分が利用しているVOクラスの特徴。 VOクラスは自動生成 クラス名はVOによって変える クラス名からフィールドが確定する PHPでもVOを使う - ログ日記 そこまでルール付けがなされているのならVOもいいかも。データ構造の塊として見た場合、連想配列だと何が…
PHPで何か作るとき、ValueObjectとかDTOとか基本的にいらないと思う。データ構造だけを持ってるオブジェクトなんて意味がない。ふるまいまで自分でわかってる子なら意味があるけど。ただのデータ構造なら、連想配列で十分だよねとか思ってしまう。
PHPのtrigger_error関数ってすごいのではないか。
やっぱりMoonyはPHP5のみ対応にすべきだろうか。悩む。例外が使えると便利なことは確かなので。クラスのプロパティとかほとんどpublic扱いにするけどな!
Mapleの復活騒動(?)を傍から見ていて思ったこと。いつの間にか開発が停止して放置されてたのに、いきなりUsagi Projectとコラボレーションとか言い出しててよくわからない。活動の再開はすごくうれしいニュースなのだけれど。個人的には、DIコンテナの取…
よりシンプルに第2弾。テンプレートview関連のソースを1ファイルにまとめた。Moony_Viewクラス(phpテンプレートを扱うだけのクラス)を記述したファイルに、直にヘルパー関数も定義。一箇所にまとめてしまうことに。疎結合じゃないけど小さなフレームワーク…
会社の合宿で作ってみたMoonyのプラグイン機構だけど、取り外すことにした。何か煩雑になりすぎる気がしたし。必要ならMoony_Actionのサブクラスで実装してそれを継承すればいいし。できるだけシンプルにしていこう。
今悩んでるのは、validationをexecuteメソッド内でどう書けるようにするのがわかりやすいかということ。設定ファイルとか使いたくないし。 validate( $this->name, 'required', '名前は必ず入力してください'); if ($this->error()) { $this->output($this->…
URLで渡された(PATH_INFO)パラメータは、素直にexecuteメソッドの引数として受け取れるようにした。
出力エスケープはテンプレートでやる派です、今のところ。
んー、assignメソッドとかいらない気がしてきた。どうせ連想配列に入れるんだし。 stash['bar'] = 'baz'; // $this->assign('bar', 'baz'); 今まで $this->render(); } } あ、stashっていう変数名はCatalystから拝借。
MoonyでSpeedy HTML Template Utilitiesを使うのはどうだろう、と考えていたら、もうZend Frameworkで使えるようにしている人を発見。仕事早いなぁ。 http://www.revulo.com/ZendFramework/Component/Speedy.html まぁいずれにせよ、Speedy HTML Template Ut…
Google Codeのwikiにちょっとずつ書いていくことにする。 http://code.google.com/p/moony/
新版Moonyのはじめかた(localhostで開発する場合)。 http://code.google.com/p/moony/ からコードをチェックアウト ApacheのDocumentRootにindex.phpを作成 actionDir = 'actions'; $moony->templateDir = 'templates'; $moony->start(); actions、templat…
プログラミングも表現の一形態であるならば、色々な書き方ができることが重要なのかな、と。道具としての効率性、という面だけから考えると、皆が同じツールで、同じ書き方、できるだけ再利用して作る、というのがよいように思えるけれど、逆に多様性を重視…
テンプレートで文字を出力する用。
Moonyのリポジトリとかプロジェクトページとか、Google Codeに移行しようかなと思ってます。とりあえず試用中…。http://code.google.com/p/moony/