ログ日記

作業ログと日記とメモ

PHP

Rhacoのimport関数が気になる

svn co https://rhaco.svn.sourceforge.net/svnroot/rhaco/trunk rhacoとしてRhaco::import()の中を見る。特別なことはやってない感じ。 あぁ・・そうか、納得した。

momijiを使ってみる

続き。 pear install momiji/Momiji_generator-alphaコマンドを使えるようにして、適当なプロジェクトディレクトリを作る。 cd public_html mkdir momiji cd momiji momiji webappsmartyは入れていないので--smartyオプションは無しでやってみる。 cd webapp…

環境依存の実装

PHP

exec('ls', $output);とかやりたいんだけど。 ってかやってて初めて気付いたんだけど、Windowsの開発環境だと当然動かない。 テストサーバで確かめようにも、コミットしないとテストサーバに反映されない。 PHP: Filesystem - Manualとか使う?でもやりたい…

mapleぽいフレームワーク

id:reverielaby さんが公開しているのに気付いた。 http://www.momiji-project.org/ こういう色んなセンスが欲しい・・。 取り敢えずインストール pear discover-channel pear.momiji-project.org pear install momiji/Momiji-alpha http://www.momiji-proje…

初心者にお勧めできない言語、PHP

PHP

twitter経由で ギークなお姉さんは好きですか これを見て、PHPでギークはないだろう・・と思っていたら既に他の人が書いてた→Geekにコンパイルされたい女子がPHP勉強してるらしい - 日記を書く [・w・] はやみずさん よく見てみると本当の目的はhttp://blog.…

日経SYSTEMSにmapleの記事があった

PHP

3冊ぐらいまとめ流し読みをしたので最新の分じゃないけど10号にmapleの記事があった。 mapleに詳しくない人はよく分からない記事なんじゃないかなーと思いつつ。 しかしプロジェクトは停止していても、ちゃんと実績があるんだね。 もう完成型ってことなのか…

運用後のエラーをどうするか

PHP

テスト漏れがあった場合、ユーザが利用中にPHPのエラーが起こる。 その場合どうするか考える。 もちろんwebに生のエラーを吐き出してはいけない。 手っ取り早いのが set_error_handler() を使って全てのエラーを捕まえる。 そうしておいてログに書いたりメー…

リクエスト変数を、アクションクラスのフィールドやリクエストクラスのメソッドで取得するメリット

PHP

値のチェックをまとめられるとか、構造がまともになるとか色々あるけれど、さっき実感したのはコレ。 E_NOTICEがでない。 普通に

チェックボックスの操作でsetValue(true)としてはいけない

勘違いしてた。 setValue(true); でチェックがオンになるんじゃないんだな。動いてたのは偶然。 flexy内部では attribute['value'] == $value){ $this->attribute['checked'] = true; } という操作が行われている。 どういうことかと言うと、idでエレメント…

DBから取得したデータを一度に沢山表示する場合の高速化

PHP

Webサーバが一台の場合はPHPが処理するよりもデータベースで処理した方が早い。 あと絶対的な時間。例えばPHPで計算して一ページ表示するのに1秒かかりDBで計算して0.1秒かかる場合は、Webサーバが複数あってもどっちにロジックを持って行くかは考えもの。PH…

配列の扱いと$thisを返すメソッド

PHP

val = array_merge($this->val, (array)$val); return $this; } } $a = new A; $a->add('aaa') ->add('bbb') ->add(array('ccc', 'ddd')) ->add('eee'); http://cgi39.plala.or.jp/klove/w/k.cgi?page=Diary%2F2007%2D6%2D6 これいいな。やってみようかな。 …

公式サイトでも.inc拡張子使ってるのか

ソース見えてる・・。 外部からWebサーバ越しに見るためにわざと?

mb_send_mail()でそこそこまともなメールを送る

PHP

PHPのバージョンが変わるとハマったのでメモ。 参考は超・極める! PHP作者: 秋元裕樹,市橋一宣,大垣靖男,小山哲志,上鍵忠志,高橋邦彦,田中正裕,月宮紀柳,鶴岡達也,鶴岡直也出版社/メーカー: 翔泳社発売日: 2006/05/18メディア: 大型本 クリック: 58回この商…

例外を使い分ける

PHP

どうやらExceptionがいっぱいあるみたいなので・・ いつの間にかExceptionの種類が増えてた - Do You PHP はてなgotoみたいな使い方の部分、アプリのエラー、などで使い分けてみる。 getVo($where)) throw new ErrorException('db error'); calcValue($vo); …

toHtmlnoClose()は遅い

メモ。 フォームが数個なら問題ないが、テーブルの一行に一個のフォームがある形式だとフォームタグに flexy:ignore を入れるとだいぶ早くなる。

高速化

