Submit Search
Upload
KLab Social Game Platform ~Symfony1.4活用事例~
•
4 likes
•
11,147 views
K
KLab株式会社
Follow
2010年4月16日の開催された「KAYAC×KLab合同勉強会」のKLabセッションです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 26
Download now
Download to read offline
Recommended
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
Yoichi Toyota
.NETの最近
.NETの最近
Makoto Nishimura
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
Yukihiko SAWANOBORI
LINE 2016 エンジニアインターン 02
LINE 2016 エンジニアインターン 02
LINE Corporation
PHP最速フレームワークPhalconの紹介
PHP最速フレームワークPhalconの紹介
Yuji Iwai
Avalonia for MacApps
Avalonia for MacApps
c-mitsuba
第8回テックヒルズIBM資料
第8回テックヒルズIBM資料
Tomoari Yasuda
Inside of Baremetal Server Deployment on Private Cloud
Inside of Baremetal Server Deployment on Private Cloud
LINE Corporation
Recommended
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
Yoichi Toyota
.NETの最近
.NETの最近
Makoto Nishimura
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
Yukihiko SAWANOBORI
LINE 2016 エンジニアインターン 02
LINE 2016 エンジニアインターン 02
LINE Corporation
PHP最速フレームワークPhalconの紹介
PHP最速フレームワークPhalconの紹介
Yuji Iwai
Avalonia for MacApps
Avalonia for MacApps
c-mitsuba
第8回テックヒルズIBM資料
第8回テックヒルズIBM資料
Tomoari Yasuda
Inside of Baremetal Server Deployment on Private Cloud
Inside of Baremetal Server Deployment on Private Cloud
LINE Corporation
入門者の方向け Azure PlayFab の簡単な紹介
入門者の方向け Azure PlayFab の簡単な紹介
YutoNishine
Ansible
Ansible
Hideo Amezawa
Mcbeサーバーリスト
Mcbeサーバーリスト
kaisou wakame
a-blog cms の基本 福岡版
a-blog cms の基本 福岡版
Kasumi Morita
Core Animationの話 Part.1
Core Animationの話 Part.1
Yuichi Fujishige
最近のPerlバイナリマネージャー Perl 編
最近のPerlバイナリマネージャー Perl 編
Tokuhiro Matsuno
運用に効く!JVMオプション三選
運用に効く!JVMオプション三選
Kazuhiro Oinuma
CAKeyframeAnimation
CAKeyframeAnimation
Yuichi Fujishige
symfonyの始め方
symfonyの始め方
Hidenori Goto
Abc words20130615
Abc words20130615
Toshihiro Yoshiura
Phpconf2010
Phpconf2010
KLab株式会社
KLabのSI事業について
KLabのSI事業について
KLab株式会社
ネットワークの負荷分散を手軽に - OSC2015 Hokkaido
ネットワークの負荷分散を手軽に - OSC2015 Hokkaido
Shinya Takebayashi
MySQL負荷分散の方法
MySQL負荷分散の方法
佐久本正太
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
KLab株式会社
負荷分散勉強会
負荷分散勉強会
Yuji Otani
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Yoshito Tabuchi
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Yoshito Tabuchi
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
Manabu Shimobe
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
OCHI Shuji
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
晃 遠山
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Yuya Yamaki
More Related Content
What's hot
入門者の方向け Azure PlayFab の簡単な紹介
入門者の方向け Azure PlayFab の簡単な紹介
YutoNishine
Ansible
Ansible
Hideo Amezawa
Mcbeサーバーリスト
Mcbeサーバーリスト
kaisou wakame
a-blog cms の基本 福岡版
a-blog cms の基本 福岡版
Kasumi Morita
Core Animationの話 Part.1
Core Animationの話 Part.1
Yuichi Fujishige
最近のPerlバイナリマネージャー Perl 編
最近のPerlバイナリマネージャー Perl 編
Tokuhiro Matsuno
運用に効く!JVMオプション三選
運用に効く!JVMオプション三選
Kazuhiro Oinuma
CAKeyframeAnimation
CAKeyframeAnimation
Yuichi Fujishige
symfonyの始め方
symfonyの始め方
Hidenori Goto
Abc words20130615
Abc words20130615
Toshihiro Yoshiura
What's hot
(10)
入門者の方向け Azure PlayFab の簡単な紹介
入門者の方向け Azure PlayFab の簡単な紹介
Ansible
Ansible
Mcbeサーバーリスト
Mcbeサーバーリスト
a-blog cms の基本 福岡版
a-blog cms の基本 福岡版
Core Animationの話 Part.1
Core Animationの話 Part.1
最近のPerlバイナリマネージャー Perl 編
最近のPerlバイナリマネージャー Perl 編
運用に効く!JVMオプション三選
運用に効く!JVMオプション三選
CAKeyframeAnimation
CAKeyframeAnimation
symfonyの始め方
symfonyの始め方
Abc words20130615
Abc words20130615
Viewers also liked
Phpconf2010
Phpconf2010
KLab株式会社
KLabのSI事業について
KLabのSI事業について
KLab株式会社
ネットワークの負荷分散を手軽に - OSC2015 Hokkaido
ネットワークの負荷分散を手軽に - OSC2015 Hokkaido
Shinya Takebayashi
MySQL負荷分散の方法
MySQL負荷分散の方法
佐久本正太
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
KLab株式会社
負荷分散勉強会
負荷分散勉強会
Yuji Otani
Viewers also liked
(6)
Phpconf2010
Phpconf2010
KLabのSI事業について
KLabのSI事業について
ネットワークの負荷分散を手軽に - OSC2015 Hokkaido
ネットワークの負荷分散を手軽に - OSC2015 Hokkaido
MySQL負荷分散の方法
MySQL負荷分散の方法
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
負荷分散勉強会
負荷分散勉強会
Similar to KLab Social Game Platform ~Symfony1.4活用事例~
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Yoshito Tabuchi
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Yoshito Tabuchi
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
Manabu Shimobe
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
OCHI Shuji
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
晃 遠山
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Yuya Yamaki
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
Hiromu Shioya
Al mininum 47redmine-2nd
Al mininum 47redmine-2nd
mikoto20000
エンジニアという職業について
エンジニアという職業について
Hisatoshi Kikumoto
Silverlightの今
Silverlightの今
信之 岩永
SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!
Kazumi IWANAGA
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
ericsagnes
CakePHP PHP Framework
CakePHP PHP Framework
ryota ichie
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
Intalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
Game Tools & Middleware Forum
PHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 Silex
Masao Maeda
5分でわかるPhalconPHP
5分でわかるPhalconPHP
Shohei Tai
5分でわかるphalcon php
5分でわかるphalcon php
Yusaku Kinoshita
Similar to KLab Social Game Platform ~Symfony1.4活用事例~
(20)
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
Al mininum 47redmine-2nd
Al mininum 47redmine-2nd
エンジニアという職業について
エンジニアという職業について
Silverlightの今
Silverlightの今
SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
CakePHP PHP Framework
CakePHP PHP Framework
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Intalio japan special cloud workshop
Intalio japan special cloud workshop
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
GTMF 2017:Photonの実用ケーススタディご紹介とPlayCanvas新機能 GMOクラウド株式会社
PHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 Silex
5分でわかるPhalconPHP
5分でわかるPhalconPHP
5分でわかるphalcon php
5分でわかるphalcon php
More from KLab株式会社
KLab si_case
KLab si_case
KLab株式会社
KLab si_operation
KLab si_operation
KLab株式会社
Cheerz presentation110217
Cheerz presentation110217
KLab株式会社
アクセルメール小冊子2010「安定・確実な携帯メール配信マニュアル ~『届かない』『遅延する』『文字化けする』の回避~」(抜粋版)
アクセルメール小冊子2010「安定・確実な携帯メール配信マニュアル ~『届かない』『遅延する』『文字化けする』の回避~」(抜粋版)
KLab株式会社
New cheerz slideshare_version
New cheerz slideshare_version
KLab株式会社
大ヒットソーシャルアプリの裏側
大ヒットソーシャルアプリの裏側
KLab株式会社
Dsas周りのお話
Dsas周りのお話
KLab株式会社
Bazaar
Bazaar
KLab株式会社
Apache2.3 探訪
Apache2.3 探訪
KLab株式会社
ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid
ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid
KLab株式会社
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
KLab株式会社
More from KLab株式会社
(11)
KLab si_case
KLab si_case
KLab si_operation
KLab si_operation
Cheerz presentation110217
Cheerz presentation110217
アクセルメール小冊子2010「安定・確実な携帯メール配信マニュアル ~『届かない』『遅延する』『文字化けする』の回避~」(抜粋版)
アクセルメール小冊子2010「安定・確実な携帯メール配信マニュアル ~『届かない』『遅延する』『文字化けする』の回避~」(抜粋版)
New cheerz slideshare_version
New cheerz slideshare_version
大ヒットソーシャルアプリの裏側
大ヒットソーシャルアプリの裏側
Dsas周りのお話
Dsas周りのお話
Bazaar
Bazaar
Apache2.3 探訪
Apache2.3 探訪
ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid
ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
Recently uploaded
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Recently uploaded
(9)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
KLab Social Game Platform ~Symfony1.4活用事例~
1.
KLab Social Game
Platform Symfony1.4活用事例 Kラボラトリー 研究開発部 高田敦史
2.
自己紹介 書籍依存症
3.
症候
南面 北面
4.
アジェンダ •
KLab Social Game Platform • Symfonyとの付き合い方 • Symfonyの機能拡張 • Symfonyを使った運用体制
5.
KLab Social Game
Platform • ビジョン – ナンバーワン • 目標 – 打倒、6,000pv/sec – 1ヶ月で横展開 – 24時間(3営業日)で使える
6.
構成
画像 / コンテンツ 個別Game 個別 Person アイテム ショップ ポイント 課金 掲示板 Friend ジェネレータ Avatarジェネレータ Flash Game Marketing Tools KLab Social Game Platform DBI OpenSocial API Wrapper SNS Mock CMS AN Standard(SimpleFramework) Server PHP5 / Symfony 1.4 KeyValue Message MySQL5 Strage Queue
7.
Symfonyとの付き合い方 • つくりたいのは、 –
「携帯サイト」 – 「ソーシャルアプリ」 • 必要なのは、 – シンプルで高負荷に耐えられるフレームワーク • 高機能なORマッパー? ジェネレータ? – 必要ない
8.
KLabにとってのSymfony • Symfonyの骨格だけを利用したい –
設定ファイルやオートローダー、基本の機能を0 からつくる必要はない • Symfonyは意外と柔軟 – 必要な部分だけ使う
9.
目標と手段 • 目標: 高負荷サイト
– ×「簡単につくれるけど、チューニングできない」 – ○「シンプルで、機能追加しやすい」 • 手段: Symfony + ??? – Symfonyは高機能だけど、拡張性も高い
10.
Symfonyを拡張しよう • プラグインを最大限活用 –
改造しすぎ… – でも汎用的で移植は簡単! • プライベートプラグイン – http://www.symfony- project.org/jobeet/1_4/Propel/ja/20
11.
Symfonyクラスの改造 • プラグインの中に継承クラスを追加 • +
必要な部分だけ上書き • + クラス名は設定ファイルで指定 – Symfony本体を書き換えることなく機能追加でき る
12.
3つのSymfonyプラグイン • an_standard_core /
cms_core – symfonyのMVCフレームワークを置き換える – シンプルなテンプレートエンジン 主にこれの話 – 汎用的なサイト構築 をします。 • social_game_platform – ソーシャルゲームに特化した機能 • mock_server – OpenSocialのガジェットサーバー+APIサーバー のダミー
13.
AN Standard Core •
リクエストの処理、テンプレート、フォームなど、 アクション内で使用するほとんどの機能を停 止 • シンプルなコントローラ + テンプレートエンジ ンを使用 – PHPテンプレートに変えて、CMSと連動した HTMLテンプレート – UserAgent(端末情報)、絵文字の変換など携帯 サイト特有の機能
14.
フロントコントローラー書換え • フロントコントローラーを書換え
– web/main.php • sfContext -> dispatch を呼ばない – symfonyの通常のディスパッチ遷移をほとんど通りません <?php require_once realpath(dirname(__FILE__).'/../plugins/an_standard_corePlugin/lib/com mon/Initialize.php'); $configuration = ProjectConfiguration::getApplicationConfiguration('main', ENV::get('KG_ENV'), true); Batista::dispatch($configuration);
15.
比較 • 通常のSymfony
– View: PHPテンプレート – Controller: sfRequest などを使用した Symfony独自のコントローラー • AN Standard – View: 簡易テンプレートエンジン – Controller: 独自のWebフレームワーク
16.
処理の流れ フィルター: フィルター
UserAgent の解析(キャリア情報など) リクエストパラメーターの解析 CMS: フィルター: フィルター テンプレートの編集 URLのパスから適切なアクションを調べて実行 アクション: アクション DBからHTMLテンプレートを取得してタグを置換
17.
データベース • モデルクラスは、標準のDoctrine ではなく
Propel を使用 • 「本番 / 検収」「Master / Slave」の使い分け – AN_SfPropelDatabase – 複数のDBを使いわけられるようにPropelを拡張 – databases.yml で独自クラスを設定
18.
ツール群 •
Memcache • TokyoTyrant • Session • Flash合成 • 画像(アバター)合成 • 絵文字変換 – Symfonyの設定と連携して使用できるラッパーク ラスを用意
19.
ここまでのまとめ • Symfonyは改造上等 • フロントコントローラーを書き換えれば、大部
分の機能を削除して、必要な機能だけ使うこ ともできる • プライベートプラグインの活用がおすすめ • 継承 + 機能追加
20.
運用体制 • コア機能 • +
ソーシャルゲーム汎用機能 • + 個別アプリ – 担当に合わせて開発を分担 • Symfonyタスクを利用した自動化 • ブランチ + マージ – 「汎用部分の実装」と「アプリの実装」が分かれて いるとプロジェクト管理もスムーズ
21.
オリジナルSymfonyタスク • klab:build-table
– SQLでのテーブル作成を自動化 • klab:load-sql – フィクスチャをSQLでロードできるように • klab:load-template – CMSテンプレートの読み込み • klab:build-model – Propelのモデルクラスに機能追加
22.
最新の変更を適用するには? developer@goldfish:/home/developer/socialdev$ bzr pull developer@goldfish:/home/developer/socialdev$
./symfony klab:load-all • スキーマ修正の適用 + フィクスチャのロード + キャッシュクリア…etc.すべてコマンド1つ
23.
Platformとアプリケーションの
並行開発 • リポジトリを2つのブランチに分けて開発(Bazzar) • Platform側: plugins + apps(スケルトン) • アプリケーション側: apps – 開発するディレクトリが別。追加開発はマージする App App App Platform ver.0.1 Platform ver.0.2 Platform ver.0.2
24.
デモ
25.
まとめ • Symfonyは改造上等 • 必要な部分だけを使えるフレームワーク •
工夫しだいでどんどん使いやすくなる
26.
ご傾聴ありがとうございました
Download now