20100902symfony xop3

Preview:

Citation preview

OpenPNE Project http://openpne.jp

OpenPNE3OpenPNE3で学ぶで学ぶsymfonysymfony勉強会勉強会

~~OpenPNEOpenPNEのモバイル機能とのモバイル機能とsymfonysymfony~~

株式会社手嶋屋 手嶋守tejima@tejimaya.com

Twitter @tejima

【OpenPNE説明資料】 PAGE2OpenPNE Project http://openpne.jp

株式会社手嶋屋概要

【株式会社手嶋屋】・会社名 株式会社手嶋屋

・設立 2002年 3月・役員 代表取締役:手嶋 守

取締役:大平 哲郎・資本金 ¥16,000,000・社員数 10名

・本社 東京都板橋区舟渡2-11-23・営業所 東京都新宿区新宿1-6-8 

新宿鈴木ビルA館7F

・事業内容 ・オープンソースSNSエンジン「OpenPNE」を利用したSNSの企画・開発・運用含むASP総合サービスの提供

・主要取引先 ソネットエンタテインメント株式会社株式会社ACCESS日本電気株式会社株式会社メディヴァ

・関連書籍 『図解でわかるiアプリプログラミング―Panel & Canvasコンポーネント』(日本実業出版社)

       『OpenPNEによるSNSサイトの構築

         オープンソース徹底活用』         (秀和システム)

OpenPNEOpenPNEを発明したを発明したソフトウエア企業ソフトウエア企業

【OpenPNE説明資料】 PAGE3OpenPNE Project http://openpne.jp

【OpenPNE説明資料】 PAGE4OpenPNE Project http://openpne.jp

OpenPNE 手嶋屋の使命

OpenPNEOpenPNEプロジェクトプロジェクト※オープンソース開発非営利団体※オープンソース開発非営利団体

手嶋屋の使命:手嶋屋の使命:

「「OpenPNEOpenPNEを通じて組織を進を通じて組織を進化させる」化させる」

OpenPNEOpenPNEの使命:の使命:

「情報社会をつくる」「情報社会をつくる」

株式会社手嶋屋株式会社手嶋屋※事業会社※事業会社

【OpenPNE説明資料】 PAGE5OpenPNE Project http://openpne.jp

OpenPNEに取り組むきっかけ

2030年に、SFのような情報社会が実現したとして、それは現在どんな姿を

しているのだろう?

※自分は情報社会の設計者になりたい

【OpenPNE説明資料】 PAGE6OpenPNE Project http://openpne.jp

OpenPNEプロジェクト紹介

組織にひとつOpenPNE 情報たくさんOpenPNE

情報ネットワーク社会を実現する

ソフトウエア開発プロジェクトだれでも無料で、自由に使える

オープンソース

【OpenPNE説明資料】 PAGE7OpenPNE Project http://openpne.jp

OpenSocialApplication

OpenSocialApplication

OauthApplication

OauthApplication

GMOWebMoney

GMOWebMoney

PayPalPayPal

MS Exchange

MS Exchange

その他認証基盤SAML,LDAP,

OpenID,携帯認証

その他認証基盤SAML,LDAP,

OpenID,携帯認証

IBM NotesIBM Notes

その他外部課金・ポイント

基盤

その他外部課金・ポイント

基盤

OpenPNE3について

OpenPNE3はソーシャルプラットフォームとして進化・OpenSocial

・OpenID

・OAuth

・プラグインアーキテクチャ

OpenPNE3プラットフォーム

Core Application

DB

携帯認証WebAPI

OpenSocialAPI OpenPNE Plugin APIOpenID認証

管理画面

認証

フレンド

国際化 コミュニティ

プロフィール

LDAP認証小窓

日記機能

イベント機能

アルバム機能

ECeラーニング

あしあと機能

CMS

メンバー管理 ID連携API

課金API WEB APIゲーム CRM

外部クラウドサービス

【OpenPNE説明資料】 PAGE8OpenPNE Project http://openpne.jp

ソーシャルメディアマップ

中小企業×SNSOffice Edition

エンタメ系

少人数

多人数

ビジネス系 生活系

mixi・GREE・モバゲーが得意とする多人数マス型エンタメSNS

大企業×SNSEnterprise Edition

新聞×SNS

政治×SNSOpenPNE Change!

家族×SNS

地域×SNS

ソーシャルアパートメント×SNS

ファンクラブ×SNSClub Edition

宗教×SNS

団体×SNS大学×SNS

OpenPNE Academy

オンラインゲームアーケードゲーム×SNS

Game Edition

携帯ゲーム×SNS

雑誌×SNS

同窓会×SNS

日本×外国×SNS

メーカー×SNSCRM Edition

OpenPNE3OpenPNE3は週は週100100~~140140サイトの設置ペースサイトの設置ペース

【OpenPNE説明資料】 PAGE9OpenPNE Project http://openpne.jp

OpenPNE 3.6概要

英語、日本語国際化対応

Apache 2.0 Licenseライセンス

MySQL4.1-データベース

2006年以降に発売されたほとんどの携帯に対応(300機種以上)

対応ブラウザ(Mobile)

IE6-8 Firefox2-3 Safari Chrome対応ブラウザ(PC)

Ver1.4symfony

PHP5.2-開発言語

【OpenPNE説明資料】 PAGE10OpenPNE Project http://openpne.jp

ソーシャルメディアマップ

中小企業×SNSOffice Edition

エンタメ系

少人数

多人数

ビジネス系 生活系

mixi・GREE・モバゲーが得意とする多人数マス型エンタメSNS

大企業×SNSEnterprise Edition

新聞×SNS

政治×SNSOpenPNE Change!

家族×SNS

地域×SNS

ソーシャルアパートメント×SNS

ファンクラブ×SNSClub Edition

宗教×SNS

団体×SNS大学×SNS

OpenPNE Academy

オンラインゲームアーケードゲーム×SNS

Game Edition

携帯ゲーム×SNS

雑誌×SNS

同窓会×SNS

日本×外国×SNS

メーカー×SNSCRM Edition

中国アメリカ

ヨーロッパ連合・EU

【OpenPNE説明資料】 PAGE11OpenPNE Project http://openpne.jp

OpenPNE3にはsymfony開発に役立つ携帯機能が盛りだくさんです。

本日はOpenPNE3に搭載されている3つの機能

・携帯機種振り分け

・絵文字対応

・携帯用フォームレンダリング

を紹介します。

【OpenPNE説明資料】 PAGE12OpenPNE Project http://openpne.jp

1:symfonyで携帯の機種振り分け

【OpenPNE説明資料】 PAGE13OpenPNE Project http://openpne.jp

トップページにアクセスされたら、ブラウザのユーザーエージェントから携帯の機種を判別し、携帯電話は携帯に、それ以外ならPCに振り分けをしたい。携帯キャリアのIPアドレス帯域も判別して

opMobileUserAgent.class.php

を使う

【OpenPNE説明資料】 PAGE14OpenPNE Project http://openpne.jp

lib/util/opMobileUserAgent.class.php

$is_mobile = !opMobileUserAgent::getInstance()

->getMobile()->isNonMobile();

【OpenPNE説明資料】 PAGE15OpenPNE Project http://openpne.jp

この機能の実体はPEAR Mobileライブラリ

lib/vendor/PEAR/Net/UserAgent/Mobile.php

さらにOpenPNE3では、携帯IPアドレス帯域のチェックも行っている!lib/config/config/mobile_ip_address.yml

150以上のIP帯域を登録、更新中。

【OpenPNE説明資料】 PAGE16OpenPNE Project http://openpne.jp

2:symfonyで絵文字を使う

【OpenPNE説明資料】 PAGE17OpenPNE Project http://openpne.jp

絵文字もたのしいけど、フランス産のsymfonyには当然含まれていない。OpenPNE3では、絵文字関係の機能はOpenPNE2のソースコードをライブラリとして利用している。

lib/vendor/OpenPNE2/KtaiEmoji/KtaiEmoji.php

【OpenPNE説明資料】 PAGE18OpenPNE Project http://openpne.jp

symfonyからは、アプリケーション(apps)のフィルターとして処理している。

apps/mobile_frontend/config/filters.ymlで登録設定/lib/filter/opEmojiFilter.class.phpに実体がある。

opEmojiFilterの実体。

【OpenPNE説明資料】 PAGE19OpenPNE Project http://openpne.jp

絵文字関連機能はOpenPNE本体と独立しています。

・ライブラリ

・フィルター実体

・フィルター設定

の3つセットを切り出せば、OpenPNE外でも利用できます。OpenPNE3はApacheライセンス。

部分だけをライブラリとして使うのも自由です!

【OpenPNE説明資料】 PAGE20OpenPNE Project http://openpne.jp

3:symfonyで携帯用Formを使う

【OpenPNE説明資料】 PAGE21OpenPNE Project http://openpne.jp

OpenPNE3未実装でした!

※Ver3.7で実装予定

【OpenPNE説明資料】 PAGE22OpenPNE Project http://openpne.jp

Formについて

symfonyのFormハンドリング機構(sfForm)は複雑なフォームハンドリング処理を抽象化してくれる。

しかしPCをターゲットにしているため、自動生成されたFormタグをそのまま携帯で使うと不具合が起きることがある。

【OpenPNE説明資料】 PAGE23OpenPNE Project http://openpne.jp

主な不具合

・要素タグの個数制限(ネストしすぎ)

・HTML容量制限

OpenPNE3でも、国の選択などで不具合が起きる。この問題を解決するため、携帯に最適化されたフォームタグを発行するようにsfFormを拡張している。

【OpenPNE説明資料】 PAGE24OpenPNE Project http://openpne.jp

4:symfonyでモバイルオープンソーシャルを使う

【OpenPNE説明資料】 PAGE25OpenPNE Project http://openpne.jp