SlideShare ist ein Scribd-Unternehmen logo
1 von 54
FuelPHP活用事例


                                                        2013年3月23日

                                                        株式会社シーエー・アドバンス
                                                        技術統括本部




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
シーエー・アドバンスってどんな会社?


                             2008年に、サイバーエージェントの子会社として設立。

                             インターネットメディアや広告の運用に関連する事業を中心に
                             行っている会社です。

                             従業員数は約350人で、東京と沖縄に事業所があります。
                             (東京約50名、沖縄約300名)

                             エンジニアチームは東京、沖縄合計で20名ほどです。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
弊社では、複数のプロジェクトでFuelPHPを採

              用しています。

              今日は、社内でFuelPHPをどのように利用して

              いるか紹介したいと思います。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
時間の関係で深い部分までは紹介できないの

              ですが、気になった点は終了後に質問してく

              ださい。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
FuelPHPを採用している
                                                  社内のプロジェクト




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
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 Reserved.
今日ピックアップするプロジェクト

                         ・CS業務支援システム

                         ・SEM運用支援システム




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
採用事例①
                                      CS (カスタマーサポート)
                                      社外向け業務支援システム




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
システム概要

                                          ソーシャルアプリに特化して、

                                               ○ユーザから問い合わせの受付

                                                        ↓

                                               ○開発者へのエスカレーション

                                                        ↓

                                               ○ユーザへの返信

                                          までを行う事ができるシステムです。

Copyright © 2013 CAADvance, Inc. All Rights Reserved.
プロジェクトメンバー




              プロジェクト統                                   インフラ担当   コーディング担
              括                                         倉原さん     当
              鈴木さん                                               根岸さん



Copyright © 2013 CAADvance, Inc. All Rights Reserved.
開発期間

                                    ■初期開発
                                    2012年7月〜2012年11月


                                    ■現在のフェーズ
                                    クライアントへの導入・機能追加・改
                                    善を続けています。


Copyright © 2013 CAADvance, Inc. All Rights Reserved.
システム構成

                             サーバ環境                        :AWS
                             OS                           :AmazonLinux
                             Webサーバ                       :nginx
                             DB                           :MySQL5.5
                             言語                           :PHP5.4
                             FuelPHP                      :1.3
                             その他                          :Redis, Fluentd
Copyright © 2013 CAADvance, Inc. All Rights Reserved.
構成はこんな感じです。




                                             NAT                   Proxy




                                監視           ログ          Batch     WebAp




                              NAT
                                              DB        Cache

                                               Availability Zone           Availability Zone   Availability Zone




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
FuelPHP採用の理由

                           ① スピード感のある開発が求められた。

                           ② CodeIgniter経験メンバーが居た。

                           ③ ロゴやサイトがイケててテンションが上
                           がる。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
開発にあたって
                                  工夫した点をご紹介します。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
ログクラスの拡張



                     ログ出力クラスを拡張して、システム監
                     視やエラー調査を効率化しています。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
ログクラスの拡張

                        ① ログ出力先の変更

                        変更前:/logs/YYYY/MM/DD/~.php

                        変更後:/logs/~.php




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
ログクラスの拡張

                        ② ログ出力内容の変更

                        クラス名、ファンクション名、ユーザ名
                        等の情報を追加。ログからの各種調査を
                        行いやすいようにしています。

                [YmdHis] [ClassName] [FunctionName] [UserName] [Message]
                ・・・
                ・・・

Copyright © 2013 CAADvance, Inc. All Rights Reserved.
validationクラスの拡張



                  validationクラスを拡張して、独自の
                  チェック方法を追加しました。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
validationクラスの拡張


                       機能拡張①
                       日付チェック
                       (YYYY-MM-DD形式&存在する日付)




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
validationクラスの拡張


                       機能拡張②
                       英数&記号の一括チェック




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
validationクラスの拡張


                 機能拡張③
                 アップロードされたcsvファイルに対する
                 チェック。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
paginationのカスタマイズ


                        標準で実装されているpagenationはGETで行
                        い、URLにページ番号がつく。
                               ↓
                        ajaxのPOSTを使用してpagenationが行える
                        ように機能を追加しています。



Copyright © 2013 CAADvance, Inc. All Rights Reserved.
Redisの活用


                       現在はセッションの管理や単純なデータ
                       保持にRedisを活用しています。


                       標準でアクセスクラスが用意されていま
                       すので、簡単にRedisを利用する事がで
                       きます。


