Your SlideShare is downloading. ×
0
FuelPHP活用事例                                                        2013年3月23日                                             ...
シーエー・アドバンスってどんな会社?                             2008年に、サイバーエージェントの子会社として設立。                             インターネットメディアや広告の運用に関...
弊社では、複数のプロジェクトでFuelPHPを採              用しています。              今日は、社内でFuelPHPをどのように利用して              いるか紹介したいと思います。Copyright ©...
時間の関係で深い部分までは紹介できないの              ですが、気になった点は終了後に質問してく              ださい。Copyright © 2013 CAADvance, Inc. All Rights Reserv...
FuelPHPを採用している                                                  社内のプロジェクトCopyright © 2013 CAADvance, Inc. All Rights Reser...
CS(カスタマーサポート)                                             社内業務ポータルCopyright © 2013 CAADvance, Inc. All Rights Reserved.
画像・投稿監視の管理システムCopyright © 2013 CAADvance, Inc. All Rights Reserved.
CS (カスタマーサポート)                                      社外向け業務支援システムCopyright © 2013 CAADvance, Inc. All Rights Reserved.
SEM運用支援システムCopyright © 2013 CAADvance, Inc. All Rights Reserved.
その他、小さいシステムも含めて多く                  のプロジェクトでFuelPHPを採用して                  います。Copyright © 2013 CAADvance, Inc. All Rights R...
今日ピックアップするプロジェクト                         ・CS業務支援システム                         ・SEM運用支援システムCopyright © 2013 CAADvance, Inc. ...
採用事例①                                      CS (カスタマーサポート)                                      社外向け業務支援システムCopyright © 201...
システム概要                                          ソーシャルアプリに特化して、                                               ○ユーザから問い合わせの受...
プロジェクトメンバー              プロジェクト統                                   インフラ担当   コーディング担              括                         ...
開発期間                                    ■初期開発                                    2012年7月〜2012年11月                         ...
システム構成                             サーバ環境                        :AWS                             OS                       ...
構成はこんな感じです。                                             NAT                   Proxy                                監視     ...
FuelPHP採用の理由                           ① スピード感のある開発が求められた。                           ② CodeIgniter経験メンバーが居た。              ...
開発にあたって                                  工夫した点をご紹介します。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
ログクラスの拡張                     ログ出力クラスを拡張して、システム監                     視やエラー調査を効率化しています。Copyright © 2013 CAADvance, Inc. All ...
ログクラスの拡張                        ① ログ出力先の変更                        変更前:/logs/YYYY/MM/DD/~.php                        変更後:/l...
ログクラスの拡張                        ② ログ出力内容の変更                        クラス名、ファンクション名、ユーザ名                        等の情報を追加。ログからの...
validationクラスの拡張                  validationクラスを拡張して、独自の                  チェック方法を追加しました。Copyright © 2013 CAADvance, Inc. A...
validationクラスの拡張                       機能拡張①                       日付チェック                       (YYYY-MM-DD形式&存在する日付)Copyr...
validationクラスの拡張                       機能拡張②                       英数&記号の一括チェックCopyright © 2013 CAADvance, Inc. All Rights...
validationクラスの拡張                 機能拡張③                 アップロードされたcsvファイルに対する                 チェック。Copyright © 2013 CAADvanc...
paginationのカスタマイズ                        標準で実装されているpagenationはGETで行                        い、URLにページ番号がつく。                ...
Redisの活用                       現在はセッションの管理や単純なデータ                       保持にRedisを活用しています。                       標準でアクセスクラス...
Jenkinsでコーディングチェック                  Jenkinsを活用してFuelPHPのコーディング                  規約をチェックできるようにしています。                  リリース前...
REST-APIの開発                        外部システムとの連携に、REST-APIを                        実装しています。                        FuelPHP標準の...
CS業務支援システムにおける工夫は                                                        以上です。Copyright © 2013 CAADvance, Inc. All Rights ...
採用事例②                                                SEM運用支援システムCopyright © 2013 CAADvance, Inc. All Rights Reserved.
システム概要                  インターネット広告の運用を効率的に行う                  ためのシステムです。                  元々社内で開発・運用していた基幹システ              ...
プロジェクトメンバー                                          開発リーダー          開発メンバー                                          前田さん  ...
開発期間                                 ■初期開発                                 2012年8月〜2012年12月                               ...
システム構成                            サーバ環境                         :IIJ GIO(クラウド)                            OS              ...
構成はこんな感じです。                                 Intranet                                            監視(zabbix)                ...
FuelPHP採用の理由                        フレームワーク未使用の社内システムから                        機能を切り出した社外向けシステム。                          ...
開発にあたって                                      工夫した点をご紹介しますCopyright © 2013 CAADvance, Inc. All Rights Reserved.
機能単位のサブディレクトリ                        Model/Controller/Viewにサブディレク                        トリを作り、サブシステム単位で纏め                ...
機能単位のサブディレクトリCopyright © 2013 CAADvance, Inc. All Rights Reserved.
機能単位のサブディレクトリ                        controller/memu/ディレクトリにloginを配置する場合、                        loginコントローラーは            ...
Smartyの導入                        テンプレートエンジンとしてSmartyを                        使っています。                        経験メンバーが居たので、開発...
Smartyの導入                        FuelPHPでは簡単にSmartyを導入するこ                        とができます。Copyright © 2013 CAADvance, Inc. A...
Smartyの導入                        ■導入手順                        ① fuel/app/vendor/                                   ここにダウンロ...
Smartyの導入                        ■導入手順                        ③ コントローラーでViewを読み込む際、                        Response::forge...
Viewにオブジェクトを渡す                       Viewにオブジェクトを渡せるように、                       config.phpのwhitelisted_classesに該当クラ        ...
既存資産の活用                    DB/Memcacheへのアクセスは、移植元のシステムで                    作ったものをそのまま使用しています。                    ログ出力クラスにつ...
SEM運用支援システムにおける工夫は                                                        以上です。Copyright © 2013 CAADvance, Inc. All Rights...
社内でFuelPHPを使用したメンバーに、                        感想を聞いてみました。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
採用して良かった点。                        ・非常にとっつきやすく、使いやすい。                        ・入門書が発売されているので、学習しやすい。                        ...
苦労した点。                          ・日本語のドキュメントが一部しか存在しな                          い。                          ・URLに「_」が使用できないの...
これからもシーエー・アドバンスは              FuelPHPを積極的に活用していきたいと              思います。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
ご清聴ありがとうございました。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
Upcoming SlideShare
Loading in...5
×

