This document introduces OpenPNE 3, an open-source social networking platform built with Symfony. OpenPNE 3 aims to be fully featured, extensible, and supported. It was created from scratch in 2 months using Symfony in order to address limitations of OpenPNE 2's original framework, such as lack of extensibility. Migrating to Symfony enabled faster development but also increased web server load and made installation slightly more difficult. OpenPNE 3 is currently being used on over 6,700 sites with growth of about 120 new sites per week.
1. OpenPNE 3 with symfony
Introduction of open source social network platform
Kousuke Ebihara
<ebihara@php.net>
2. About Me
• (Kousuke Ebihara)
• 22 years old
• My first contributing to OpenPNE was in 2005, I was17
• Creator and lead of OpenPNE 3
• Working at Tejimaya.inc (sponsor)
• Twitter: @co3k
• Web: http://co3k.org/
• GitHub: http://github.com/ebihara/
3. My Contributing
• I’m involved in the following projects:
• OpenPNE 2 (inactive), OpenPNE3 (and many plugins)
• PEAR::VersionControl_Git
• php-dql-tokenizer (Implementation of
Doctrine_Query_Tokenizer as PHP extension)
• The following projects include code I provided:
• symfony
• Doctrine
• Chiara_PEAR_Server
4. What is OpenPNE 3?
• Open-source social network platform (SNS Engine)
• Stable: 3.4, Developing stable: 3.6, Unstable: 3.7
• Apache License 2.0
• There are interfaces for PC and Japanese feature
phone ( )
• Full featured
• Extendable
5. OpenPNE’s Mission
Introduce OpenPNE into all organizations
Many For International Too big community
People Exchange site for entertainment
For
Big Company For Newspaper (mixi, GREE,
, Facebook)
For Magazine
For
Small / Medium For Religion
Company For Online Game
For For Town
Government
For Shared House
Few For Fan Club
People For School For Family
Business Life Entertainment
6. Users
• OpenPNE 1, 2 : at least 30,000 sites
• OpenPNE 3 : 6,734 sites (since 2009.04)
• increasing about 120 sites a week
7000.00
5250.00
Sites
3500.00
1750.00
0
2009-04 2009-07 2009-10 2010-01 2010-04 2010-07
7. JIREI
• ToMiCo
• http://tomico.jp/
• Community site for Dōjin circles
• (Mankaki)
• http://mankaki.jp/
• Manga communication service
• Some game community sites
• Several million PVs / day - Tens million PVs / day
• Several hundred thousand members - several million members
8. Features of OpenPNE
• Member, Friend, Community (Grouping,
Topic, Event) Diary, Album, Message,
Activity, ...
• OpenID, OAuth, OpenSocial, RESTful Web
API
• Multiple Authentication Handling (Email,
OpenID, ...)
• i18n (not completely)
9. Extending OpenPNE
• OpenPNE has plugin system
• based symfony plugin system
• It allows many customizing
• Add new features
• Add new authentication ways
• Add new skins
• Inject process to any actions
• Customize templates
10. Why write OpenPNE3
from scratch?
• We had felt limitations of OpenPNE 2 (and its
original framework)
• Non extendable
• Need to change core to add any features
• Need to be negative to add minor features
• It doesn’t allow to reach many varied needs
• No document for original framework
12. Good about migrating
• Development is accelerated (OpenPNE 3.0 is developed in 2 monthes)
• Community now gives many features by plugin however we doesn’t
provide enough documents for OpenPNE yet http://plugins.openpne.jp/
• Changing core behavior of symfony without changing source code of
symfony
• Add events to pre / post execution of all actions
• Add original configuration files
• Change directory structures and change priority of reading in
OpenPNE plugins
• Striping null bytes in request parameter (OpenPNE doesn’t need it)
• Application-level cascading delete (Behavior of Doctrine)
13. Bad about migrating
• OpenPNE 3 lacks few features which are in OpenPNE 2
• A bad effect of writing from scratch.
• Increased load average on Web server
• Decreased load on DB server
• We didn’t have know-how to improve performance of Web
server
• Improve performance of Web server for OpenPNE sometimes
requires too many customizing symfony and Doctrine
• Installation gets a bit difficult (by model building, etc)
• Supporting symfony 1.4 will be finish in 2 years ...
14. Reference
• Project Web Page
http://www.openpne.jp/
• Official Community Site
http://sns.openpne.jp/
• GitHub
http://github.com/openpne/OpenPNE3
• Redmine
http://redmine.openpne.jp/
• Plugins
http://plugins.openpne.jp/
This slide is written in English, but I want to speak Japanese for Japanese speakers.
OpenPNE 3 with symfony &#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x3067;&#x3001; symfony &#x3092;&#x4F7F;&#x3063;&#x305F;&#x30AA;&#x30FC;&#x30D7;&#x30F3;&#x30BD;&#x30FC;&#x30B9;&#x306E;&#x30BD;&#x30D5;&#x30C8;&#x30A6;&#x30A7;&#x30A2;&#x306B;&#x3064;&#x3044;&#x3066;&#x7D39;&#x4ECB;&#x3092;&#x3057;&#x307E;&#x3059;&#x3002;
symfony &#x3067;&#x3053;&#x3093;&#x306A;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x308B;&#xFF01;&#x3068;&#x3044;&#x3046;&#x767A;&#x8868;&#x306B;&#x306A;&#x3063;&#x3066;&#x3001; symfony &#x30E6;&#x30FC;&#x30B6;&#x304C;&#x3053;&#x306E;&#x767A;&#x8868;&#x3067;&#x5897;&#x3048;&#x305F;&#x3089;&#x5B09;&#x3057;&#x3044;&#x306A;&#x3068;&#x601D;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x3088;&#x308D;&#x3057;&#x304F;&#x304A;&#x9858;&#x3044;&#x3057;&#x307E;&#x3059;&#x3002;