登録者:nazo

XOOPSのモジュールをYiiで開発

2009-02-14 18:19:39
アクセス数:1605
タグ: PHP LOCAL
0

■説明

XOOPSのモジュールをYiiで開発
LOCAL DEVELOPER DAY '09 /Winter
Lightning Talk

リンク

このスライドの現在表示中のページへのリンク
ブログパーツ
google ガジェット

関連するスライド

CodeIgniterでhello world! 二番煎じ☆ 2080-0825

投稿者:NEKOGET
投稿日時:2010-08-25 21:51:13

PHPの最新動向 5.3の新機能を中心に

投稿者:koyhoge
投稿日時:2009-02-08 23:26:53

PHPプログラミングのIPv6対応の実際

投稿者:koyhoge
投稿日時:2008-11-27 22:55:39

Ethnaで問題が起こったときにする5段階の解決法

投稿者:sotarok
投稿日時:2008-08-16 02:07:55

第34回PHP勉強会発表資料 ちょっと極めるPHP5×XML

投稿者:sotarok
投稿日時:2008-07-24 12:18:09

CakePHP Email Component 調査報告書

投稿者:suzuki
投稿日時:2008-02-21 01:29:57

お気に入り登録したユーザ

GoodJobしたユーザ


タグクラウド

LOCALPHP

■スライド内のテキスト

スライド1: 自己紹介• nazo• 佐藤琢哉• 株式会社RYUS• rhaco­ja• http://d.hatena.ne.jp/nazone/• http://twitter.com /nazo• http://wassr.jp/user/nazo/• 自腹で東京から来ました

スライド2: XO O PSのモジュール開発にY iを使う株式会社RYUS  佐藤琢哉(nazo)

スライド3: 注意

スライド4: ほとんどの人には意味のない話です

スライド5: XO O PS Cube

スライド6: • ブログとか• カレンダーとか• イベント予約とか• アクセス解析とかモジュール• 画面の一部に配置する何かとか• 特定の機能を拡張するものとか• ようは機能単位

スライド7: モジュールを作る

スライド8: どうやって作るの?

スライド9: xoops_version.php<?php/** * * @ package Legacy * @ version $Id: xoops_version.php,v 1.10 2008/03/15 08:25:48 m inahito Exp $ * @ copyright Copyright 2005­2007 XO O PS Cube Project  <http://xoopscube.sourceforge.net/>  * @ license http://www.gnu.org/licenses/gpl.txt G NU G ENERAL PUBLIC LICENSE Version 2 * */$m odversion['nam e'] = _M I_LEG ACY_NAM E;$m odversion['version'] = 1.04; // 2.1.4$m odversion['description'] = _M I_LEG ACY_NAM E_DESC;$m odversion['author'] = "";$m odversion['credits'] = "XO O PS Cube Project";$m odversion['help'] = "help.htm l";$m odversion['license'] = "G PL see LICENSE";$m odversion['im age'] = "im ages/legacy.png";$m odversion['dirnam e'] = "legacy";$m odversion['cube_style'] = true;…

スライド10: • m ainfile.php• header.php• footer.phpあとはご自由にどうぞ• を読み込むくらい

スライド11: ( ゚д゚ )

スライド12: 自由すぎてわからん!

スライド13: だってフレームワークじゃないし…

スライド14: 仕方ないので

スライド15: CakePHPで開発できるようにしたよ!

スライド16: 実戦投入済

スライド17: そこそこ便利