Copyright © 2013 CAADvance, Inc. All Rights Reserved.
Jenkinsでコーディングチェック


                  Jenkinsを活用してFuelPHPのコーディング
                  規約をチェックできるようにしています。


                  リリース前にコーディング規約のチェック&
                  ユニットテストを行い、その後にリリース
                  を行うフローをとっています。


Copyright © 2013 CAADvance, Inc. All Rights Reserved.
REST-APIの開発

                        外部システムとの連携に、REST-APIを
                        実装しています。


                        FuelPHP標準のController_Restクラス
                        を継承して、簡単に構築することがで
                        きました。


Copyright © 2013 CAADvance, Inc. All Rights Reserved.
CS業務支援システムにおける工夫は

                                                        以上です。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
採用事例②

                                                SEM運用支援システム




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
システム概要
                  インターネット広告の運用を効率的に行う
                  ためのシステムです。


                  元々社内で開発・運用していた基幹システ
                  ムを、社外の顧客に提供できるように再構
                  築を行っています。



Copyright © 2013 CAADvance, Inc. All Rights Reserved.
プロジェクトメンバー




                                          開発リーダー          開発メンバー
                                          前田さん            中村さん




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
開発期間

                                 ■初期開発
                                 2012年8月〜2012年12月


                                 ■現在のフェーズ
                                 機能追加や改善をどんどん行って
                                 います。


Copyright © 2013 CAADvance, Inc. All Rights Reserved.
システム構成

                            サーバ環境                         :IIJ GIO(クラウド)
                            OS                            :CentOS6
                            Webサーバ                        :Apache2,2
                            DB                            :MySQL5.5
                            言語                            :PHP5.3
                            FuelPHP                       :1.2
                            その他                           :Memcached, Smarty
Copyright © 2013 CAADvance, Inc. All Rights Reserved.
構成はこんな感じです。
                                 Intranet
                                            監視(zabbix)
                                                                             Intranet


                                                  VPN



                  IIJ GIO(クラウ
                         ド)
                                                                           Load Balancer




                                                        Web / Cache / DB                   Web / Cache / DB




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
FuelPHP採用の理由

                        フレームワーク未使用の社内システムから
                        機能を切り出した社外向けシステム。
                                                                   ↓
                        条件① 開発の制約が尐なく、自由度が高い。
                        条件② 既存の部品を再利用して高速開発できる。


                        この条件を満たしていたのがFuelPHPでした。


Copyright © 2013 CAADvance, Inc. All Rights Reserved.
開発にあたって
                                      工夫した点をご紹介します




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
機能単位のサブディレクトリ



                        Model/Controller/Viewにサブディレク
                        トリを作り、サブシステム単位で纏め
                        て管理しています。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
