Fuel php活用事例

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.
1 de 54

Recomendados

雲の上の継続的デリバリー por
雲の上の継続的デリバリー雲の上の継続的デリバリー
雲の上の継続的デリバリーSalesforce Developers Japan
2K visualizações33 slides
スキニーなシステム開発にぴったりの契約形態 por
スキニーなシステム開発にぴったりの契約形態スキニーなシステム開発にぴったりの契約形態
スキニーなシステム開発にぴったりの契約形態Eiwa System Management, Inc.
1.1K visualizações56 slides
Bitbucketを活用したコードレビュー改善事例 por
Bitbucketを活用したコードレビュー改善事例Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例Kosuke Ito
5.9K visualizações37 slides
保守運用コストの適正化事例 20120725 por
保守運用コストの適正化事例 20120725保守運用コストの適正化事例 20120725
保守運用コストの適正化事例 20120725コシキ・バリューハブ株式会社/KOSHIKI ValueHub
9.7K visualizações22 slides
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312 por
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312Yuki Tagami
2.3K visualizações20 slides
FuelPHP por
FuelPHPFuelPHP
FuelPHPNitin Reddy Katkam
4.6K visualizações18 slides

Mais conteúdo relacionado

Similar a Fuel php活用事例

2014-04-22 Ques #4 Automation Testing of Mobage Platform por
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
6.6K visualizações64 slides
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方 por
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方Takahiro Imanaka
2.8K visualizações50 slides
Automation with SoftLayer and Zabbix por
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbixsoftlayerjp
1.5K visualizações52 slides
AZAREA-Clusterセミナー(クラウドEXPO2013春) por
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AzareaCluster
852 visualizações23 slides
AWS における Microservices Architecture と DevOps を推進する組織と人とツール por
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAmazon Web Services Japan
3.2K visualizações57 slides
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014 por
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014はじめてのアマゾンウェブサービス @ JAWS DAYS 2014
はじめてのアマゾンウェブサービス @ JAWS DAYS 2014Yasuhiro Horiuchi
4.1K visualizações67 slides

Similar a Fuel php活用事例(20)

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

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.