ログ日記

作業ログと日記とメモ

PHP

autoloadをrequire_onceと同じように動かすためにはdebug_backtraceを使わないといけない?

PHP

読み込むファイルはまずカレントのワーキングディレクトリからの相対パスとしてinclude_path で探され、それから、カレントのスクリプトのディレクトリからの相対パスとしてinclude_path で探されます。 例えば、include_pathが librariesで、カレントの ワ…

PHPでTracのようなプラグインの仕組みを作る

PHP

Pythonを知らずにTracを触ってたので気付かなかったけど、Tracのソースに書いてあるInterfaceとかimplementsっていう仕組みはTrac独自なんだね。 だから自由にInterfaceの挙動を操作できる。 Interfaceが組み込みでも、リフレクションを使えば似たものが作れ…

Possible integer overflow in memory allocation

PHP

HTML_Template_Flexyでエラーが出た。 メモリを指すintegerポインタがオーバーフローした? php.iniのメモリの設定は関係ないみたい。 今まで出なかったのに新しいDebian etchを入れたマシンだと出る。 そういえば今まで使えてたpukiwikiでもエラーが出たこ…

タイプヒンティングとインターフェース

PHP

リンク元見てたら「php インターフェース タイプヒンティング」の検索が多数。 どこかで盛り上がっていたんだろうか…。 http://d.hatena.ne.jp/n314/20070128/1169999488 この辺の動きも今では何となく定まってきた。

PHP5.3のnamespace

PHP

メモ。 +1 means the separator is not affected negatively by the criteria +-0 means that the separator is only moderately affected by the criteria -1 means the criteria is severely affected by the criteria critieria \ ** ^^ %% :> :) ::: typ…

spl_autoload は LogicException を throw する

PHP

メモ。 spl_autoload_register を引数なしで実行すれば、spl_autoload が指定される。 で、spl_autoloadはクラス名に拡張子.phpと.incを付けて探してくれるので、これをそのまま使おうかなーと思ったのだが。 spl_autoload_register でいくつも関数を登録す…

flexy改造動画

巷では1000人スピーカプロジェクトというのが流行ってるらしい。 そっち方面のことはあまり知らなかったんだけど、flexyの話が出るということなのでちょっと調べてみた。 もう3回目になるんだね。 http://ja.doukaku.org/wiki/index.php/1000speakers phpLex…

久しぶりにflexyキーワードを見てみると・・

何気なく HTML_Template_Flexy のキーワードを見ていたら、パーサを解析している人を発見した!http://d.hatena.ne.jp/maru_cc/20080316/1205690507 どうやら2005年からTokenizer.lexをいじる日本人は増えていない模様。 私の場合はloop作ってid属性の動作変…

バグ修正がむずい

PHP

最近あまりPHP書いてない。 タスクの付箋が溜まってきた。 あとエラーメールも溜まってきた。 PHPのエラーをメールで送るようにしているんだけれど、Noticeの再現に困る。 たまにしか起きないっていうくらいだから、ある特定の状態のときに特定の操作をする…

flymakeで構文エラーをリアルタイムチェック

PHP

C用の設定はしていたのでPHP用の設定も追加。 emacs22以上だとflymakeがデフォルトで使える。 debianなので flymake-php.elの該当部分 をコピペして /etc/emacs/site-start.d/100flymake-php.el などに保存。 Shift-Cが入力できなくなるので、下記行をコメン…

flymake + php

PHP

メモ。 http://www.blik.it/2007/02/21/syntax-checking-for-php-in-emacs/

twitter API を利用してタイムラインを表示する3行のPHPコード

PHP

user->name . '<br><img src="' . $line->user->profile_image_url . '"><br>' . $line->text . ' [' . date('m-d H:i:s', strtotime($line->created_at)) . ']

PHPを使う人達

PHP

世の中には「自分の経験の枠組みは不変のもので自分には手が届かないものだ」という信念の人もいて、「変えられる」派と「変えられない」派は、時に深刻な対立を引き起こす。 「変えられない」と考える人は、言語の仕様に理解できない所や納得できない所があ…

自分がPHPを使うときの注意点

PHP

なるべくZend Framework PHP標準コーディング規約を使う アクションクラスとか使い捨てな場合は適当なこともある 内部コードはUTF-8を使う テーブルの表示、javascriptとの連携、などが簡単になるので type hintingを積極的に使う 複雑な配列はなるべくオブ…

PHPすごいよ

PHPは駄目な言語なのか?のコメント欄初めはネタかと思ったけど、2割くらい頷ける部分もある。

なぜPHPなのか?

PHP