スライド18:   で さ    l           ,ィ/!    /    /l/!,l     /厶,  だ れ   i   ,.lrH‐|'|     /‐!-Lハ_  l    /-!'|/l   /`'メ、_iヽ  よ る   l  | |_|_|_|/|    / /__!__ |/!トi   i/-- 、 レ!/   / ,-- レ、⌒Y⌒ヽ  ね の   _ゝ|/'/⌒ヽ ヽト、|/ '/¯`ヾ 、ヽト、N'/⌒ヾ      ,イ¯`ヾ,ノ!   l は  「  l ′ 「1       /てヽ′| | |  「L!     ' i'ひ}   リ        ヽ  | ヽ__U,      、ヽ シノ ノ! ! |ヽ_、ソ,      ヾシ _ノ _ノ-┐    ,√   !           ¯   リ l   ! ¯       ¯  7/  レ'⌒ヽ/ !    |   〈       _人__人ノ_  i  く           //!人_,、ノL_,iノ!  /! ヽ   r─‐- 、   「      L_ヽ   r─‐- 、   u  ノ/      /  / lト、 \ ヽ, -‐┤  ノ  キ    了\  ヽ, -‐┤     //ハ キ  {  /   ヽ,ト、ヽ/!`hノ  )  モ    |/! 「ヽ, `ー /)   _ ‐'ハ ャ   ヽ/   r-、‐' // / |-‐ く    |     > / / `'//-‐、    /ハ ハ    > /\\// / /ヽ_  !   イ    (  / / //  / `ァ-‐'ハ ハ   / /!   ヽ    レ'/ ノ        >  ' ∠  -‐ ¯ノヽ   /       {  i l    !    /  フ       /     -‐ /¯/〉 〈\ /!(作ったのはnazoですが)(使っているのもnazoですが)

スライド19: CakePHPは悪くないんだけど

スライド20: 他の使いたい

スライド21: それなら

スライド22: Yii

スライド23: Y i Fram ework

スライド24: (W iじゃないよ)• (都合で画像は削除されております)

スライド25: PRADO の人あたりがいろいろ参考にして作った新フレームワーク

スライド26: 組み込んだ

スライド27: そのままだと動かない

スライド28: 修正点

スライド29: XO O PSのコードはclass_existsの第二引数を指定していない• PHP4のコードなので…XCube_DelegateUtils::ca l('Legacy.Event.G etHandler', new XCube_Ref($handler), $nam e, $optional);if (is_object($handler)) {$handlers[$nam e] =& $handler;return $handlers[$nam e];}        if ( file_exists( $hnd_file = XO O PS_RO O T_PATH.'/kernel/'.$nam e.'.php' ) ) {            require_once $hnd_file;        }        $class = 'Xoops'.ucfirst($nam e).'Handler';        if (class_exists($class)) {            $handlers[$nam e] = new $class($G LO BALS['xoopsDB']);        }    }

スライド30: • 当然エラー=autoloadが呼ばれるpublic static function autoload($classNam e){}// use include so that the error PHP file m ay appearif(isset(self::$_coreClasses[$classNam e]))include(YII_PATH.self::$_coreClasses[$classNam e]);else if(isset(self::$_classes[$classNam e]))elseinclude(self::$_classes[$classNam e]);include($classNam e.'.php');

スライド31: 仕方ないので@ で対応public static function autoload($classNam e){}// use include so that the error PHP file m ay appearif(isset(self::$_coreClasses[$classNam e]))include(YII_PATH.self::$_coreClasses[$classNam e]);else if(isset(self::$_classes[$classNam e]))elseinclude(self::$_classes[$classNam e]);@ include($classNam e.'.php');

スライド32: ……}}XO O PS側へのブリッジprotected function yiapp($config){$yi=XO O PS_TRUST_PATH.'/yi/fram ework/yi.php';ob_start();require_once($yi);$yi_app = Y i::createW ebApplication($config);$yi_app­>setCom ponents(array('user' => array('class'=> 'Y iXoopsUser')));$yi_app­>run();$out = ob_get_contents();ob_end_clean();return $out;}protected function post($out){$root = XCube_Root::getSingleton();if (!isset($_SERVER['argc'])) {

スライド33: XO O PS内でscaffoldが!

スライド34: XO O PS内でY iのデバッグ表示が!

スライド35: 結構便利

スライド36: (いやCakeでもできるんだけど)

スライド37: ryus.co.jpで公開中!(ダウンロードページにて)

スライド38: でもYiiとかわかんないんだけど…

スライド39: 日本Yiiユーザ会

スライド40: 日本Y iユーザ会

スライド41: ( ゚д゚ )

スライド42: nazoは日本Yiiユーザ会を応援しています

スライド43: んで

スライド44: Yiiって誰か使えるの?

スライド45:

スライド46: 誰特

スライド47:



スライド48: 次回予告

スライド49: XO O PSでrhaco2を使う!

スライド50: あのhentaiフレームワークがついにXO O PSに!果たして!?

スライド51: 手を入れないと動かないのは確認済みだけど

スライド52: rhacoもよろしく!

スライド53: