ログ日記

作業ログと日記とメモ

PHP

お仕事

PHP

「小規模でも大規模でも使えるフレームワークを作る!」とか思いながら、今までは数ページのwebしか作ってなかった。 一年以上の間、特に作る物がなかった。 そのおかげでHaskellとかJavaScriptとかで遊ぶ暇があったわけだが。 そのせいで(?)今まで溜まっ…

ふと思うこと

PHP

extension版のHTML_Template_Flexy作りたいなぁ。 パーサとかさ、PHPでやるもんじゃないと思う。 かと言ってCで作りたいとも思わないんだけどね。 # 実際パーサはC#で書かれているんだが。つーわけで、作者はCが分かるんだからextension版も作ってくれたらい…

リファクタリング

二日前に なので取り敢えずgetColumnMeta()して型情報を設定するようにしてみた。 と書いたのに全部直せてなかった。三カ所に処理が分散していたのだ。 なので、ひとつにまとめようとリファクタリング。微妙に1,2行違っていたりしてちょっとめんどくさかっ…

PDOのPDOStatement->bindParam()では自動的に型が判別されない

PHP

全てにおいて、じゃないかもしれないが、postgresqlのint型はPHPのint型になってくれない。三番目の引数に型情報を設定する機能があるけれど、それを設定しなくても自動で判別してくれるものだと思ってたら違ったみたい。 普通に配列として取得するようにfet…

Emacsの設定

PHP

emacsのアウトラインモード設定。 PHP5用にちょっと付け足していたのでメモし直し。EmacsでPHPを書くときのアウトラインモード設定 - より良い環境を求めていつの間にかPHPを書くにはまずこれを設定しないとやってられないほどになってきた。 あとデフォルト…

assert()必要?

PHP

phpらしくない(?)関数、assert()。 使うかどうか考え中。メリットが処理速度ぐらいしか無いのなら、適当にエラーハンドラを定義した方が便利な気が。 オブジェクトがnullかどうかのチェックでassert($obj)は変だしな・・数値計算で使うぐらいかなぁ。 で…

mapleな人を発見した

かなりmapleいじってるぽい。 http://d.hatena.ne.jp/reverielaby/20070514#1179157604 これは良いな。 [filter] loginRequired = LoginRequiredと書いてフィルタを作るよりも便利な気がする。 あぁー・・mapleだと[SessionValidate]の設定はSessionValidate…

round()

PHP

PHPのround関数の謎が少し解けた - hnwの日記 一応Debianのsargeとetchのパッケージ版でも試してみた。 $ php -v PHP 4.3.10-18 (cli) (built: Nov 3 2006 21:56:29) Copyright (c) 1997-2004 The PHP Group Zend Engine v1.3.0, Copyright (c) 1998-2004 Ze…

続・PHPに一言

PHP

おとなり日記に反応してみる。 PHPの悪いところを否定してみよう。 PHP村で完結しちゃってるんだよね。 PearにしてもPHPで全部作られているし、拡張するにもC言語から作ろうというPHPerは数少ないかもしれない。Peclは使う気がしないし。 CやJavaなら完結し…

PHP使ってる人として何か書いとこう

PHP

昨日PHPでCLIを書いた日記を書いたところに・・タイムリーな記事が。って日付を見たら私の方が後に書いたのか。 別段新しい意見じゃないが有名人が書くと反応が凄い。404 Blog Not Found:そろそろPHPに関して一言いっとくか しかし、PHPではプログラマーがプ…

例外処理を使いたくなってきた

PHP

単純なものなら

フレームワークの利用状況

PHP

symfony 6 (4%) Ethna 27 (19%) Zend Framework 11 (8%) Piece Framework 1 (0%) CakePHP 18 (13%) Mojavi 4 (2%) Maple 1 (0%) 上記以外のフレームワーク(自作以外) 8 (5%) 自作のフレームワーク 30 (22%) 使っていない/使ったことがない 30 (22%) 合 計 …

PHPの終了タグは書かない方がいいらしい

PHP

php-usersで流れてた。 http://framework.zend.com/manual/ja/coding-standard.php-file-formatting.html PHP コードのみからなるファイルでは、終了タグ ("?>") は決して含めてはいけません。終了タグは、PHP には必要ありません。 終了タグを省略すること…

PDOのデッドロックでハマる

PHP

http://php.net/pg-connect 同じ connection_string 引数で 2 回 pg_connect() 関数がコールされた場合は、 connect_type に PGSQL_CONNECT_FORCE_NEW を指定していない限り 既存の接続が返されます。 今まではこの動作のおかげで気軽に接続リソースをオープ…

データの受け渡し方

PHP

[rakuten:book:11969684:detail] 途中まで読んだ。 で、今頃mapleのチェーンはChain of Responsibilityパターンなのかな・・と。でも若干違うような。チェーンを次に移すコードが散らばってた気が。 今はフォームデータの受け渡しに悩んでる。 ajaxか何かでt…

引き続きPiece Frameworkについて

