Mais conteúdo relacionado Semelhante a Open pne3 with_symfony (20) Mais de Kousuke Ebihara (7) Open pne3 with_symfony1. 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/
Notas do Editor 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;
&#x307E;&#x305A;&#x81EA;&#x5DF1;&#x7D39;&#x4ECB;&#x3067;&#x3059;&#x3002;&#x6D77;&#x8001;&#x539F;&#x6602;&#x8F14;&#x3068;&#x7533;&#x3057;&#x307E;&#x3059;&#x3002;&#x898B;&#x3048;&#x306A;&#x3044;&#x3068;&#x306F;&#x601D;&#x3044;&#x307E;&#x3059;&#x304C;&#x3001; 22 &#x6B73;&#x3067;&#x3001; 5 &#x5E74;&#x524D;&#x3001; 17 &#x6B73;&#x306E;&#x9803;&#x304B;&#x3089; OpenPNE &#x306B;&#x95A2;&#x308F;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
OpenPNE 3 &#x3092;&#x4F5C;&#x3063;&#x3066;&#x3001;&#x305D;&#x306E;&#x30EA;&#x30FC;&#x30C9;&#x3092;&#x52E4;&#x3081;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x3042;&#x3068;&#x3053;&#x306E; PHP Matsuri &#x306E;&#x30B9;&#x30DD;&#x30F3;&#x30B5;&#x30FC;&#x3067;&#x3042;&#x308B;&#x624B;&#x5D8B;&#x5C4B;&#x306B;&#x52E4;&#x3081;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
Twitter &#x306E;&#x30A2;&#x30AB;&#x30A6;&#x30F3;&#x30C8;&#x306F; @co3k &#x3067;&#x3001;&#x3053;&#x308C;&#x30B3;&#x30A6;&#x30B9;&#x30B1;&#x306E;&#x3064;&#x3082;&#x308A;&#x306A;&#x3093;&#x3067;&#x3059;&#x3051;&#x3069;&#x307F;&#x306A;&#x3055;&#x3093;&#x3088;&#x304F;&#x30B3;&#x30DF;&#x30B1;&#x3063;&#x3066;&#x304A;&#x3063;&#x3057;&#x3083;&#x3089;&#x308C;&#x308B;&#x3093;&#x3067;&#x3059;&#x3088;&#x306D;&#x2026;&#x2026;&#x8208;&#x5473;&#x304C;&#x3042;&#x308C;&#x3070;&#x30D5;&#x30A9;&#x30ED;&#x30FC;&#x306A;&#x3069;&#x3088;&#x308D;&#x3057;&#x304F;&#x304A;&#x9858;&#x3044;&#x3057;&#x307E;&#x3059;&#x3002;&#x3042;&#x3068;&#x3001; GitHub &#x306F; ebihara &#x3067;&#x6D3B;&#x52D5;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x30AA;&#x30FC;&#x30D7;&#x30F3;&#x30BD;&#x30FC;&#x30B9;&#x306B;&#x306F;&#x3001;&#x307E;&#x305A;&#x3001; OpenPNE 2 &#x3068; OpenPNE 3 &#x306F;&#x3082;&#x3061;&#x308D;&#x3093;&#x30E1;&#x30F3;&#x30C6;&#x30CA;&#x3067;&#x3001;&#x3042;&#x3068; PEAR &#x306E; VersionControl_Git &#x3068;&#x3044;&#x3046;&#x30D1;&#x30C3;&#x30B1;&#x30FC;&#x30B8;&#x3092;&#x4F5C;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x3042;&#x3068;&#x3001; ORM &#x306E; Doctrine &#x306E;&#x30AF;&#x30A8;&#x30EA;&#x30C8;&#x30FC;&#x30AF;&#x30CA;&#x30A4;&#x30B6;&#x90E8;&#x5206;&#x306E; PHP &#x62E1;&#x5F35;&#x3067;&#x306E;&#x5B9F;&#x88C5;&#x3082;&#x4F5C;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x305D;&#x308C;&#x3068; symfony, Doctrine, Chiara_PEAR_Server &#x306B;&#x306F;&#x30D1;&#x30C3;&#x30C1;&#x63D0;&#x4F9B;&#x3092;&#x3057;&#x3066;&#x3044;&#x3066;&#x3001;&#x305D;&#x306E;&#x30D1;&#x30C3;&#x30C1;&#x304C;&#x5B9F;&#x969B;&#x306B;&#x4F7F;&#x308F;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x305D;&#x308C;&#x3067;&#x306F;&#x672C;&#x984C;&#x3067;&#x3059;&#x3002;&#x307E;&#x305A; OpenPNE &#x3068;&#x306F;&#x4F55;&#x304B;&#x3001;&#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x306B;&#x95A2;&#x3057;&#x3066;&#x3067;&#x3059;&#x3002;
OpenPNE &#x306F;&#x30AA;&#x30FC;&#x30D7;&#x30F3;&#x30BD;&#x30FC;&#x30B9;&#x306E;&#x30BD;&#x30FC;&#x30B7;&#x30E3;&#x30EB;&#x30CD;&#x30C3;&#x30C8;&#x30EF;&#x30FC;&#x30AF;&#x30D7;&#x30E9;&#x30C3;&#x30C8;&#x30D5;&#x30A9;&#x30FC;&#x30E0;&#x3068;&#x8A00;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x65E5;&#x672C;&#x3067;&#x306F; SNS &#x30A8;&#x30F3;&#x30B8;&#x30F3;&#x3068;&#x8A00;&#x3063;&#x305F;&#x65B9;&#x304C;&#x805E;&#x3053;&#x3048;&#x304C;&#x3044;&#x3044;&#x3067;&#x3059;&#x306D;&#x3002;Apache &#x30E9;&#x30A4;&#x30BB;&#x30F3;&#x30B9;&#x3067;&#x63D0;&#x4F9B;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
PC &#x3068;&#x3001;&#x65E5;&#x672C;&#x306E;&#x30D5;&#x30A3;&#x30FC;&#x30C1;&#x30E3;&#x30FC;&#x30D5;&#x30A9;&#x30F3;&#x3001;&#x3044;&#x308F;&#x3086;&#x308B;&#x30AC;&#x30E9;&#x30B1;&#x30FC;&#x7528;&#x306E;&#x30A4;&#x30F3;&#x30BF;&#x30FC;&#x30D5;&#x30A7;&#x30FC;&#x30B9;&#x3092;&#x6301;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x4E3B;&#x306B;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x306E;&#x305F;&#x3081;&#x306E;&#x6A5F;&#x80FD;&#x304C;&#x5145;&#x5B9F;&#x3057;&#x3066;&#x3044;&#x3066;&#x3001;&#x975E;&#x5E38;&#x306B;&#x62E1;&#x5F35;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;
OpenPNE &#x306E;&#x30DF;&#x30C3;&#x30B7;&#x30E7;&#x30F3;&#x306F;&#x3001;&#x300C;&#x3059;&#x3079;&#x3066;&#x306E;&#x7D44;&#x7E54;&#x306B; OpenPNE &#x3092;&#x4F9B;&#x7D66;&#x3059;&#x308B;&#x300D;&#x3067;&#x3059;&#x3002;
&#x3053;&#x306E;&#x56F3;&#x306F;&#x3001; OpenPNE &#x304C;&#x5BFE;&#x8C61;&#x3068;&#x3059;&#x308B;&#x7D44;&#x7E54;&#x306E;&#x4E00;&#x90E8;&#x3092;&#x3042;&#x3089;&#x308F;&#x3057;&#x305F;&#x3082;&#x306E;&#x3067;&#x3059;&#x3002;&#x7E26;&#x8EF8;&#x306F;&#x7D44;&#x7E54;&#x306E;&#x4EBA;&#x6570;&#x3067;&#x4E0B;&#x304B;&#x3089;&#x4E0A;&#x306B;&#x3044;&#x304F;&#x307B;&#x3069;&#x5927;&#x4EBA;&#x6570;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3001;&#x6A2A;&#x8EF8;&#x306F;&#x7D44;&#x7E54;&#x306E;&#x7279;&#x5FB4;&#x3067;&#x3001;&#x5DE6;&#x306B;&#x3044;&#x3051;&#x3070;&#x884C;&#x304F;&#x307B;&#x3069;&#x30D3;&#x30B8;&#x30CD;&#x30B9;&#x5BC4;&#x308A;&#x3001;&#x771F;&#x3093;&#x4E2D;&#x304C;&#x65E5;&#x5E38;&#x751F;&#x6D3B;&#x3001;&#x53F3;&#x304C;&#x30A8;&#x30F3;&#x30BF;&#x30FC;&#x30C6;&#x30A4;&#x30E1;&#x30F3;&#x30C8;&#x3067;&#x3059;&#x3002;
&#x5927;&#x4F01;&#x696D;&#x3001;&#x4E2D;&#x5C0F;&#x4F01;&#x696D;&#x3001;&#x5B66;&#x6821;&#x3001;&#x56FD;&#x969B;&#x4EA4;&#x6D41;&#x3001;&#x5B97;&#x6559;&#x3001;&#x653F;&#x6CBB;&#x3001;&#x5730;&#x57DF;&#x3001;&#x5BB6;&#x65CF;&#x3001;&#x30AA;&#x30F3;&#x30E9;&#x30A4;&#x30F3;&#x30B2;&#x30FC;&#x30E0;&#x3084;&#x30D5;&#x30A1;&#x30F3;&#x30AF;&#x30E9;&#x30D6;&#x3001;&#x305D;&#x3057;&#x3066;mixi, gree, &#x30E2;&#x30D0;&#x30B2;&#x30FC;, facebook &#x306E;&#x3088;&#x3046;&#x306A;&#x5DE8;&#x5927;&#x306A;&#x30A8;&#x30F3;&#x30BF;&#x30FC;&#x30C6;&#x30A4;&#x30F3;&#x30E1;&#x30F3;&#x30C8;&#x5411;&#x3051;&#x306E;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x30B5;&#x30A4;&#x30C8;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x304C;&#x3001; OpenPNE &#x306F;&#x3069;&#x3061;&#x3089;&#x304B;&#x3068;&#x3044;&#x3046;&#x3068;&#x7279;&#x5B9A;&#x306E;&#x76EE;&#x7684;&#x3084;&#x5C5E;&#x6027;&#x3092;&#x6301;&#x3063;&#x3066;&#x96C6;&#x307E;&#x3063;&#x305F;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x306B;&#x5BFE;&#x3057;&#x3066;&#x3088;&#x308A;&#x30EA;&#x30FC;&#x30C1;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
OpenPNE 1, 2 &#x306F;&#x5C11;&#x306A;&#x304F;&#x3068;&#x3082; 3 &#x4E07;&#x306E;&#x30B5;&#x30A4;&#x30C8;&#x3067;&#x4F7F;&#x308F;&#x308C;&#x3066;&#x3044;&#x308B;&#x3053;&#x3068;&#x304C;&#x308F;&#x304B;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
OpenPNE 3 &#x306F; 2009 &#x5E74;&#x306E; 4 &#x6708;&#x304B;&#x3089;&#x96C6;&#x8A08;&#x3092;&#x306F;&#x3058;&#x3081;&#x3001;&#x3044;&#x307E;&#x307E;&#x3067;&#x306B; 6734 &#x30B5;&#x30A4;&#x30C8;&#x3067;&#x4F7F;&#x308F;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x3044;&#x307E;&#x306E;&#x3068;&#x3053;&#x308D;&#x9031;&#x306B;&#x304A;&#x3088;&#x305D; 120 &#x30B5;&#x30A4;&#x30C8;&#x306E;&#x30DA;&#x30FC;&#x30B9;&#x3067;&#x5897;&#x3048;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x3044;&#x304F;&#x3064;&#x304B;&#x4E8B;&#x4F8B;&#x3092;&#x7D39;&#x4ECB;&#x3057;&#x307E;&#x3059;&#x3002;&#x307E;&#x305A; ToMiCo &#x3068;&#x3044;&#x3046;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x304C;&#x3042;&#x308B;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;&#x540C;&#x4EBA;&#x30B5;&#x30FC;&#x30AF;&#x30EB;&#x306E;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x30B5;&#x30A4;&#x30C8;&#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x3067;&#x3001; OpenPNE 3 &#x304C;&#x51FA;&#x305F;&#x3070;&#x304B;&#x308A;&#x306E;&#x53BB;&#x5E74;&#x3001; 2009 &#x5E74;&#x306E;&#x306F;&#x3058;&#x3081;&#x3054;&#x308D;&#x304B;&#x3089;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x3092;&#x306F;&#x3058;&#x3081;&#x3066;&#x3044;&#x3089;&#x3063;&#x3057;&#x3083;&#x3044;&#x307E;&#x3059;&#x3002;
&#x305D;&#x308C;&#x304B;&#x3089;&#x6F2B;&#x63CF;&#x304D;&#x3068;&#x3044;&#x3046;&#x3001;&#x6F2B;&#x753B;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x3068;&#x8A00;&#x3063;&#x3066;&#x3001;&#x53C2;&#x52A0;&#x8005;&#x3067;&#x81EA;&#x7531;&#x306B;&#x6F2B;&#x753B;&#x3092;&#x63CF;&#x3044;&#x3066;&#x6295;&#x7A3F;&#x3067;&#x304D;&#x308B;&#x3001;&#x3061;&#x3087;&#x3063;&#x3068;&#x5909;&#x308F;&#x3063;&#x305F;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x304C;&#x3042;&#x3063;&#x3066;&#x3001;&#x3053;&#x3061;&#x3089;&#x3082;&#x53BB;&#x5E74;&#x304F;&#x3089;&#x3044;&#x304B;&#x3089;&#xFF1F;&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x3092;&#x63D0;&#x4F9B;&#x3057;&#x3066;&#x3044;&#x3089;&#x3063;&#x3057;&#x3083;&#x3044;&#x307E;&#x3059;&#x3002;
&#x305D;&#x308C;&#x304B;&#x3089;&#x3001;&#x30B2;&#x30FC;&#x30E0;&#x3092;&#x4E3B;&#x4F53;&#x3068;&#x3057;&#x305F;&#x3044;&#x304F;&#x3064;&#x304B;&#x306E;&#x67D0;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x30B5;&#x30A4;&#x30C8;&#x3067;&#x3082;&#x3001; OpenPNE &#x304C;&#x4F7F;&#x308F;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x3053;&#x308C;&#x3089;&#x306E;&#x30B5;&#x30A4;&#x30C8;&#x306E;&#x3046;&#x3061;&#x3001;&#x305F;&#x3068;&#x3048;&#x3070;&#x30C7;&#x30A4;&#x30EA;&#x30FC;&#x6570;&#x767E;&#x4E07;&#x304B;&#x3089;&#x6570;&#x5343;&#x4E07; PV &#x3001;&#x305D;&#x308C;&#x304B;&#x3089;&#x3001;&#x4F1A;&#x54E1;&#x6570;&#x304C;&#x6570;&#x5341;&#x4E07;&#x304B;&#x3089;&#x6570;&#x767E;&#x4E07;&#x306E;&#x3082;&#x306E;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;
OpenPNE &#x306F;&#x3001;&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;&#x30E1;&#x30F3;&#x30D0;&#x30FC;&#x7BA1;&#x7406;&#x6A5F;&#x80FD;&#x3084;&#x3001;&#x30D5;&#x30EC;&#x30F3;&#x30C9;&#xFF08;&#x30E1;&#x30F3;&#x30D0;&#x30FC;&#x540C;&#x58EB;&#x306E;&#x30B3;&#x30CD;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#xFF09;&#x6A5F;&#x80FD;&#x3001;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#xFF08;&#x30B0;&#x30EB;&#x30FC;&#x30D4;&#x30F3;&#x30B0;&#x306E;&#x6A5F;&#x80FD;&#xFF09;&#x3001;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x5185;&#x3067;&#x306E;&#x63B2;&#x793A;&#x677F;&#x6A5F;&#x80FD;&#x3001;&#x65E5;&#x8A18;&#x3084;&#x30D7;&#x30E9;&#x30A4;&#x30D9;&#x30FC;&#x30C8;&#x30E1;&#x30C3;&#x30BB;&#x30FC;&#x30B8;&#x3001;&#x3064;&#x3076;&#x3084;&#x304D;&#x3084; SNS &#x306E;&#x6D3B;&#x52D5;&#x72B6;&#x6CC1;&#x3092;&#x6D41;&#x305B;&#x308B;&#x30A2;&#x30AF;&#x30C6;&#x30A3;&#x30D3;&#x30C6;&#x30A3;&#x30B9;&#x30C8;&#x30EA;&#x30FC;&#x30E0;&#x306E;&#x6A5F;&#x80FD;&#x3092;&#x5099;&#x3048;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x307E;&#x305F;&#x3001; OpenID &#x3084; OAuth&#x3001; OpenSocial &#x3084; RESTful &#x306A; Web API &#x306A;&#x3069;&#x9023;&#x643A;&#x306E;&#x305F;&#x3081;&#x306E;&#x6A5F;&#x80FD;&#x3082;&#x5099;&#x3048;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
ID &#x3084; Email &#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x3084; OpenID &#x306A;&#x3069;&#x306E;&#x8907;&#x6570;&#x306E;&#x8A8D;&#x8A3C;&#x65B9;&#x6CD5;&#x3092;&#x4F7F;&#x3046;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;
&#x3042;&#x3068;&#x3001;&#x4E0D;&#x5B8C;&#x5168;&#x306A;&#x3068;&#x3053;&#x308D;&#x306F;&#x3042;&#x308A;&#x307E;&#x3059;&#x304C;&#x56FD;&#x969B;&#x5316;&#x3082;&#x9032;&#x3093;&#x3067;&#x3044;&#x307E;&#x3059;&#x3002;
OpenPNE &#x306F;&#x3001; symfony &#x306E;&#x30D7;&#x30E9;&#x30B0;&#x30A4;&#x30F3;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x3092;&#x62E1;&#x5F35;&#x3057;&#x305F;&#x30D7;&#x30E9;&#x30B0;&#x30A4;&#x30F3;&#x6A5F;&#x69CB;&#x306B;&#x3088;&#x3063;&#x3066;&#x62E1;&#x5F35;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x5148;&#x307B;&#x3069;&#x7D39;&#x4ECB;&#x3057;&#x305F;&#x65E5;&#x8A18;&#x306A;&#x3069;&#x306E;&#x6A5F;&#x80FD;&#x3082;&#x30D7;&#x30E9;&#x30B0;&#x30A4;&#x30F3;&#x3068;&#x3057;&#x3066;&#x63D0;&#x4F9B;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
OpenPNE &#x306F;&#x304B;&#x306A;&#x308A;&#x67D4;&#x8EDF;&#x306B;&#x62E1;&#x5F35;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x3001;&#x6A5F;&#x80FD;&#x8FFD;&#x52A0;&#x306F;&#x3082;&#x3061;&#x308D;&#x3093;&#x3001;&#x8A8D;&#x8A3C;&#x65B9;&#x6CD5;&#x3092;&#x8FFD;&#x52A0;&#x3057;&#x305F;&#x308A;&#x3001;&#x30B9;&#x30AD;&#x30F3;&#xFF08;&#x898B;&#x305F;&#x76EE;&#xFF09;&#x3092;&#x5909;&#x3048;&#x305F;&#x308A;&#x3001;&#x65E2;&#x5B58;&#x306E;&#x30A2;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#x3084;&#x30C6;&#x30F3;&#x30D7;&#x30EC;&#x30FC;&#x30C8;&#x306E;&#x6319;&#x52D5;&#x3092;&#x5909;&#x66F4;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;
OpenPNE 2 &#x307E;&#x3067;&#x306F;&#x72EC;&#x81EA;&#x306E;&#x30D5;&#x30EC;&#x30FC;&#x30E0;&#x30EF;&#x30FC;&#x30AF;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x3044;&#x305F;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;OpenPNE 3 &#x306F; symfony &#x3067;&#x30B9;&#x30AF;&#x30E9;&#x30C3;&#x30C1;&#x304B;&#x3089;&#x66F8;&#x304D;&#x63DB;&#x3048;&#x307E;&#x3057;&#x305F;&#x3002;&#x30B9;&#x30AF;&#x30E9;&#x30C3;&#x30C1;&#x304B;&#x3089;&#x66F8;&#x304D;&#x76F4;&#x3059;&#x306E;&#x306F;&#x5371;&#x967A;&#x306A;&#x8A98;&#x60D1;&#x3067;&#x3059;&#x304C;&#x3001; OpenPNE 2 &#x306B;&#x611F;&#x3058;&#x3066;&#x3044;&#x305F;&#x9650;&#x754C;&#x3092;&#x6253;&#x7834;&#x3059;&#x308B;&#x3079;&#x304F;&#x3001;&#x8E0F;&#x307F;&#x5207;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;
&#x307E;&#x305A;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x304C;&#x5145;&#x5206;&#x306B;&#x62E1;&#x5F35;&#x53EF;&#x80FD;&#x3067;&#x306A;&#x304F;&#x3001;&#x6A5F;&#x80FD;&#x8FFD;&#x52A0;&#x3059;&#x308B;&#x306E;&#x306B;&#x672C;&#x4F53;&#x3092;&#x66F8;&#x304D;&#x63DB;&#x3048;&#x308B;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;&#x305D;&#x3046;&#x3059;&#x308B;&#x3068;&#x3042;&#x307E;&#x308A;&#x30E6;&#x30FC;&#x30B6;&#x306B;&#x4F7F;&#x308F;&#x308C;&#x306A;&#x3044;&#x3060;&#x308D;&#x3046;&#x3068;&#x5224;&#x65AD;&#x3055;&#x308C;&#x308B;&#x6A5F;&#x80FD;&#x8FFD;&#x52A0;&#x3084;&#x3001;&#x7D71;&#x4E00;&#x7684;&#x306A; UI &#x3092;&#x5D29;&#x3059;&#x3088;&#x3046;&#x306A;&#x6A5F;&#x80FD;&#x306B;&#x306F;&#x6D88;&#x6975;&#x7684;&#x306B;&#x306A;&#x3089;&#x3056;&#x308B;&#x3092;&#x5F97;&#x307E;&#x305B;&#x3093;&#x3002;&#x591A;&#x69D8;&#x306A;&#x30CB;&#x30FC;&#x30BA;&#x306B;&#x5FDC;&#x3048;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x306A;&#x304B;&#x3063;&#x305F;&#x306E;&#x3067;&#x3059;&#x3002;&#x6709;&#x7528;&#x306A;&#x6A5F;&#x80FD;&#x304B;&#x3069;&#x3046;&#x304B;&#x3068;&#x3044;&#x3046;&#x7DDA;&#x5F15;&#x304D;&#x306F;&#x624B;&#x5D8B;&#x5C4B;&#x304C;&#x3084;&#x3063;&#x3066;&#x3044;&#x305F;&#x306E;&#x3067;&#x3001;&#x3053;&#x3053;&#x306E;&#x516C;&#x5E73;&#x611F;&#x3082;&#x8584;&#x304B;&#x3063;&#x305F;&#x3067;&#x3059;&#x3002;
&#x307E;&#x305F;&#x3001;&#x72EC;&#x81EA;&#x30D5;&#x30EC;&#x30FC;&#x30E0;&#x30EF;&#x30FC;&#x30AF;&#x306E;&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;&#x304C;&#x306A;&#x304F;&#x3001;&#x958B;&#x767A;&#x8005;&#x3092;&#x52DF;&#x308D;&#x3046;&#x306B;&#x3082;&#x30CF;&#x30FC;&#x30C9;&#x30EB;&#x304C;&#x9AD8;&#x304F;&#x3001;&#x3053;&#x3046;&#x3044;&#x3046;&#x72B6;&#x6CC1;&#x304C;&#x30BD;&#x30D5;&#x30C8;&#x30A6;&#x30A7;&#x30A2;&#x306E;&#x767A;&#x5C55;&#x3092;&#x963B;&#x5BB3;&#x3057;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;
&#x305D;&#x3053;&#x3067;&#x306A;&#x305C; symfony &#x3092;&#x9078;&#x629E;&#x3057;&#x305F;&#x304B;&#x3068;&#x3044;&#x3046;&#x8A71;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x304C;&#x3001;&#x3072;&#x3068;&#x3064;&#x306F;&#x307E;&#x305A;&#x6A5F;&#x80FD;&#x304C;&#x8C4A;&#x5BCC;&#x306A;&#x3053;&#x3068;&#x304C;&#x3042;&#x3052;&#x3089;&#x308C;&#x307E;&#x3059;&#x3002;&#x591A;&#x8A00;&#x8A9E;&#x5BFE;&#x5FDC;&#x3084; Ajax &#x5BFE;&#x5FDC;&#x3001; ORM &#x306E;&#x6A19;&#x6E96;&#x88C5;&#x5099;&#x3001;YAML &#x306B;&#x3088;&#x308B;&#x8A2D;&#x5B9A;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3084;&#x30AD;&#x30E3;&#x30C3;&#x30B7;&#x30E5;&#x6A5F;&#x69CB;&#x306A;&#x3069;&#x679A;&#x6319;&#x306B;&#x6687;&#x304C;&#x3042;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;
&#x305D;&#x3057;&#x3066;&#x672C;&#x5F53;&#x306B;&#x67D4;&#x8EDF;&#x3067;&#x3001;&#x30B3;&#x30A2;&#x306E;&#x6319;&#x52D5;&#x3082;&#x307B;&#x3068;&#x3093;&#x3069;&#x304C;&#x62E1;&#x5F35;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;OpenPNE 3 &#x3067;&#x306F;&#x3053;&#x308C;&#x307E;&#x3067; symfony &#x3092;&#x66F8;&#x304D;&#x63DB;&#x3048;&#x308B;&#x3053;&#x3068;&#x306A;&#x304F;&#x958B;&#x767A;&#x3092;&#x7D9A;&#x3051;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x305D;&#x3057;&#x3066;&#x3001;&#x8C4A;&#x5BCC;&#x306A;&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;&#x3082;&#x9B45;&#x529B;&#x3067;&#x3057;&#x305F;&#x3002; symfony &#x306E;&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;&#x3092;&#x8AAD;&#x307F;&#x4F5C;&#x6CD5;&#x3092;&#x7406;&#x89E3;&#x3057;&#x3066;&#x3082;&#x3089;&#x3048;&#x308C;&#x3070;&#x307B;&#x3068;&#x3093;&#x3069;&#x3059;&#x3050;&#x306B; OpenPNE &#x306E;&#x958B;&#x767A;&#x306B;&#x53C2;&#x52A0;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;
&#x4FE1;&#x983C;&#x306E;&#x7F6E;&#x3051;&#x308B;&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x4F53;&#x5236;&#x3082;&#x91CD;&#x8981;&#x3067;&#x3001; symfony &#x3067;&#x306F;&#x30EA;&#x30EA;&#x30FC;&#x30B9;&#x6642;&#x306B;&#x30E1;&#x30F3;&#x30C6;&#x30CA;&#x30F3;&#x30B9;&#x671F;&#x9593;&#x3092;&#x660E;&#x793A;&#x3057;&#x3001;&#x5B89;&#x5B9A;&#x7248;&#x3067;&#x306E;&#x6A5F;&#x80FD;&#x8FFD;&#x52A0;&#x306F;&#x4E00;&#x5207;&#x304A;&#x3053;&#x306A;&#x308F;&#x308C;&#x307E;&#x305B;&#x3093;&#x3002;
symfony &#x306B;&#x4E57;&#x308A;&#x63DB;&#x3048;&#x3066;&#x3088;&#x304B;&#x3063;&#x305F;&#x70B9;&#x306F;&#x3001;&#x958B;&#x767A;&#x304C;&#x52A0;&#x901F;&#x3057;&#x305F;&#x3053;&#x3068;&#x3067;&#x3001; OpenPNE 3.0 &#x306F;&#x5B9F;&#x8CEA; 2 &#x30F6;&#x6708;&#x3067;&#x4F5C;&#x3089;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;&#x305D;&#x308C;&#x304B;&#x3089;&#x3001; OpenPNE &#x306E;&#x305F;&#x3081;&#x306E;&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;&#x3092;&#x307E;&#x3060;&#x5145;&#x5206;&#x306B;&#x66F8;&#x3051;&#x3066;&#x3044;&#x306A;&#x3044;&#x306B;&#x3082;&#x95A2;&#x308F;&#x3089;&#x305A;&#x3001;&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30C6;&#x30A3;&#x304B;&#x3089;&#x69D8;&#x3005;&#x306A;&#x6A5F;&#x80FD;&#x306E;&#x305F;&#x3081;&#x306E;&#x30D7;&#x30E9;&#x30B0;&#x30A4;&#x30F3;&#x304C;&#x63D0;&#x4F9B;&#x3055;&#x308C;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;
&#x307E;&#x305F;&#x3001; symfony &#x306E;&#x30B3;&#x30A2;&#x306E;&#x6319;&#x52D5;&#x306E;&#x5909;&#x66F4;&#x3084;&#x6A5F;&#x80FD;&#x306E;&#x8FFD;&#x52A0;&#x3092;&#x30BD;&#x30FC;&#x30B9;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x66F8;&#x304D;&#x63DB;&#x3048;&#x305A;&#x306B;&#x62E1;&#x5F35;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x5B9F;&#x73FE;&#x3067;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;
&#x4E00;&#x65B9;&#x3001;&#x4E57;&#x308A;&#x63DB;&#x3048;&#x305F;&#x3053;&#x3068;&#x3067;&#x60AA;&#x304B;&#x3063;&#x305F;&#x70B9;&#x306F;&#x3001;&#x307E;&#x305A;&#x3001;&#x30B9;&#x30AF;&#x30E9;&#x30C3;&#x30C1;&#x304B;&#x3089;&#x66F8;&#x3044;&#x305F;&#x3053;&#x3068;&#x306E;&#x5F0A;&#x5BB3;&#x3068;&#x3057;&#x3066;&#x3001; OpenPNE 2 &#x306B;&#x5B58;&#x5728;&#x3057;&#x305F;&#x4E00;&#x90E8;&#x306E;&#x6A5F;&#x80FD;&#x304C; OpenPNE 3 &#x3067;&#x6B20;&#x3051;&#x3066;&#x3057;&#x307E;&#x3063;&#x3066;&#x3044;&#x308B;&#x3053;&#x3068;&#x3067;&#x3059;&#x3002;&#x307E;&#x305F;&#x3001; DB &#x30B5;&#x30FC;&#x30D0;&#x306E;&#x8CA0;&#x8377;&#x304C;&#x4E0B;&#x304C;&#x3063;&#x305F;&#x4EE3;&#x308F;&#x308A;&#x306B; Web &#x30B5;&#x30FC;&#x30D0;&#x306E;&#x30ED;&#x30FC;&#x30C9;&#x304C;&#x5897;&#x3048;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;&#x3044;&#x3056;&#x3068;&#x3044;&#x3046;&#x3068;&#x304D;&#x306B;&#x306F; Web &#x30B5;&#x30FC;&#x30D0;&#x306F;&#x5BB9;&#x6613;&#x306B;&#x30B9;&#x30B1;&#x30FC;&#x30EB;&#x30A2;&#x30A6;&#x30C8;&#x3067;&#x30D1;&#x30D5;&#x30A9;&#x30FC;&#x30DE;&#x30F3;&#x30B9;&#x3092;&#x4E0A;&#x3052;&#x3089;&#x308C;&#x308B;&#x306E;&#x3067;&#x3053;&#x306E;&#x3053;&#x3068;&#x306F;&#x5FC5;&#x305A;&#x3057;&#x3082;&#x60AA;&#x3044;&#x3053;&#x3068;&#x3067;&#x306F;&#x306A;&#x3044;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;&#x3044;&#x307E;&#x307E;&#x3067; DB &#x5074;&#x306E;&#x30C1;&#x30E5;&#x30FC;&#x30CB;&#x30F3;&#x30B0;&#x3070;&#x304B;&#x308A;&#x3092;&#x3084;&#x3063;&#x3066;&#x304D;&#x3066;&#x30D5;&#x30ED;&#x30F3;&#x30C8;&#x5074;&#x306E;&#x30C1;&#x30E5;&#x30FC;&#x30CB;&#x30F3;&#x30B0;&#x306B;&#x95A2;&#x3059;&#x308B;&#x77E5;&#x8B58;&#x304C;&#x306A;&#x304B;&#x3063;&#x305F;&#x306E;&#x304C;&#x81F4;&#x547D;&#x7684;&#x3067;&#x3057;&#x305F;&#x3002;&#x73FE;&#x5728;&#x3001;&#x3053;&#x3053;&#x306E;&#x30C1;&#x30E5;&#x30FC;&#x30CB;&#x30F3;&#x30B0;&#x306B;&#x304B;&#x306A;&#x308A;&#x306E;&#x624B;&#x9593;&#x3092;&#x53D6;&#x3089;&#x308C;&#x3066;&#x3057;&#x307E;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x307E;&#x305F;&#x30D1;&#x30D5;&#x30A9;&#x30FC;&#x30DE;&#x30F3;&#x30B9;&#x306E;&#x6539;&#x5584;&#x306E;&#x305F;&#x3081;&#x306B;&#x306F; symfony &#x3084; Doctirne &#x306E;&#x6DF1;&#x3044;&#x3068;&#x3053;&#x308D;&#x306E;&#x9762;&#x5012;&#x3082;&#x898B;&#x306A;&#x3051;&#x308C;&#x3070;&#x306A;&#x3089;&#x306A;&#x3044;&#x3053;&#x3068;&#x304C;&#x591A;&#x3005;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;
&#x307E;&#x305F;&#x3001;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x306B;&#x306F;&#x30E2;&#x30C7;&#x30EB;&#x4F5C;&#x6210;&#x306A;&#x3069;&#x306E;&#x305F;&#x3081;&#x306B;&#x30B3;&#x30DE;&#x30F3;&#x30C9;&#x3092;&#x53E9;&#x304B;&#x306A;&#x3051;&#x308C;&#x3070;&#x306A;&#x3089;&#x306A;&#x3044;&#x305F;&#x3081;&#x3001;&#x6577;&#x5C45;&#x304C;&#x4E0A;&#x304C;&#x3063;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;&#x3053;&#x308C;&#x3082; Web &#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30E9;&#x306A;&#x3069;&#x3092;&#x6E96;&#x5099;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x3088;&#x308A;&#x65E9;&#x6025;&#x306B;&#x306A;&#x3093;&#x3068;&#x304B;&#x3057;&#x3088;&#x3046;&#x3068;&#x3044;&#x3046;&#x52D5;&#x304D;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x304C;&#x3001;&#x306A;&#x304B;&#x306A;&#x304B;&#x9032;&#x3093;&#x3067;&#x3044;&#x307E;&#x305B;&#x3093;&#x3002;
&#x305D;&#x308C;&#x304B;&#x3089;&#x3001; symfony 1.4 &#x304C;&#x3042;&#x3068;&#x4E8C;&#x5E74;&#x3067;&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x304C;&#x5207;&#x308C;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3059;&#x3002;&#x76F4;&#x8FD1;&#x3067;&#x306F;&#x554F;&#x984C;&#x306B;&#x306A;&#x308A;&#x307E;&#x305B;&#x3093;&#x304C;&#x3001;&#x3044;&#x307E;&#x306E;&#x3046;&#x3061;&#x304B;&#x3089;&#x3069;&#x306E;&#x3088;&#x3046;&#x306B;&#x5BFE;&#x51E6;&#x3059;&#x308B;&#x304B;&#x3092;&#x8003;&#x3048;&#x3066;&#x304A;&#x304B;&#x306A;&#x3051;&#x308C;&#x3070;&#x306A;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;
&#x3068;&#x306F;&#x3044;&#x3048;&#x3001;&#x3053;&#x306E;&#x306A;&#x304B;&#x306B;&#x306F;&#x3044;&#x304F;&#x3064;&#x304B;&#x91CD;&#x8981;&#x306A;&#x70B9;&#x304C;&#x3042;&#x308B;&#x3082;&#x306E;&#x306E;&#x3001;&#x307E;&#x3042;&#x4E00;&#x756A;&#x4E0A;&#x3068;&#x304B;&#x306F; symfony &#x306E;&#x305B;&#x3044;&#x3067;&#x306F;&#x307E;&#x3063;&#x305F;&#x304F;&#x306A;&#x3044;&#x3053;&#x3068;&#x3060;&#x3057;&#x3001;&#x3069;&#x3061;&#x3089;&#x304B;&#x3068;&#x3044;&#x3046;&#x3068;&#x30E1;&#x30EA;&#x30C3;&#x30C8;&#x306E;&#x65B9;&#x304C;&#x304A;&#x304A;&#x304D;&#x304F;&#x3066;&#x3001;&#x30C7;&#x30E1;&#x30EA;&#x30C3;&#x30C8;&#x306E;&#x65B9;&#x306F;&#x2026;&#x2026;&#x307E;&#x3042;&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x671F;&#x9593;&#x306F;&#x3001;&#x3068;&#x3082;&#x304B;&#x304F;&#x3001;&#x4ED6;&#x306F;&#x3068;&#x306B;&#x304B;&#x304F;&#x9811;&#x5F35;&#x308A;&#x9811;&#x5F35;&#x308A;&#x3067;&#x89E3;&#x6D88;&#x3057;&#x3066;&#x3044;&#x3051;&#x308B;&#x306E;&#x3067;&#x3001;&#x7DCF;&#x5408;&#x7684;&#x306B;&#x898B;&#x308B;&#x3068; symfony &#x306B;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x3088;&#x308B;&#x30E1;&#x30EA;&#x30C3;&#x30C8;&#x306E;&#x65B9;&#x304C;&#x5727;&#x5012;&#x7684;&#x306B;&#x5927;&#x304D;&#x304B;&#x3063;&#x305F;&#x306A;&#x3068;&#x601D;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;