25
OpenPNE Project http://openpne.jp OpenPNE3 OpenPNE3 で学ぶ で学ぶ symfony symfony 勉強会 勉強会 OpenPNE OpenPNE のイ機能と のイ機能と symfony symfony 株式会社手嶋屋 手嶋守 [email protected] Twitter @tejima

20100902symfony xop3

  • Upload
    tejima

  • View
    2.142

  • Download
    2

Embed Size (px)

Citation preview

Page 1: 20100902symfony xop3

OpenPNE Project http://openpne.jp

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

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

株式会社手嶋屋 手嶋守[email protected]

Twitter @tejima

Page 2: 20100902symfony xop3

【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を発明したを発明したソフトウエア企業ソフトウエア企業

Page 3: 20100902symfony xop3

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

Page 4: 20100902symfony xop3

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

OpenPNE 手嶋屋の使命

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

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

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

OpenPNEOpenPNEの使命:の使命:

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

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

Page 5: 20100902symfony xop3

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

OpenPNEに取り組むきっかけ

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

しているのだろう?

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

Page 6: 20100902symfony xop3

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

OpenPNEプロジェクト紹介

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

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

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

オープンソース

Page 7: 20100902symfony xop3

【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

外部クラウドサービス

Page 8: 20100902symfony xop3

【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サイトの設置ペースサイトの設置ペース

Page 9: 20100902symfony xop3

【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-開発言語

Page 10: 20100902symfony xop3

【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

Page 11: 20100902symfony xop3

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

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

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

・携帯機種振り分け

・絵文字対応

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

を紹介します。

Page 12: 20100902symfony xop3

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

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

Page 13: 20100902symfony xop3

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

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

opMobileUserAgent.class.php

を使う

Page 14: 20100902symfony xop3

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

lib/util/opMobileUserAgent.class.php

$is_mobile = !opMobileUserAgent::getInstance()

->getMobile()->isNonMobile();

Page 15: 20100902symfony xop3

【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帯域を登録、更新中。

Page 16: 20100902symfony xop3

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

2:symfonyで絵文字を使う

Page 17: 20100902symfony xop3

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

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

lib/vendor/OpenPNE2/KtaiEmoji/KtaiEmoji.php

Page 18: 20100902symfony xop3

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

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

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

opEmojiFilterの実体。

Page 19: 20100902symfony xop3

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

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

・ライブラリ

・フィルター実体

・フィルター設定

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

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

Page 20: 20100902symfony xop3

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

3:symfonyで携帯用Formを使う

Page 21: 20100902symfony xop3

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

OpenPNE3未実装でした!

※Ver3.7で実装予定

Page 22: 20100902symfony xop3

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

Formについて

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

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

Page 23: 20100902symfony xop3

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

主な不具合

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

・HTML容量制限

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

Page 24: 20100902symfony xop3

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

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

Page 25: 20100902symfony xop3

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