PHP

メモ。 http://labs.unoh.net/2006/05/phpweb.html ここと Zend Optimizerインストールメモ こっちで書いてることが違うんだよなぁ。。 取り敢えず両方入れてみた。一応eacceleratorのoptimizerは外す。あとは様子見。

日本語ページでMyZend登録が出来ない

PHP

なんか登録できない。 エラー 処理が正常に終了しませんでした。 なんだこの不親切なエラーは。 仕方がないから本家のzend.comに行く。 こっちはzend.co.jpに比べてまともな作りになってるぽい。

barcode.phpのnoticeエラー

PHP

http://scripts.ringsworld.com/education/phplibrary-v1.0/library/barcode/barcode.php.html これの一番最後。 mImg); } $objって何?ということで勝手に$thisに変更。 最新版では直ってるのかな・・何かレポート送っといた方がいいのかどうか、ちょっと忙…

綺麗に書くと分かり難くなる、かも

PHP

下に書いたようにするとすっきりするんだけど、一ヶ月後に見たときに処理が一瞬で分かるだろうか。 foreachを使って3行程度で書いたら一目で分かるが、create_functionしてると理解するまでに数倍時間がかかるような。数倍って言っても秒単位だが、あちこち…

引数に関数を渡したい

PHP

配列のオブジェクト全てが有効かどうかをチェックする関数があるとする。 status == SLEEP){ return false; } } return true; } function isSleep(Array $objs){ foreach ($objs as $obj){ if ($obj->status == ACTIVE){ return false; } } return true; } …

なんだかんだでもうすぐ15000行

三日間ぐらい全然進まなかったけどちょっと引っかかりが解決したので進み始めた。 自分が二年前のレベルでフレームワークも無かったら3万行ぐらい無駄な記述をしてるんじゃないかと思う。 フレームワークは趣味的に作ってたけどだいぶ役立ってる。AOPまで手…

PHP5.2では実装済みのinterfaceを多重に実装できないらしい

PHP

http://blog.xole.net/article.php?id=589 via: http://d.hatena.ne.jp/shimooka/20070820/1187565051 $ php -v PHP 5.2.0-8+etch7 (cli) (built: Jul 2 2007 21:46:15) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2006…

テンプレートにスコープ解決演算子が欲しい

例えばこんなの。 get('item'); $item = $itemDao->getVo($this->itemId); $this->oldItem = clone $item; // $item->itemValue = 'old value'; if (!ItemChanger::change…

DBのテスト

PHP

スタブ(?)を作らずに実際のO/Rマッパーを使いつつテストを書く方法で今のところ大丈夫。 これだとさくさくテストが書ける。 というわけで、トランザクションを開始位置を根こそぎアクションクラスに移動中。ついでに引数の受け渡し方もテストしやすいもの…

DaoとVo

PHP

初めに参考にしたページの影響で、DBのデータはvalue objectで保持している。 でも共通クラスに渡すための引数が someFunction($valueObjectA, $daoA, $valueObjectB, $daoB, ...) みたいになってしまう。 いっそのことvalue objectからdaoを参照できるよう…

Zend Framework

消えたorz書いてる途中にブラウザが落ちた・・。 がんがって思い出して書こうorz コメントを貰ったからZend FrameworkをDLしてみた。 バージョン1.0.0が出てるのを知らなかったorz 前にちょこっと読んでいて手元にあるやつは0.1.3だから中身は全然違うようだ…

DBが絡むテストとトランザクションの開始位置

PHP

データベースに作用するクラスの単体テストって普通はどうやるんだろう? 初めはテスト用のDaoクラスを作ってDBに接続せずに固定のオブジェクトを返すようにしてたんだけど、それを作るのが段々面倒になってきてやめた。 O/Rマッパー自体もテストしているん…

singletonの使いどころ

最初にmapleを参考にしただけあって、LaizではDIContainerでフレームワークのコアクラスが管理されている。 で、Javaみたいに万能なコンテナだったらいいんだけどもPHPだし簡単な機能のみでいいやーって思ってたからコンポーネントは全てsingletonになってい…

iniファイルでの変数

PHP

PHP: Runtime Configuration - Manual PHP 5.1.0 以降、ini ファイル内で既存の ini 変数を参照することが可能です。 例: open_basedir = ${open_basedir} ":/new/dir" なんですと!? こういう機能があるのを知っていたらメソッドの戻り値を設定ファイルで…

PDOでfloatを取得する場合はstringになる

PHP

bindParam()の問題に気付いて、ちゃんと型を指定するようにしてたんだけど・・。 PDO::PARAM_FLOAT という定数は無い。今頃気付いた。 どういうことかというと、doubleやfloatなど小数点を含む数値は全部string型と判断される。 びっくり。 intが分かるならf…