Hatena::ブログ(Diary)

devworks このページをアンテナに追加 RSSフィード

2009-02-02

PHPで同じようなのを作ってみた

前のエントリPHP 版を作ってみようと思ったら出来なかった。

ReflectionProperty#setAccessibleは5.3.0以降なのね。MoteGramのActionクラスのフィールドはpublicフィールド推奨だなぁ。

private/protected なプロパティに対して行うとReflectionExceptionをthrowするので握り潰してます。例外処理のポリシーも考えておかないとなぁ。

<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of ReflectionUtil
 *
 * @author devworks
 */
class ReflectionUtil {
    public static function getClass($obj) {
        $name = get_class($obj);
        return new ReflectionClass($name);
    }

    public static function getProperty($obj, $name) {
        $clazz = self::getClass($obj);
        return $clazz -> getProperty($name);
    }
}
?>
<?php
require_once 'ReflectionUtil.php';
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of FeildUtil
 *
 * @author devworks
 */
class PropertyUtil {
    public static function get($obj, $name) {
        if ($obj === null || ($name === null || strlen($name) === 0) ) {
            return null;
        }
        $property = ReflectionUtil::getProperty($obj, $name);
        try {
            return $property -> getValue($obj);
        } catch (ReflectionException $e) {
            return null;
        }

    }

    public static function set($obj, $name, $value) {
        if ($obj === null || ($name === null || strlen($name) === 0) ) {
            return;
        }
        $property = ReflectionUtil::getProperty($obj, $name);
        try {
            $property -> setValue($obj, $value);
        } catch (ReflectionException $e) {
            return;
        }
    }
}
?>

Webデベロッパの祭典+ちょっと新年会気分で。@福岡に行ってきました

に行ってきました。ブログを書くまでがイベントなので、つらつらと感想などを。

他の方のレポートはWebデベロッパの祭典+ちょっと新年会気分で。@福岡レポートまとめ - ナカオ日記−フリーランスの轍にまとまっています。こういったまとめがあると助かりますね。

では僕が参加したセッションの雑感です。

日ごろからアンテナは高くしておくのと、これからプログラマとして生き残っていくためにプログラミング能力以外のレイヤを押さえておくことの重要性を感じました。僕はこれからUIを含むデザインの分野を学びたいな、と思っています。

イベントが終わった後、このセッションの講師である藤井さんとラーメンをご一緒させていただきました(奢ってもらった!)。で、その席でジョン前田さんの書籍をお薦めされてました。これかな?

シンプリシティの法則
ジョン マエダ
東洋経済新報社
売り上げランキング: 17687
おすすめ度の平均: 4.5
4 伝えたいことをシンプルに伝える大切さ
5 複雑の中にあるシンプルの重要さ
4 引き算して高まる精度
5 読むのは簡単だが、まとめるのは相当の苦労

面白そうなので買ってみよう。

paperboy&co.の開発現場の実際。奇をてらった手法ではないけども徹底されていることが成功している秘訣なのかなぁと思いました。僕自身今まで経験したプロジェクトでwiki等を導入して情報共有しようぜ!みたいなことをやったことがありますが、まるっきり成功しなかったので。wikiなのに書いてるの僕だけ、みたいな。

後半はpaperboy&co.で採用している ZendFrameworkの入門的な内容。もうちょっと内容を深くしてPHP in Fukuokaで喋っていただけませんでしょうか!

技術的なお話を期待していたのですが、そうではなかったので若干しょんぼりしました。楽天でのキャリアパス、福岡テックセンターの紹介等。エンジニアを大事にしてると同時にエンジニアに誠実さを求める会社。スキルがあってもわがままな人はいらないという趣旨の発言をされてました。

最後に薬事法改正のお話があってちょっと笑ってしまいました。でもマジメな話、個人的には今回の改正は一消費者として困るので署名しました。

パネルディスカッション。今回一番楽しみしてしていました。

これは面白かった。藤井さんと万野さんが笑いをとってたなぁ。印象的だったのが福岡はコミュニティ活動が全国的にみても盛んだということ。札幌は2つしかない、という話を聞いてなんでだろ?と思ったり。

あと、きしださんの発言で「福岡の勉強会の内容は東京に比べて遅れている」というのは僕も自覚はしていて、どうにかしなきゃいかんなぁと思う反面、来てくれる人がそういうものを求めているのかどうか、ということも考えたりとかして「うーん」ってなったりします。

最近色々考えて体が動かなくなってて「勉強会やるやる」言っててやれてないので、とりあえず動いてみようと。うまく行かなかったらまた考えることにします。

(追記)

2/27(金) 19:00 AIP Cafe で勉強会をやろうと思います。

(さらに追記)

↑はPHP勉強会です。