PATH_SEPARATORってPHP4.1.2(Woodyの奴)だと使えないの・・・?

jude1.4.png

UMLモデリングツールJUDEの1.4がリリースされました!

10月13日に1.3まで無償で提供されていたJUDEがJUDE Professionalとして有償でリリースされることが発表されました。JUDEまでもがついに・・・( ´・ω・`) と思っていたところフリー版はJUDE Communityとして続いてくみたいです。

使い勝手の方ですが非常に素直で使いやすいです。UML1.4の図は全て書けますし印刷も(JUDEロゴが入りますが)OKです。ソースの読み込み・書き出しはスケルトンコードを吐くという位置付けなのでメソッドの間の実装は上書きされて消えちゃいます。ラウンドトリップ機能でリファクタリング時のドキュメント管理も簡単に!とまではいかないです。とはいえ、「抽象的なことを人にわかりやすく伝えたい」 → 「絵で説明しよう」 → 「どうせだったらUML記法に従うか」的なことにはとても役に立ちます。PHPの場合はPHPの型をクラスとして勝手に作ってしまうのが良さそうです。

Movable Type 3.1 にアップグレードしてみました [dh’s memoranda]

今回のバージョンの特徴は、PHP を利用したダイナミック・ページのサポートと、スケジュールポスト、サブカテゴリーです。また、プラグイン開発者からみると、callback が利用できるようになっていますので、より高度なプラグインが作れるようになります。できたら、ぜひ教えてください!

MovableTypeが3.11-jaにバージョンアップしました。PHPを利用したダイナミック・ページのサポートって気になりますね。

ココで言ってたPico containerの「watch this space!」はもうすぐ動きがあるから注目しとけ!的な意味だったぽいです。PHP5専用に作ってるのかな?

まるごとPHP! Vol.1―PHPを完全制覇。 (1)
山田 祥寛
インプレス (2004/09)
売り上げランキング: 1,341
通常24時間以内に発送します。

まるごとPHP! Vol.1買いました。 ・・・やべっ、自分のアソシで買やぁよかったっっっ・・・!? 表紙はコッチの猫にした方が売れたと思いました。

ビギナーズセクション、スペシャルセクション、エキスパートセクションの3つに分かれて書いてあっていろんな人によろしげです。初っ端の山田祥寛さん(山田祥平ではない)は何かもうPHP技術自体の国内エヴァンジェリスト的存在で、もう定番ですな。本全体を通してPEARマンセーなのでWeb+DB Pressの記事とかとあわせて皆が使うようになればいい。

そしてやっぱり良かった ネ申 のmojavi記事。あのページ数に収まる最高の形ではないかと思った。あと最後の vimでPHP のタイトルには意味無くボフりました。

PicoContainer – Home

PicoContainer is a lightweight embeddable container for components that honour Dependency Injection. Want more? See One minute description, Two minute tutorial, and Five minute introduction.

最近うちの会社でもDIコンテナが流行ってます。席の周りはみんなJava(おれはPHP)なのでやれSeasar2だSpringだPOJOだ言ってます。

「AOPを仕事に取り入れたいけどAspectJは糞面倒臭そう。ダイコン・・・これならいけるかも!?」 って感じで広まってるんでしょうか。 Javaのスクリプト言語Groovyで有名なcodehausのプロジェクトPicoContainer。ピコっつーぐらいだから小さくて簡単なんでしょうな。Dependency Injectionの考えは言語に依存しないのでこのPicoContainerもJava以外に.NETやRubyのなんかも。でもPHPは対応してないんですな。PHPの欄に「watch this space!」の記述。誰か作れってこと?

Mojavi関連で有名なトイレの落書きにもDI関連の記述が。PHPも5になったからっつってEJBみたいな重厚なもんじゃなくてPOPOとでもいうべきクラスを外からいろいろする方向なんでしょうか。

PHP関西セミナー行ってきました。さすがに大阪日帰りは疲れた・・・。

内容の方はDB_DataObjectと大規模PHPとQuickFormって感じでした。それぞれに自分の中でタイムリーな話がいっぱいあって勉強になりました。

あとはPHP関西のXOOPSに講師の方々のリンクとか資料があるとうれしい。(会社からセミナーの内容をフィードバックせよと言われてる・・・)

みなさん、普通の人はUMLモデリングツールに何を使っているんでしょうか。 とくにPHPの人は・・・??? PHPに対応したツールってほとんど見当たらないので本当に謎です。マジで! 会社ではVisio2000に PHP データ型 とか勝手に作って書いてます。 開発標準化にあたってツール類も探しているんですが、フリーの(オープンソースでなくてもいい)UMLモデリングツールってなかなかコレ!ってのが無いです。PHPに関してはラウンドトリップなんかはあきらめてるんですが、QtベースのUmbrelloというオープンソースのUMLモデリングツールがPHPに対応しているというので試してみました。(これのためだけにsargeインストール・・・)

umbrello_1.png見ての通りUMLモデリングツールとしては普通っぽいUIなのでVisioからすんなり入れました。本気でこれに移行しようとかいうんじゃないんで「おー良くできとる」っていう感じです。

適当なクラス図を描いて早速、クラス図からソースを吐いてみました。(ソースからの読み込みはできないみたいです。)

request.php

/**
 * class Request
 * 
 */
class Request
{

    /** Aggregations: */

    /** Compositions: */

    /*** Attributes: ***/

    /**
     * 
     *
     * @param string name 
     * @return string
     * @access public
     */
    function get( $name )
    {

    } // end of member function get

    /**
     * 
     *
     * @param int name 
     * @param int value 
     * @return void
     * @access private
     */
    function set( $name,  $value )
    {

    } // end of member function set

} // end of Request
?>

view.php

/**
 * class View
 * 
 */
class View extends Smarty
{

    /** Aggregations: */

    /** Compositions: */

    /*** Attributes: ***/

    /**
     * 
     *
     * @return void
     * @access public
     */
    function execute(  )
    {

    } // end of member function execute

} // end of View
?>

おお、継承とかはちゃんとやってくれるみたいです。でもこのソースフォーマットって標準的じゃないっぽくない? 改めて考えてみるとラウンドトリップ機能ってコード書いてて途中でリファクタリングしてもクラス図やソースのメンテナンスが楽!っていうために使うんですな。吐いて終わりだと最初の一回だけだからあんまり嬉しくないかも・・・。

hatotech::kumatch: 第2回PHP関西セミナー

PHP関西 SEMINAR : 2004年9月度セミナーのご案内 セミナーには PHP の初心者から言語全般上級者の方まで幅広く参加します。セミナー内容およびその後の懇親会まで非常に身になる内容になります、させますので是非ともご参加を。関西 PHP のその無駄に元気な部分まで垣間見ることができます。

23日、会社の命を受けて最近噂のPHP関西のセミナー行ってきます。レベルが高そうなので付いて行けるかどうか・・・。会場で見かけても物を投げないで下さい。

Linuxを使ってみるにお邪魔してコメントさせてもらっていたネタ。

DB_DataObjectはfactory以外のメソッドではエラー時にDB_DataObject_Errorじゃなくてfalseを返してる。それじゃあErrorはどこ?と思ったら_lastErrorに入ってる。 で、_lastErrorはPHP慣例によりprivateじゃないの?どうやって取るの?取る方法が見つかんねーYO!という話。

* Last Error that has occured
* - use $this->_lastError or
* $last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');

ソースのコメント中には「_lastErrorを取るかgetStaticPropertyしろ」との記述。結局_lastErrorもアリってこと?そもそも何でfalse返すようにしてんの?教えて、PHPのエライ人!