Advertisement
Advertisement

More Related Content

Similar to baserCMSにみられるCakePHPノウハウ蓄積法(20)

Advertisement

baserCMSにみられるCakePHPノウハウ蓄積法

  1. baserCMSに見られる CakePHPノウハウ蓄積法 × 2012年5月23日 エガシラリュウジ
  2. 自己紹介! !  エガシラリュウジ@キャッチアップ !  西区でWebの一部をつくってます。 !  baserCMSをのコアデベロッパー !  ryuring@twitter !  ダックスフンド飼ってます。 Copyright 2010 baserCMS All rights reserved
  3. baserCMSって 自己紹介 !  国産オープンソースのCMS。 !  WordPressとかMovableTypeとか MODxさんとかと同じ類い。 !  シンプルでわかりやすく、日本の文化 を反映したCMSを目指してます。 !  http://basercms.net Copyright 2010 baserCMS All rights reserved
  4. 本題 ! 今回のお題である「ノウハウ」とは、プログ ラミングにおける知的財産・情報資産等を指 します。 ! 例えば、自社のライブラリ ! 例えば、Webサイトや管理画面の雛形 ! 言うなれば、自社のフレームワーク的なもの Copyright 2010 baserCMS All rights reserved
  5. 注意事項 ! 今回のお話は、CakePHP 1.2系ベースです。 ごめんなさい。。 Copyright 2010 baserCMS All rights reserved
  6. ノウハウの再利用 ! 開発期間を短縮する為、自社のノウハウを再 利用するのは当たり前ですか? Copyright 2010 baserCMS All rights reserved
  7. CakePHPのappフォルダ ! CakePHPでは、コアプログラムを変更する事 なくアプリケーションを構築する仕組みがあ る。 ! cake フォルダ・・・コアプログラム ! appフォルダ・・・アプリケーション ! CakePHPがバージョンアップした場合には、 cakeフォルダを上書きするだけ Copyright 2010 baserCMS All rights reserved
  8. CakePHPの仕組み ! ファイル読み込みの優先順位 app cake Copyright 2010 baserCMS All rights reserved
  9. appフォルダ内に配置する前提でライブラリ化 ! Component ? ! Behavior ? ! AppController ? ! AppModel ? ! Plugin ? ! Vendor ? ! Lib ? Copyright 2010 baserCMS All rights reserved
  10. appフォルダごとライブラリとして扱うには? ! appフォルダをスケルトンとして扱う ! bakeに仕込む Copyright 2010 baserCMS All rights reserved
  11. メンテナンスの問題 ! 例えば、自社のライブラリ(管理システムの 雛形等)となる部分をappフォルダ内に配置し、 お客様ごとにカスタマイズを施した場合、メ ンテナンスがめんどい? ! 100社に対し、カスタマイズしたプログラムを 納品した際、ノウハウ部分にバグが見つかっ た場合とか・・・。 Copyright 2010 baserCMS All rights reserved
  12. バージョン管理システムで解決 ! SVN や git などのバージョン管理システムで プロジェクトごとにブランチを切る ! バグ発見したらマージ祭り Copyright 2010 baserCMS All rights reserved
  13. baserCMSのアップデートの仕組み ! 配布しているのでバージョン管理システムで マージなんてできない。 ! 最初はEC-CUBEの構成を参考にしたが、 CakePHPっぽくないのでやめた。 ※ EC-CUBEでは、コアのクラスを継承する⃝⃝Exクラスをカスタマイズするよ うになっている。 ※ AppControllerを継承するBaserAppControllerを作ったり。 ! CakePHPのアップデートの仕組みを踏襲。 Copyright 2010 baserCMS All rights reserved
  14. ノウハウを別フォルダ化! !  CakePHPには、コントローラー等の参照先を追加す る仕組みがあらかじめ備わってます。 !  ノウハウを詰め込んだファイル群を別フォルダ化でき る。 !  別フォルダ化できれば、アップデートは別フォルダを 丸ごと上書きできる。 !  カスタマイズしたファイルはappに置けばノウハウ部 分を汚さない。 Copyright 2010 baserCMS All rights reserved
  15. baserCMSではこんな感じ(1.2系) !  bootstrap.php !  $modelPaths[] = BASER_MODELS; !  $behaviorPaths[] = BASER_BEHAVIORS; !  $controllerPaths[] = BASER_CONTROLLERS; !  $componentPaths[] = BASER_COMPONENTS; !  $viewPaths[] = BASER_VIEWS; !  $helperPaths[] = BASER_HELPERS; !  $pluginPaths[] = BASER_PLUGINS; !  各定数は、appディレクトリ内と同じ構成にしたbaser ディレクトリ内のパスを指定 ※ Configure::buildPaths()が定番? Copyright 2010 baserCMS All rights reserved
  16. CakePHPの仕組み ! ファイルの読み込み優先順位 app baser cake Copyright 2010 baserCMS All rights reserved
  17. 読み込みの優先順位 ! app_controller.php の場合 /app/controllers/app_controller.php /baser/controllers/app_controller.php /cake/libs/controller/app_controller.php ※ baserCMSでは、AppControllerをカスタマイズする場合、baser ディレクトリ内のAppController をコピーしてカスタマイズする 方法を推奨しています。 Copyright 2010 baserCMS All rights reserved
  18. CakePHP1.3以降の場合 ! App::build というメソッドが用意されていま す。 ! CakePHP2系については知らないです。ごめ んなさい。 Copyright 2010 baserCMS All rights reserved
  19. ご質問ありませんか? ! ノウハウを貯める仕組みって重要ですよね ! CakePHPを利用されているのであれば App::buildを有効活用! ! baserCMSの開発コミッター募集中です。 ! ご興味がある方は@ryuringまでDください。 Copyright 2010 baserCMS All rights reserved
  20. おしまい おわり ! ご清聴ありがとうございました。 Copyright 2010 baserCMS All rights reserved
Advertisement