2008/11/06
第2回設計勉強会に参加してきた
第2回設計勉強会に参加してきました。
まず、こういった機会を提供してくれた id:shimookaさん、ありがとうございます。株式会社ディノさんも会場の提供ありがとうございます。LINDさんも毎度ありがとうです。
とりあえず、資料を置いておきます。
ちなみに、Teedaのレイヤーは Teeda Extension featuring Goya 〜アーキテクチャ【レイヤー構成】〜 - たかのり日記 さんのを、チョーそのまま使ってます
Hermit は http://svn.coderepos.org/share/lang/php/misc/Hermit/
今回の発表は、すいません。あまりまとめきれていなくて、早足で話しすぎました。ust の方もすいません、ust 忘れてました。今後はustにもわかりやすいように資料を作ったほうがいいっすね。
後、今回は僕が日頃思っていた疑問をそのまま発表してしまって、なんともまぁgdgdですが、色々と意見交換ができてすごーくためになりました。
今回、設計勉強会で発表するために、「設計だし、コードは見えないプレゼンにしよう。実装はいいっしょ」と思ってたんですが、見えたほうが理解早いっすね。反省。
kunitさんのsymfonyの「罪悪感 & 諦め」は僕もそれです。でも諦めないっすよw
shimooka さんの発表はすげー親近感たっぷりで、別の意味で楽しめましたwあと、色々とノウハウを発表していただいたので、ためになります。
他にも、沢山の方と話すことができました。為になります。「納期があるんだし、FWからの離脱はしゃーない。諦めろ」とか「Propelはしゃーない。諦めろ」とみんな諦めすぎっす
ちなみに、Hermit ですが、僕のプロジェクトでしか使っていない。悲しいやつです。
ref - http://svn.coderepos.org/share/lang/php/misc/Hermit/
いつかちゃんとした形にまとめますが、S2Dao.PHP5 をもっと PHP でも使えるようにはモットーです。
叩いてくれる方、開発してくれる方、よろしくです。(僕もどんどん書いていきますが)
あ、最後に。Daoのコネクションどーする?ってやつは、Hermit & Symfony で Master/Slave の構成だとこんな感じに書きます。(shimookaさんのPropel::getConnection() は symfony の DatabaseManager.getConnection(name)ですね)
class DataSourceSelector { const MASTER_DBMS_NS = 'master'; const SLAVE_DBMS_NS = 'slave'; protected static $specSource = array( 'HogeDao' => self::MASTER_DBMS_NS, 'FooDao' => self::SLAVE_DBMS_NS, 'BarDao::callProcA' => self::MASTER_DBMS_NS ); protected $dbManager; public static function bindHermitDataSource(sfDatabaseManager $manager){ $instance = new self; $instance->dbManager = $manager; HermitDataSourceManager::setCallback(array( $instance, 'getConnectionCallback' )); } public function getConnectionCallback($targetClass, $methodName, $type){ $database = $this->fetchDatabase($targetClass, $methodName, $type); return $database->getConnection(); } protected function fetchDatabase($targetClass, $methodName, $type){ if(isset(self::$specSource[$targetClass])){ return $this->dbManager->getDatabase(self::$specSource[$targetClass]); } return $this->getDefaultDatabase($type); } protected function getDefaultDatabase($type){ if(HermitEvent::isInit($type)){ return $this->getSlave(); } if(HermitEvent::isRead($type)){ return $this->getSlave(); } if(HermitEvent::isWrite($type)){ return $this->getMaster(); } if(HermitEvent::isProcedure($type)){ return $this->getMaster(); } return $this->getMaster(); } protected function getMaster(){ return $this->dbManager->getDatabase(self::MASTER_DBMS_NS); } protected function getSlave(){ return $this->dbManager->getDatabase(self::SLAVE_DBMS_NS); } }
1 Trackback
[PHP][勉強会]第2回設計勉強会をやりました
無事、第2回設計勉強会が終了しました。会場を提供して頂いた株式会社ディノさん、id:kunitさん、ありがとうございました。また、勉強会に参加された方、お疲れ様でした。個人的には結構盛り上がったと思ってます。ホントにありがとうございました:-) また、id:NEKOGETさん
Track from Your Website
http://blog.xole.net/trackback/tb.php?id=715

Comment
No Comments