日記を移動します

http://d.hatena.ne.jp/n314/ 今後はあっちで書こうかと。 こっちはビジネスアカウントなんだけれども、もうビジネスアカウントで居る意味が無いようなので・・。 この場合はアカウントを2つ持っててもいいはずなので、こっちはしばらく置いときます。

少し古い記事

http://nosa.cocolog-nifty.com/sanonosa/2006/05/post_f04c.html 「どんなことでも10年継続すれば1人前」というような言葉がありますよね。まさにその通りで、10年も継続した人には付け焼き刃的に身につけた人にはない貫禄があります。一方、器用貧乏な人は…

parse_ini_file_ex()

PHP

ちょっと正規表現使いすぎかも・・もう少し簡単にできるかもしれない。 function parse_ini_file_ex($file){ if (!$lines = file($file, 1)) return false; $res = array(); $curr = & $res; $sectionPattern = '/^\[([^\]]+)\]/'; // キーに記号を使いたい…

拡張(縮小?)parse_ini_file()関数

PHP

/** * parse_ini_file extension * * @param string $file * @return string[]|false * @access public */ function parse_ini_file_ex($file){ if (!$lines = file($file, 1)) return false; $res = array(); $curr = & $res; $sectionPattern = '/^\[([^\]…

グローバル関数

ネームスペース代わりのクラス、例えば if (!LaizUtils::file_exists($path)) return false;みたいにやった方がいいのかな。 関数が増えてきたら標準関数拡張用クラスを作ってみようか。。

parse_ini_file()

PHP

単純な関数でも意外と知らないことが多いな・・。 parse_ini_file()はinclude_pathを見ないのね。 ということで http://d.hatena.ne.jp/hawkring/20050617/1119009631 を参考に include_path を考慮したparse_ini_file()を用意しようかな。 今となってはpars…

Debianでのpearのインストール先

PHP

hawklab.jp 分かり易いなぁ。 Mapleをインストールしたらmapleコマンドが/usr/bin/にインストールされた。 なんでこんな場所にって思ったけど、パッケージで指定してあるんじゃなくてDebian特有なのね。。

ハマりどころ日記になってなくもない

PHP

@(エラー制御演算子)でエラー抑制っていうのは、関数実行の直前にerror_reportingがゼロに設定されて関数を抜けた後に元の値に戻る。 ユーザ定義のエラーハンドラを使ってる場合は注意。 初めて気付いたけどincludeなどでファイルを読み込むとき、include_pa…

include_path

開発中のmapleを参考にしてinclude_pathを柔軟にしてみる。 mapleのディレクトリ構成だと webapp/core でコアを書き換える。Laizの場合はコアもwebappも共用(?)したいのでこの方法がうまくいかなさそう。 なのでディレクトリ構成を laiz/core laiz/webapp…

どこまでテストを作るか

テストファーストはいいんだけれど、全ての関数にテストを作るのはどうなんだろう。 例えばvalidatorクラス。 これはほとんど実装部分の処理は無い。 数値かどうかを確かめる関数は function isNumeric($a){ return is_numeric($a); }これだけ。これはそもそ…

改造版Flexyのアップデート

flexyのバージョンアップに追いついてなかったのでフレームワークのバージョンアップのついでにFlexyのパッチも作ってみる。 ついでと言うほど簡単ではないが・・自分の書いたNishimura's Siteこれがかなり役に立つ。 一応 Tokenizer.lex を修正せずにlexに…

リンク元

最近php+フレームワークでの検索が多い。 [PHP-users 30036] Re: フレームワーク この辺の影響だろうか。 どうせフレームワークを作るならPHP5も使ってみたい・・。 Debianの公式パッケージに入るのは何年後だろう。。 [debian-users:43746] Re: php5 の対応…

WindowsXPの起動が遅い

イベントビューアを見てみるとContivity VPN Clientがエラーを起こしている。 nortelのVPNクライアントなんだけれど、検索してみるとWindowsアップデートパッチにバグがあったらしい。 色々サービスをオフにするが改善せず。 VPNのバージョンを新しくしたら…

その後

ウィルスチェックとスパイウェアチェックをやったらウィルスがゼロでスパイウェアが数十個。 ウィルスがゼロで良かった・・普段チェックしないからごっそり出てきたらどうしようかと思った。 そして再起動したら少しは早くなった感が。 イベントビューアにも…

リファクタリングメモ

放っておくと事態は悪化するので、重い腰を上げて直すことにした。 まずはファイル名の変更。 Hoge.class.php を Hoge.php にする。 そしてテストコードを書きながら気になった部分をリファクタリング。mapleみたいにコアを差し替えたりするわけじゃないので…

mapleを入れてみる

PHP

hawklab.jp今度のジェネレータはシェルスクリプトになってるぽいので、pearコマンドで入れてみる。/usr/bin にmapleコマンドがインストールされた。書いてある通りにやるとwebappは出来るんだけども、、あれ?htdocsってどうやって作るんだっけか。 generato…

コンテナ

何だか違和感が無くならない。 普通のコンテナを使ったことがないのにDIコンテナを使おうとしたからだろうか。 どうもグローバル変数的に乱用してる気がする。 これに最初に気付いたのは後からテストコードを書くときで、一つのクラスをテストするのに何個も…

リファクタリングしたい・・

クラス名とファイル名を書き換えたい衝動に駆られる。 しかしテストコードが少ししかない・・。 ファイル名を書き換えるならテストコードがあったとしてもそれも書き換えないとダメか。 hoge.class.php => hoge.php DIContainer => SimpleContainer or LaizC…

セキュリティとmod_rewriteの代わり

http://www.jpcert.or.jp/wr/2006/wr063001.txt mod_rewriteに関する脆弱性。 こういうのでDebianが載っていると、何となく安心できる。 mod_rewriteを使わずにPATH_INFOを使う設定 <VirtualHost *> DocumentRoot /home/foo/public_html ServerName foo.example.com CustomL</virtualhost>…

[PHP][フレームワーク] フレームワーク諸々

PHPのフレームワークについて PHP Framework: CakePHP のおいしい食べ方 CakePHP のおいしい食べ方 分かり易い。 私も他のフレームワークとの違いを言えるくらいに調査出来てればいいんだけど・・。 取り敢えず今後作ったページに powered by Laizとか書いて…

HTTP_Download

PHP

トラックバックをもらったので調べてみる。 PEARって全然詳しくないので基本的なパッケージも知らない。 HTTP_Downloadはファイルを送出するためのものっぽい。 他にもHTTP_*には便利なものが沢山。 だけど、使う必要があるのかどうかは分からない。 前にフ…

環境

PHP

mixiのPHP環境スレ [mixi]これぞ最強のPHP開発環境ってある!? - Let's PHP | mixiコミュニティ svnのコミットをトリガーにしてアップしてる人って実際に居るんだなぁ。 仕組みとしては知っていても実践までなかなかいかない。 この場合は コードを書く テ…

フレームワーク

PHP

[PHP-users 29994] フレームワークたまにフレームワークについての話題を見かける。 こういうときに胸を張って他人に勧められるフレームワークが完成してるといいなぁ。 自分のフレームワークは簡単なページを手早く作るのには向いているけれど、大人数(?…

マニュアル

英語で書かれたマニュアルが読めないという以前に | 日経 xTECH(クロステック)なるほど。これは納得できる。 PHPで開発するにあたって「サンプルコードが載っているものをください」と言う人が居る。 そりゃーあった方がいいけれど「PHPはWebのマニュアル…

エラー制御

今日のハマりどころ。 フレームワークのエラー制御と標準のエラーハンドラを統合するところで気が付きにくいポイントがあった。 set_error_handler()でユーザ指定の関数を登録すると、@(エラー制御演算子)がついてる場合でもエラーが表示されてしまう。標…

ファイルアップロードの処理

PHP

[PHP-users 29980] 別サーバーへのアップロードこれは私も知りたい。 既にsocketを使ったベタな関数は作ったんだけど、もうちょっとスマートにやりたいなぁ。 できればsimpletestに組み込んでほしい・・。

受け入れテスト+アップロード

simpletestでグリーンのバーが表示されたら、アップロードボタンを表示するようにした。 それを押したらrsyncで本番用にアップロードが開始される。 デメリットは、例えば一文字変更しただけでも全てのテストが終わるのを待たないといけないところ。 PHPの手…

確認画面

フォームの要素が何十個もあったら、すこぶる面倒だ。 フレームワークを使って設定ファイルに変数を羅列するだけで済んでいるんだけれど、それでも面倒だ。 現在たった2画面での受け入れテストのassert()が400個・・・手動でテストコード書いてたらやる気な…

トランザクショントークンの削除

PHP

トランザクショントークンは削除するか別の値を設定するかしないとダメでしたね。 更新ボタンを押した場合にエラーにならない。 そのタイミングは自動で行った方がいいのだろうか。。 取り敢えず自動にしたけれども、投稿ボタンをダブルクリックした場合はセ…

サーチエンジンからのリンク元

「PHP4 PHP5 共存」 この検索は常にある。 しかしここより前に - よくきたWiki 上鍵さんのページが表示されるのに、解決しなかったんだろうか。 私は上鍵さんの(雑誌の)記事を参考にしたので、そっちを見た方がいいと思う。 「php フレームワーク 比較」 …