昨日書いたPiece Frameworkの作者は iteman's blog ここの人だったのか。 そんでNet_UserAgent_Mobileの作者だったのか。そういえば何ヶ月か前に知り合いがPieceの作者と話したとか言ってた。めっちゃ聞き流してしまった。気さくな人だったとか。 前は画面遷…

ログイン処理がめんどくさい・・

PHP

解答:まちがった自動ログイン処理 – yohgaki's blog ここを参考にして一応できた。 どのページからでもログインできたり、どのページからでも自動ログインできたりということを考えるとクッキーのpathとか設定できないな。 自動ログイン時に前回のセッショ…

ajaxめんどい・・

簡単な例だとnumber_format()とか。 PHPで数値とnumber_format()後の文字列を出力して、JavaScriptで計算が必要な場合はnumber_format()に相当する処理を加えて・・。 こういう両方に必要な機能をつけていくのは地味でめんどくさい。 flexyで {if:flag} <div class="highlight"> {el</div>…

現実逃避中。。

guessworkのメモ。古いけど。 http://www.sooey.com/journal/2005/12/19/78/ http://www.sooey.com/journal/2006/07/26/112/ Flexyで検索して出てきた昔の記事を懐かしみながら読んでた。 最近の人はFlexy使わんの?というかテンプレートの議論よりもフレー…

キャッシュ無しのページのファイルダウンロード

PHP

取り敢えずコピペしたらできた。 CSVのダウンロード ここの header("Content-type: application/x-msexcel-csv"); header("Content-Disposition: inline; filename=hoge.csv");この部分を header("Content-type: application/octet-stream"); header("Conten…

parse_ini_file()とinclude_path

PHP

PHP5のparse_ini_file()はinclude_pathを見るの!? 今まで気付いてなかったorz もう独自拡張したparse_ini_file()を使わなくていいのか・・。 標準関数にぼちぼち戻していこう。 念のためにソースを確認。 /* Zend/zend_ini_parser.c */ ZEND_API int zend_…

kaedeソース探索

迷ったあげくフレームワーク基本設定の読み込みクラスを作ることにした。 その前に、kaedeは定数を使わないようにするというのを思い出して、参考に眺めてみる。ディレクトリ構成 Core DI Reflection Util data tests非常にすっきりしている。Coreではなくて…

staticメソッドについて

PHP

belution.com JAVAにおけるstaticメソッド - QA@IT あぁーーこういうことに悩まなくていいからPHPが好きなのに、なんでこんなに考え込んでるんだろうorz 文字列を受け取って加工して返却するメソッドはstaticでいい。 文字列を受け取ってクラス内の設定に基…

Webアプリ - メーラー

GUIのプログラムってまともに書いたことないんだよね。2000行ぐらいしか。 Visual Studioでスケルトン使わずに書いたから純粋にコード全部自分で書いた。このときから他のフレームワーク使うのが苦手だったんだな。 そのおかげで(?)イベントハンドラも少…

URLと実際のファイルのマッピング

PATH_INFOなどを利用するフレームワークを使った場合、URLとテンプレートファイル名の関連性が薄くなる。 今の環境ではこれが問題になることが多い。 例えば「ログイン後のHTMLを修正したいけどそのファイルはどこ?」と聞かれたり「htmlをアップしたけど反…

kaedeについてメモ

以前のエントリに反応をもらいました。 http://blog.hawklab.jp/item-111.html PEAR_ErrorStackならpushメソッドで配列が使える他に、ContextCallbackを使うことでエラー発生元とは無関係な情報を持ってくることもできる。フレームワークで言うと、エラー発…

kaedeの全貌が!?

[Maple-dev: 256] Kaede(仮称)プロジェクト長いけど引用 クラスの命名規則をPEAR準拠に エラー処理の標準化(PEAR_ErrorStack) メッセージリソースの外部化 単体テスト実施の徹底 フレームワーク設定の非定数化 DIContainerの機能強化 Scarletのサブセッ…

O/RマッパーとビューをトリガにしたイテレータでDB接続

$map = array('voPropertyName' => 'tableColumnName', ... ); という配列があるとき $bind = array(); // $stmt = PDOStatement foreach ($map as $key => $value){ $binds[$key] = $$key = null; $stmt->bindColumn($value, $binds[$key]); } このようにbi…

PDOStatement::bindColumn()で複数行取得

PHP

O/Rマッパーで $stmt->bindColumn('columnName', $vo->$propertyName) とやってDBから一行取得するのは問題ないんだけど、複数行取得したいときに困った。 感覚的には $vos = array(); while($stmt->fetch(PDO::FETCH_BOUND){ $vos[] = clone $vo; } return …

アクション名、階層

Foo_BarとFoo_Bar_Baz(Foo/Bar.phpとFoo/Bar/Baz.php)を同時に使う状況。# 読みにくいな・・ Members.php Members.ini Members/default.ini Members/Top.php Members/Top.ini Members/Menu.php Members/Menu.iniここでMembersアクションはMembers_Topに転…