Fuel php活用事例

4,504

Published on

FuelPHP 勉強会 東京 vol.3にて弊社のメンバーが発表した資料です。

Transcript of "Fuel php活用事例"

  1. 1. FuelPHP活用事例 2013年3月23日 株式会社シーエー・アドバンス 技術統括本部Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  2. 2. シーエー・アドバンスってどんな会社? 2008年に、サイバーエージェントの子会社として設立。 インターネットメディアや広告の運用に関連する事業を中心に 行っている会社です。 従業員数は約350人で、東京と沖縄に事業所があります。 (東京約50名、沖縄約300名) エンジニアチームは東京、沖縄合計で20名ほどです。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  3. 3. 弊社では、複数のプロジェクトでFuelPHPを採 用しています。 今日は、社内でFuelPHPをどのように利用して いるか紹介したいと思います。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  4. 4. 時間の関係で深い部分までは紹介できないの ですが、気になった点は終了後に質問してく ださい。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  5. 5. FuelPHPを採用している 社内のプロジェクトCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  6. 6. CS(カスタマーサポート) 社内業務ポータルCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  7. 7. 画像・投稿監視の管理システムCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  8. 8. CS (カスタマーサポート) 社外向け業務支援システムCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  9. 9. SEM運用支援システムCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  10. 10. その他、小さいシステムも含めて多く のプロジェクトでFuelPHPを採用して います。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  11. 11. 今日ピックアップするプロジェクト ・CS業務支援システム ・SEM運用支援システムCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  12. 12. 採用事例① CS (カスタマーサポート) 社外向け業務支援システムCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  13. 13. システム概要 ソーシャルアプリに特化して、 ○ユーザから問い合わせの受付 ↓ ○開発者へのエスカレーション ↓ ○ユーザへの返信 までを行う事ができるシステムです。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  14. 14. プロジェクトメンバー プロジェクト統 インフラ担当 コーディング担 括 倉原さん 当 鈴木さん 根岸さんCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  15. 15. 開発期間 ■初期開発 2012年7月〜2012年11月 ■現在のフェーズ クライアントへの導入・機能追加・改 善を続けています。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  16. 16. システム構成 サーバ環境 :AWS OS :AmazonLinux Webサーバ :nginx DB :MySQL5.5 言語 :PHP5.4 FuelPHP :1.3 その他 :Redis, FluentdCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  17. 17. 構成はこんな感じです。 NAT Proxy 監視 ログ Batch WebAp NAT DB Cache Availability Zone Availability Zone Availability ZoneCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  18. 18. FuelPHP採用の理由 ① スピード感のある開発が求められた。 ② CodeIgniter経験メンバーが居た。 ③ ロゴやサイトがイケててテンションが上 がる。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  19. 19. 開発にあたって 工夫した点をご紹介します。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  20. 20. ログクラスの拡張 ログ出力クラスを拡張して、システム監 視やエラー調査を効率化しています。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  21. 21. ログクラスの拡張 ① ログ出力先の変更 変更前:/logs/YYYY/MM/DD/~.php 変更後:/logs/~.phpCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  22. 22. ログクラスの拡張 ② ログ出力内容の変更 クラス名、ファンクション名、ユーザ名 等の情報を追加。ログからの各種調査を 行いやすいようにしています。 [YmdHis] [ClassName] [FunctionName] [UserName] [Message] ・・・ ・・・Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  23. 23. validationクラスの拡張 validationクラスを拡張して、独自の チェック方法を追加しました。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  24. 24. validationクラスの拡張 機能拡張① 日付チェック (YYYY-MM-DD形式&存在する日付)Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  25. 25. validationクラスの拡張 機能拡張② 英数&記号の一括チェックCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  26. 26. validationクラスの拡張 機能拡張③ アップロードされたcsvファイルに対する チェック。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  27. 27. paginationのカスタマイズ 標準で実装されているpagenationはGETで行 い、URLにページ番号がつく。 ↓ ajaxのPOSTを使用してpagenationが行える ように機能を追加しています。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  28. 28. Redisの活用 現在はセッションの管理や単純なデータ 保持にRedisを活用しています。 標準でアクセスクラスが用意されていま すので、簡単にRedisを利用する事がで きます。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  29. 29. Jenkinsでコーディングチェック Jenkinsを活用してFuelPHPのコーディング 規約をチェックできるようにしています。 リリース前にコーディング規約のチェック& ユニットテストを行い、その後にリリース を行うフローをとっています。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  30. 30. REST-APIの開発 外部システムとの連携に、REST-APIを 実装しています。 FuelPHP標準のController_Restクラス を継承して、簡単に構築することがで きました。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  31. 31. CS業務支援システムにおける工夫は 以上です。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  32. 32. 採用事例② SEM運用支援システムCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  33. 33. システム概要 インターネット広告の運用を効率的に行う ためのシステムです。 元々社内で開発・運用していた基幹システ ムを、社外の顧客に提供できるように再構 築を行っています。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  34. 34. プロジェクトメンバー 開発リーダー 開発メンバー 前田さん 中村さんCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  35. 35. 開発期間 ■初期開発 2012年8月〜2012年12月 ■現在のフェーズ 機能追加や改善をどんどん行って います。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  36. 36. システム構成 サーバ環境 :IIJ GIO(クラウド) OS :CentOS6 Webサーバ :Apache2,2 DB :MySQL5.5 言語 :PHP5.3 FuelPHP :1.2 その他 :Memcached, SmartyCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  37. 37. 構成はこんな感じです。 Intranet 監視(zabbix) Intranet VPN IIJ GIO(クラウ ド) Load Balancer Web / Cache / DB Web / Cache / DBCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  38. 38. FuelPHP採用の理由 フレームワーク未使用の社内システムから 機能を切り出した社外向けシステム。 ↓ 条件① 開発の制約が尐なく、自由度が高い。 条件② 既存の部品を再利用して高速開発できる。 この条件を満たしていたのがFuelPHPでした。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  39. 39. 開発にあたって 工夫した点をご紹介しますCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  40. 40. 機能単位のサブディレクトリ Model/Controller/Viewにサブディレク トリを作り、サブシステム単位で纏め て管理しています。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  41. 41. 機能単位のサブディレクトリCopyright © 2013 CAADvance, Inc. All Rights Reserved.
  42. 42. 機能単位のサブディレクトリ controller/memu/ディレクトリにloginを配置する場合、 loginコントローラーは class Controller_Menu_Login extends Controller_Template { このように名前を付ければOKです。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  43. 43. Smartyの導入 テンプレートエンジンとしてSmartyを 使っています。 経験メンバーが居たので、開発スピー ドを上げるためです。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  44. 44. Smartyの導入 FuelPHPでは簡単にSmartyを導入するこ とができます。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  45. 45. Smartyの導入 ■導入手順 ① fuel/app/vendor/ ここにダウンロードしたSmartyを配置。 ② fuel/app/config/config.php このファイルの always_load の packages に parser を 追加。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  46. 46. Smartyの導入 ■導入手順 ③ コントローラーでViewを読み込む際、 Response::forge(View_Smarty::forge(XXXX, $data)); このように記述すればOKです。 viewのテンプレートとして.smartyが読み込まれま す。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  47. 47. Viewにオブジェクトを渡す Viewにオブジェクトを渡せるように、 config.phpのwhitelisted_classesに該当クラ スを追加しました。 view表示の際に適用されるhtmlentitiesは、各 クラスに独自で実装する必要があります。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  48. 48. 既存資産の活用 DB/Memcacheへのアクセスは、移植元のシステムで 作ったものをそのまま使用しています。 ログ出力クラスについても、移植元のシステムで 使っていたものを修正して使用しています。 移植の工数を減らし、既存システムの資産を最大 限活かすためです。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  49. 49. SEM運用支援システムにおける工夫は 以上です。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  50. 50. 社内でFuelPHPを使用したメンバーに、 感想を聞いてみました。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  51. 51. 採用して良かった点。 ・非常にとっつきやすく、使いやすい。 ・入門書が発売されているので、学習しやすい。 ・namespace 初めは戸惑ったけど慣れると便利。 ・Coreクラスを理解・拡張しやすい。 ・バッチがとても作りやすい。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  52. 52. 苦労した点。 ・日本語のドキュメントが一部しか存在しな い。 ・URLに「_」が使用できないので戸惑った。 ・フレームワークのリリーススパンが短いた め、どのタイミングでバージョンアップする か悩む。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  53. 53. これからもシーエー・アドバンスは FuelPHPを積極的に活用していきたいと 思います。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  54. 54. ご清聴ありがとうございました。Copyright © 2013 CAADvance, Inc. All Rights Reserved.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×