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

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

2,763 views
2,665 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,763
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

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

×