機能単位のサブディレクトリ




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
機能単位のサブディレクトリ



                        controller/memu/ディレクトリにloginを配置する場合、
                        loginコントローラーは


                        class Controller_Menu_Login extends Controller_Template {


                        このように名前を付ければOKです。



Copyright © 2013 CAADvance, Inc. All Rights Reserved.
Smartyの導入


                        テンプレートエンジンとしてSmartyを
                        使っています。
                        経験メンバーが居たので、開発スピー
                        ドを上げるためです。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
Smartyの導入


                        FuelPHPでは簡単にSmartyを導入するこ
                        とができます。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
Smartyの導入

                        ■導入手順
                        ① fuel/app/vendor/
                                   ここにダウンロードしたSmartyを配置。


                        ② fuel/app/config/config.php
                                   このファイルの
                                   always_load の packages に parser を
                        追加。
Copyright © 2013 CAADvance, Inc. All Rights Reserved.
Smartyの導入

                        ■導入手順
                        ③ コントローラーでViewを読み込む際、




                        Response::forge(View_Smarty::forge(XXXX', $data));


                              このように記述すればOKです。
                              viewのテンプレートとして.smartyが読み込まれま
                        す。
Copyright © 2013 CAADvance, Inc. All Rights Reserved.
Viewにオブジェクトを渡す


                       Viewにオブジェクトを渡せるように、
                       config.phpのwhitelisted_classesに該当クラ
                       スを追加しました。


                       view表示の際に適用されるhtmlentitiesは、各
                       クラスに独自で実装する必要があります。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
既存資産の活用


                    DB/Memcacheへのアクセスは、移植元のシステムで
                    作ったものをそのまま使用しています。


                    ログ出力クラスについても、移植元のシステムで
                    使っていたものを修正して使用しています。


                    移植の工数を減らし、既存システムの資産を最大
                    限活かすためです。
Copyright © 2013 CAADvance, Inc. All Rights Reserved.
SEM運用支援システムにおける工夫は

                                                        以上です。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
社内でFuelPHPを使用したメンバーに、

                        感想を聞いてみました。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
採用して良かった点。


                        ・非常にとっつきやすく、使いやすい。

                        ・入門書が発売されているので、学習しやすい。

                        ・namespace 初めは戸惑ったけど慣れると便利。

                        ・Coreクラスを理解・拡張しやすい。

                        ・バッチがとても作りやすい。



Copyright © 2013 CAADvance, Inc. All Rights Reserved.
苦労した点。


                          ・日本語のドキュメントが一部しか存在しな

                          い。

                          ・URLに「_」が使用できないので戸惑った。

                          ・フレームワークのリリーススパンが短いた

                          め、どのタイミングでバージョンアップする

                          か悩む。
Copyright © 2013 CAADvance, Inc. All Rights Reserved.
これからもシーエー・アドバンスは

              FuelPHPを積極的に活用していきたいと

              思います。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.
ご清聴ありがとうございました。




Copyright © 2013 CAADvance, Inc. All Rights Reserved.

Weitere ähnliche Inhalte

Ähnlich wie Fuel php活用事例

2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage PlatformMasaki Nakagawa
 
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方Takahiro Imanaka
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbixsoftlayerjp
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AzareaCluster
 
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAmazon Web Services Japan
 
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014Yasuhiro Horiuchi
 
Engine Yard - 商用マルチクラウドPaaS
Engine Yard - 商用マルチクラウドPaaSEngine Yard - 商用マルチクラウドPaaS
Engine Yard - 商用マルチクラウドPaaSTakahiro Imanaka
 
リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例Recruit Technologies
 
SIerとクラウドの付き合い方
SIerとクラウドの付き合い方SIerとクラウドの付き合い方
SIerとクラウドの付き合い方Yusuke Suzuki
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterpriseKoichiro Sumi
 
クラウド活用で実現する、開発・保守の効率化
クラウド活用で実現する、開発・保守の効率化クラウド活用で実現する、開発・保守の効率化
クラウド活用で実現する、開発・保守の効率化Hiroshi Koyama
 
Cloud native strategy ver1.1
Cloud native strategy ver1.1Cloud native strategy ver1.1
Cloud native strategy ver1.1TomohiroDoi
 
Data analysis platform ver1.1
Data analysis platform ver1.1Data analysis platform ver1.1
Data analysis platform ver1.1TomohiroDoi
 
[CTO Night & Day 2019] ML services: MLOps #ctonight
[CTO Night & Day 2019] ML services: MLOps #ctonight[CTO Night & Day 2019] ML services: MLOps #ctonight
[CTO Night & Day 2019] ML services: MLOps #ctonightAmazon Web Services Japan
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops裕貴 荒井
 
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントToshiyuki Konparu
 
[網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI [網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI Hiromichi Koga
 
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconアバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconDeNA
 
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門Amazon Web Services Japan
 

Ähnlich wie Fuel php活用事例 (20)

2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
 
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)
 
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
 
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
 
Engine Yard - 商用マルチクラウドPaaS
Engine Yard - 商用マルチクラウドPaaSEngine Yard - 商用マルチクラウドPaaS
Engine Yard - 商用マルチクラウドPaaS
 
リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例
 
SIerとクラウドの付き合い方
SIerとクラウドの付き合い方SIerとクラウドの付き合い方
SIerとクラウドの付き合い方
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterprise
 
クラウド活用で実現する、開発・保守の効率化
クラウド活用で実現する、開発・保守の効率化クラウド活用で実現する、開発・保守の効率化
クラウド活用で実現する、開発・保守の効率化
 
Cloud native strategy ver1.1
Cloud native strategy ver1.1Cloud native strategy ver1.1
Cloud native strategy ver1.1
 
Data analysis platform ver1.1
Data analysis platform ver1.1Data analysis platform ver1.1
Data analysis platform ver1.1
 
[CTO Night & Day 2019] ML services: MLOps #ctonight
[CTO Night & Day 2019] ML services: MLOps #ctonight[CTO Night & Day 2019] ML services: MLOps #ctonight
[CTO Night & Day 2019] ML services: MLOps #ctonight
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops
 
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
 
雲の上の継続的デリバリー - Cloudforce Japan 2012
雲の上の継続的デリバリー - Cloudforce Japan 2012雲の上の継続的デリバリー - Cloudforce Japan 2012
雲の上の継続的デリバリー - Cloudforce Japan 2012
 
[網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI [網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI
 
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconアバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
 
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
 

Fuel php活用事例

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