http://d.hatena.ne.jp/kunit/20080204#1202089330 色々考える。 何故PHPなのか・・って言うと、ずっと作り続けているからだろう。 今見直すと、2005年に考えていたことがベースになっている。 こんなに長期間同じ物を作り続けていたことって無いな・・と思…

mb_encode_mimeheader()のデフォルトは・・

PHP

※ 設定ミスでした・・解決しました。コメント参照。 mb_encode_mimeheader()の動作は、web上に曖昧な記事が沢山ある気がする。 デフォルトではmbstring.languageにJapaneseを指定しているとISO-2022-JPに変換されると書いてあったりするが、自分の環境で mbs…

いつもの

コメント欄から。 それよりも気になるのはPHPは * 自分を駄目だと思ってない(or 駄目じゃないと思いこもうとしている) * 他の言語から見て「駄目じゃない」方に進化する気がない のではないかという点です。 http://www.rubyist.net/~matz/20080126.html#p04…

特定ファイルのみphp5で動作させる

PHP

php4で動いている環境で、ちょっとしたページを作る必要があった。今となっては数ページの単純なフォームでもフレームワークを使った方が楽に作れるので、フレームワークを使うことにした。 しかしLaizはPHP5用に書き直したのでphp5を入れる必要がある。そこ…

O/RマッパーでのSQL文

PHP

自作O/RマッパーでSQLを実行できるようにしたんだけど、どうも使い勝手が悪い。 他のツールはどうなってるのか見ると・・ http://propel.phpdb.org/trac/wiki/Ja/Users/Documentation/1.3/BasicCRUD これはSQL文をそのまま書く場合。 http://s2dao.php5.seas…

PHPでもVOを使う

PHP

短いエントリに反応。 私も同じように思ってて、今は段々変わってきた。 PHPで何か作るとき、ValueObjectとかDTOとか基本的にいらないと思う。データ構造だけを持ってるオブジェクトなんて意味がない。ふるまいまで自分でわかってる子なら意味があるけど。た…

O/Rマッパーに疑似ビュー機能を追加した

今までDBにビューを作っていたものを、やっぱりDBをいちいち変えるのが面倒なのでormで対応することにした。 myview.sql に select col1, col2 from t1 %s order by col3 limit 1 こんなselect文があるとすると get(); $where = 'where col3 > ?'; // 実際は…

エラーをメールで飛ばす処理

PHP

エラーをメールで飛ばすと良いと書いたのだけれど、そう言われてもその処理を作るのが結構面倒くさい。 というわけで自分の書いたコードを晒してみる。 svn co http://laiz-source.googlecode.com/svn/Laiz/branches/TRY-3.0/laiz/error/ errorMailSampleフ…

クラスのフィールドを書く場所

PHP

素朴な疑問。

バグを直していて思ったこと

PHP

基本的なことだけど自分でもたまに忘れることがある。 そしてバグの元になる。 失敗する可能性のある処理はチェックを行う $value){ ... ついつい気軽に使ってしまうforeach文。ユーザの入力を使う場合に限らずチェックし…

クラスの定義方法メモ

アクションクラスに関しては、何やらsymfonyのアクションクラスが良さそうな雰囲気。 マニュアル眺めただけで使ったことないけど。 バリデータは大抵のフレームワークで1バリデータ1ファイルになってる気がする。 個人的には数行の処理のためにファイル作る…

流れるような・・・

PHP

property( 'mornig', 'おはよう') ->property( 'afternoon', 'こんにちは') ->property( 'evening', 'こんばんは') ->method( 'setDecoration', array( '!')) ->target; インスタンス生成を流れるようなインターフェイスで - id:anatooのブログ これいいな。…

独り言

[PHP-users 32994] PHPにてファイルをダウンロードしたいのですが・・ ※メーラーで受信していないと文字化けで読めない これに対して途中まで返信を書いてたんだけど、どうも根本的なことを分かってなさそうなので保留。

mapleに欲しい機能

PHP

なんだか欲しい機能をみんなが出してるよ! 2007-12-03 - kunitの日記 ということで私もちょっと考えてみる。 でも色んな意見聞き入れるのも大変だよねぇ・・。 そろそろ自作フレームワークをやめて他のに移りたい。最近はもう根っこの部分をいじることは無…

自作フレームワークの機能を書いてみる

実際に使用する事を考えると少し考慮しないといけない部分がある。PHP5でのタイプヒンティングはプリミティブ型には対応していない事。array型はPHP5.1で導入されたけどオブジェクトのみが対象なので、文字列等を使われないようにする必要がある。あと、例に…