PHP

第2回設計勉強会で反省とかを発表した反省とか資料

in

事前の通り第2回設計勉強会にて発表してきました。資料はFirefoxで閲覧できます。

資料ダウンロード

さて、今回の反省てことですが、長くてほんとすみませんでした。
名刺交換楽しみにしていた方時間潰してしまってごめんなさい。

CakePHPカンファレンスのスライドを見ました

in

CakePHPカンファレンスにはハロウィンのため参加できなかったので、ustream動画を見ました。

中でも、CakePHPのPMのGarrett Woodworthさんのプレゼンの38分頃からの、フレームワーク比較が面白かったです。曰く、

「安定版」て本当に安定しているの?
不具合が残っているし・・・。

Zend_Tool --help の出力とインタラクティブモード

先日調査したZend_Toolのzfコマンドですが、最近のsubversion版だと、--helpオプションがついて、どんなコマンドがあるのか確認できるとのことなので試してみました。

> zf --help
Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]
       php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]


  

Zend_Toolで生成されるソースツリー

Zend Framework1.6より"laboratory"ディレクトリー内にZend_Toolというものができたそうです。これは、いわゆるコマンドラインからのスケルトンジェネレーターです。ジェネレーターが嫌いでZend Frameworkを使っていたのに・・・。

と言ってもいられないのと、ジェネレーターが出力するソースはZend Framework推奨の記述になっているに
違いないということで試してみました。

PHPからSET NAMESを使わない方が良い理由と対策まとめ

in

今更ながらyohgaki's blogのSET NAMESは禁止というエントリーを読みました。ためになりましたが、コメント内で話が進んでおり少々理解しづらかったため、改めてまとめてみました。

・PHPからSQL文でSET NAMESを発行すると何が良くないのか

SQLの実行により文字コードが変更されるように思えるが、PHPのMySQL関連の関数で考慮される文字コードは変更されない。このため、エスケープ関数mysql_real_escape_string()等で、必要なエスケープがなされず脆弱性を引き起こすケースがある。

PHP5.3無名関数の中身はClosureクラスぽいので自分でクラスから作ってみる

in

PHP5.3無名関数シリーズ1はこちら

下岡さんのClosureクラスはfinalらしいと言うエントリーを見て、無名関数は実際は内部finalクラスClosureと言うもので表現されているらしいと知りました。

Class [  final class Closure ] {
  - Constants [0] {}
  - Static properties [0] {}
  - Static methods [0] {}
  - Properties [0] {}
  - Methods [1] {
    Method [  public method __invoke ] {
    }
  }

リフレクションクラスの存在を忘れていました。先日のエントリーでのcurry関数のパラメーター数推定もリフレクションクラスを使った方がすっきり書けそうでした。

めげていても仕方がないのでよく見てみると、__invoke関数はpublicらしいので直接呼び出してみましょう。

PHP5.3無名関数のcallback引数呼び出しと、無名関数化およびその逆

in

PHP5.3の無名関数がそこそこ使えそうだったので追加調査。

まずはいままで関数名を渡していたcallback引数に無名関数を使えるか。array_walkpreg_replace_callbackのサンプルから変換してみます。追加でcall_user_func。

$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
$test_print = function ($item2, $key)
{


  

PHPカンファレンス2008でPHP5.3の無名関数を試してみた

in

PHPカンファレンス2008に行ったらamachang(初対面)が、「PHPはλが使えないのがな~」と言うと、森川CTO(初対面)に「そんなの要らないじゃん」などと絡まれていました。
10月にはリリース予定のPHP5.3で無名関数が追加されるそうなので、なんぼのもんか試してみました。
・・・これなら使える!?

ライブラリーとして使うZend Framework - PHPから日本語全文検索(形態素解析篇)

先週末行った第34回PHP勉強会でkaz_29さんがPostgreSQLの日本語全文検索のお話をされていました。

私はメインでMySQLを使っていますが、MySQLだとまたやり方が違ったり、DBにモジュールを追加する必要があるのでサーバーに手を入れられないと使えなかったりするので、PHPだけで全文検索する方法を紹介します。Windowsでも動きます。

あんた前回uni-gram解析器紹介してるじゃん、て声もありそうですが、今回は新たにMecabを呼び出す形態素解析版をつくりました。
と言うことで、拡張モジュールのインストールは不要なんですがMecabコマンドのインストールが必要です。
n-gram版ならMecabコマンドのインストールは不要ですのでこのまま下の方まで見てもらえればと思います。

PHP勉強会でZend_Search_Lucene日本語アナライザー(形態素解析版)を作る

in

第34回PHP勉強会に行ってきました。
会場のトライコーンさんはとても綺麗なセミナールームでした。

自己紹介で、SymphonyとCakePHPを使っている方は数人ずついたので、ZFを使っている発言が私のほかになかったので悲しかったですが懇親会で話したら少しいらしたのでがんばりましょう。
あと、会場からIRCなどしていたのを見て、イーモバイルの方がうらやましかったです。

コンテンツの配信