JiLiZARTã®ãªã¯ãšã¹ãã«å¿ããŠå ¬éïŒç¿»èš³ãç§ãç解ããŠããããã«ã圌ãïŒã
ãªãªãžãã«ïŒ erickennedy.org
èšäºã®æ¥ä»ã¯1幎åãªã®ã§ã翻蚳ã®æéã¯ä¿åãããŸã
Drupal 7ã¯éããªããªãªãŒã¹ããããããå€ãã®çµç¹ã¯Drupal 5ãŸãã¯6ããã¢ããã°ã¬ãŒããããã©ããã決å®ããå¿ èŠããããŸããDrupalã¯ãå€ãã®ãµã€ããæ§ç¯ããå€ãã®ã³ãŒããèšè¿°ããã«è¿ éã«æ°ãããµã€ããäœæããå¿ èŠãããå ŽåããŸãã¯åã«å¿ èŠãªå Žåã«é©ããŠããŸãã¹ããã€ãã®ããã°ã
Drupalã§ã®äœæ¥ã¯ãäŒçµ±çãªå®¶ãè²·ãäœè£ããªãå Žåã åå¹ ïŒã«ãŒãã®å®¶ïŒã«äœããããªãã®ã§ãã Drupalã§æ§ç¯ããããã«ã¿ã€ã ã®éçºè ã䜿çšã§ããã»ã©æé·ãããµã€ããããå Žåã¯ããµã€ããYii PHPãã¬ãŒã ã¯ãŒã¯ã«ç§»è¡ããå¿ èŠããããŸãïŒPHPå«ããªäººã¯Onionã«åŸããDjango Pythonãã¬ãŒã ã¯ãŒã¯ã䜿çšã§ããŸãããããå€ãã®æéãèšèªãšãã¬ãŒã ã¯ãŒã¯ã®å€æŽïŒ
ç§ã¯2010幎4æ30æ¥ã«DrupalããYiiã«åãæ¿ãããµã€ãã®ãã¯ãã«ã«ãã£ã¬ã¯ã¿ãŒã§ãã åœæãç§ãã¡ã移ç±ã«ã€ããŠè©±ãåã£ãŠãããšããæ£ããæ å ±ãèŠã€ããããšã¯å°é£ã§ãããYiiã«é¢ããæ¬ãããããŸããã§ããã DrupalããYiiãžã®åãæ¿ãã«ã€ããŠã®èšåãããã€ããããŸããããèœã¡çããŠããã®ã«ååãªããŒã¿ãå«ãŸããŠããŸããã§ããã Yiiãé«åºŠã«æé©åãããDrupalã€ã³ã¹ããŒã«ãããé ããªãã®ã§ã¯ãªãããšå¿é ããŠããããã30æ¥éã§ãµã€ãã®ã³ã¢ã®20ïŒ ïŒãã¹ãŠã®æ©èœã®80ïŒ ãæäŸããŸããïŒãæžãæããããšã«ããŸããã ãã¬ãŒã ã¯ãŒã¯ã®çç£æ§ãšçç£æ§ããã¹ãããã®ã«æé©ãªæ¹æ³ã®ããã§ããYiiã1ãæã®äœæ¥ãçµãŠãçµæãåºãªãå Žåã¯ããã€ã§ãDrupalã«æ»ã£ãŠæ°ããããŒã¿ãæ»ãããšãã§ããŸãã
Yiiã¯ã150,000ããŒãïŒããããæžãæããããURLïŒãš1æ¥ããã50,000人ã®èšªåè ãæã€Drupalãµã€ããããã¯ããã«é«éã§ããã ã¯ããç§ãã¡ã¯ãã®30æ¥éïŒãããŠæ¬¡ã®15æ¥éïŒçã£ãããã«åããŸããããããã ãã®äŸ¡å€ã¯ãããŸããã Yiiã§ã®éçºæã«ãDrupalã§é ãã¯ãšãªããã©ããããŠä¿®æ£ããããã«äœ¿çšããŠããæéã䜿çšããŠããŸããã Yiiã®æ¬åœã®ã¡ãªããã¯ãåŸã§ãµã€ããåèšèšãããšãã«çŸããŸããã
Yii MVCã§ã¯ãDrupalã®æ°åã«å¯ŸããŠã¬ã€ã¢ãŠããã¡ã€ã«ã2ã€ã ãå€æŽããŸããã
1幎åã«äº€å·®ããªãã£ãããšãç³ãèš³ãããŸããã åŠãã ããšã¯æ¬¡ã®ãšããã§ãã
- Drupalã¯æåããå§ããã®ã«æé©ãªæ¹æ³ã§ã¯ãããŸãã ã Drupalã®äž»ãªã»ãŒã«ã¹ãã€ã³ãã¯ãã ãªãç¬èªã®CMSãäœæããã®ã§ããïŒãã§ãã ã å€ãã®Webéçºè
ãšåæ§ã«ããã¹ãŠã®Webã¢ããªã±ãŒã·ã§ã³ãæåããïŒ 1999幎ãš2000幎㫠ïŒäœæããèªèšŒãæ€èšŒãSQLã€ã³ãžã§ã¯ã·ã§ã³ãªã©ãåŠçããããã®ç¬èªã®ã³ãŒããæžãã®ã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³åºæã®ããžãã¹ããŒãºã«çŠç¹ãåœãŠãæ©äŒã«æè¬ããŠããŸãã
2007幎ã®åãã«ç§ãèŠã€ããäŒç€Ÿã«ã¯Drupalãµã€ãã®ãããã¿ã€ãããããRuby On Railsã«ããããããåã«Drupalã§äœãã§ããããèŠãæºåãã§ããŠããŸããã Rubyã®æµè¡ã¯ã1997幎ã®Javaã®æµè¡ãæãèµ·ããããŸããã ç§ã¯1997幎ãã99幎ã«ãããŠWebExã®ç«¶äºçžæã®ã€ã³ã¿ãŒã³ã§ãããããµãŒããŒããŒããŠã§ã¢ãšVMã®æé©åãã¹ã±ãŒã©ããªãã£ãå¯èœã«ããåã«Javaã§ãµãŒããŒãèšè¿°ãå§ãããããçç£æ§ãäœäžããŸããã PHPã¯FriendsterãšFacebookã®ãªã¡ã€ã¯ã§å®èšŒãããŠãããRubyã§ã¹ã±ãŒã©ããªãã£ã®åé¡ãçºçããå ŽåããŠãŒã¶ãŒã¯ã¯ãžã©ã®å€±æãèŠãããããŸããã
ãã¡ãããPHPã§åè¡ãèªåã§èšè¿°ãããããDrupalããå§ããæ¹ãç°¡åã§ãã ãããã2008幎ã«éå§ããã 2009幎ã«ãã¹ããããPHP 5ãã¬ãŒã ã¯ãŒã¯ããããããããŸãã PHPéçºè ã¯ãçŸåšWebã¢ããªã±ãŒã·ã§ã³ãäœæãå§ããŠããŸãïŒãããŠä»åŸããµã€ãã§äœæ¥ãç¶ããŸãïŒããã¬ãŒã ã¯ãŒã¯ãéžæããããPHPã©ã€ãã©ãªïŒPECLãŸãã¯PEARïŒã䜿çšããŠãŒãããéå§ããŸãã
- Drupalãã¬ãŒã ã¯ãŒã¯ãªãã Ruby Goldberg Machineã®ã¿ããããæããŸã ïŒ è€éãªæ¹æ³ã§åçŽãªã¢ã¯ã·ã§ã³ãå®è¡ããMachine ïŒã Drupalã¯ãPHPããã°ã©ãã³ã°ã®ç¥èããªããŠãæ¡åŒµã§ããããã«èšèšãããŠããŸãã ããã¯ãåçŽãªã³ã³ãã³ãã§ãµã€ããåçŽã«ã¹ã¿ã€ã«èšå®ããå ŽåããŸãã¯ãã©ãã£ãã¯ã®å°ãªããµã€ããããå Žåã«é©ããŠããŸãã ãã©ãŒã ã®å€æŽãšæ©èœã®è¿œå ã®ããã«ãã«ã¿ã€ã ã§ã¢ãžã¥ãŒã«ãäœæããå Žåããã¬ãŒã ã¯ãŒã¯äžã§äœæããããããå¿
èŠã®ãªãDrupalæ©èœã®æå¶ã«ããå€ãã®æéãè²»ããããšã«ãªããŸãã Yiiã«ã¯å察ã®ã¢ãããŒãããããŸããRubyon Railsã®ãããªORMãååã«é«éã§ãMySQLã«æžãæããå¿
èŠãããã¯ãšãªã®10ïŒ
ã®ã¿ãæé©åããå Žåã¯ã Rubyã䜿çšã§ããŸãã
- ã³ãã¥ããã£ãæäŸããã¢ãžã¥ãŒã«ã¯ã ç¹åŸŽäž»çŸ© ïŒãè©æ¬ºãïŒïŒã«ãªãããããé床ã®è€éãã«èµ·å ãããšã©ãŒãçºçããŸãã
Drupalã«ã¯éåžžã«å€ãã®contribã¢ãžã¥ãŒã«ããããŸãããã«ã¿ã€ã ã®éçºè ãããå Žåã¯ãè¿œå ã¢ãžã¥ãŒã«ã®äžéšãèªåã®ãã®ã«ååããããã«ãããããç§ãã¡ããããã©ã®ããã«è¡ããã決ããã ãã§ãã Drupalã®ç»åç·šéããã³ãã£ãã·ã³ã°ã¢ãžã¥ãŒã«ã¯ã代衚çãªäŸã§ãã ã¢ãžã¥ãŒã«ã¯äžè¬çãªåé¡ã解決ããããã«èšèšãããŠããããïŒä»»æã®æ°ã®ä»ã®ã¢ãžã¥ãŒã«ãšé£æºã§ããããã«ïŒïŒã 決ããŠäœ¿çšããªãæ©èœãå€æ°å«ãŸããŠããŸã ã ç§ãã¡ã®å ŽåãImageMagickã䜿çšããŠååŸããããã€ãã®ãµã€ãºã®ãã¬ãã¥ãŒãäœæããå¿ èŠããããŸãã ãããè¡ãã«ã¯ã2ã€ã®ããŒã¿ããŒã¹ããŒãã«ã«ãµã ãã€ã«ãäœæããå®éã®ã³ãã³ãã®ä»£ããã«ããããããå€æ°ã®PHPãã¡ã€ã«ãæã€ImageAPIãImageMagickã®ImageAPIãImageCacheãImageCache UIã®4ã€ã®ã¢ãžã¥ãŒã«ãå«ããå¿ èŠããããŸããã ã¢ãžã¥ãŒã«ãã§ãŒã³ã®äžéšãæŽæ°ãããšãã«åé¡ãçºçããå Žåãå¿ èŠãªããšã ããè¡ãã®ã§ã¯ãªããçç±ãèŠã€ããã®ã«ããªãæéãããããŸãã
Yiiã«ã¯ãç»åãæäœããããã®æ¡åŒµæ©èœïŒKohanaããé©å¿ïŒããããŸãããå¿ èŠã®ãªãæ©èœïŒå転ïŒããªããïŒïŒãå«ãŸããŠãããImageMagickãšGDãééçã«åãæ¿ããããã«èšèšãããŠãããããè€éã§ãïŒGDã«ã¯2MBãè¶ ãããã¡ã€ã«ã®åé¡ããããŸãïŒ ïŒ ããã«ããããããããã¬ãã¥ãŒãååšããªãå ŽåãRewriteRuleã䜿çšããŠãã®å Žã§ç»åã®ãµã€ãºãå€æŽããããšã¯ã§ããŸããã
ããã§ãç»åå°çšã®ãµãŒããŒã§RewriteRuleãªã¯ãšã¹ããåŠçããã·ãŒã«ãã·ã§ã«ã³ãã³ããéä¿¡ããŠãã€ããªã«çŽæ¥å€æããindex.phpãã¡ã€ã«ãäœæããŸããã ããã¯ããããã®RewriteRuleãªã¯ãšã¹ããYiiã®index.phpãã¡ã€ã«ã«åœ±é¿ãäžããªãããšãæå³ãããªãŒããŒããããåæžããç»åã®ãµã€ãºå€æŽãšãã£ãã·ã¥ã®ãªã»ããã«å¿ èŠãªæéãåæžããŸãã ããã¯ããã€ããªãžã®1åã®åŒã³åºãã§æž¡ãããåŒæ°ãåãphpã®1ããŒãžã«ããããImageMagickãæŽæ°ãããŠãããã©ããã®ãµããŒããšãã¹ããã¯ããã«ç°¡åã§ãã
- Drupalã«ã¯PHP 4ã®æè·ç©äºææ§ãå«ãŸããŠããŸãã ãã€ãŠãPHPãã¬ãŒã ã¯ãŒã¯ãæ€èšããããšã«ãããšããç§ã¯ããã«100ïŒ
PHP5 OOPãã¬ãŒã ã¯ãŒã¯ãå¿
èŠã ãšæ°ä»ããŸããã ããã¯ã·ã¹ãã ãOOPã¢ãããŒããããåªããŠãããšäž»åŒµãã人ã¯ããŸãããŸããã Drupal 7ã«ã¯ãCodeIgniter 1.0ããã®ä»ã®å€ãPHPãã¬ãŒã ã¯ãŒã¯ã®ãããªPHP5ãå¿
èŠã§ãããäŸç¶ãšããŠå€ãã®äºææ§ããããŸãã 誰ããã®ãããªè·ç©ãæãã§ããŸããïŒ
- Drupal 6ãŸãã¯7ã§Drupal 5ãµã€ãã®é床ãäœäžãããããªãã§ããïŒ æ代é
ãã®jQueryã«å¯ŸåŠããããªãã§ããïŒ ã»ãšãã©ã®ãµã€ãã§ã¯ãããã¯æ£åžžã§ãã GoogleãšMicrosoftã¯ããŠãŒã¶ãŒãé«éãµã€ãã«å¿ å®ã§ããããšã瀺ããŠãããããé床ãéèŠããŠããŸãã 2009幎ãDrupal 6ãå®å®ãããšãã枬å®å¯èœãªé床ã®å©ç¹ã®ããã«ãDrupal 5ã«ãšã©ãŸããŸããã åé¡ã¯ãDrupal 5ã«jQuery 1.0ãå«ãŸããŠããããšã§ãã contribã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããŠãjQueryã1.2ã«ãããããŸãïŒããã³ãããåç
§ããDrupalé¢æ°ãæŽæ°ããŸãïŒãããã®ããŒãžã§ã³ãå€ãã§ãã jQuery 1.3xãšDrupal 5ã¯å¿ããŠãã ããã
- Drupalã®Drupal Field /ïŒCCKïŒAPIã¯ããªãã倢äžã«ãããŸã ã ããã¯Drupal 7ã³ã¢ã®äžéšã§ã ã $ node-> field_ip [0] ['value']ã䜿çšã§ããã®ã«ã$ node-> ipã䜿çšããçç±ã ãŸãã2ã€ã®ç°ãªãã¿ã€ãã®ã³ã³ãã³ãã«åãååã®ãã£ãŒã«ããæããããå ŽåãCCKã¯ããããé©ãã¹ãååïŒfield_ip_valueïŒãæã€ç¬èªã®ããŒãã«ïŒcontent_field_ipïŒã«å
¥ããŸãã ãã¡ãããDrupalã¯ããŒãã®ããŒãæã«ãã®æ··ä¹±ãç解ã§ããŸããããããèŠãã®ã¯è¯ããããŸããã MySQLã¯ãšãªã§ã¯ãè¿œå ã®CCKããŒãã«ããã¹ãŠåŠçããããã«å€ãã®LEFT JOINãå¿
èŠã§ãããŸããã¹ããŒã¯ãšãªãã°ã§é »ç¹ã«çµäºããäžèŠãªè€éãªã¯ãšãªãå¿
èŠã§ãã æçµçã«ãããããã¹ãŠã®äœéã¯ãšãªãæé©åããããšããã®ã«ããããããCCKãåé€ããããšã«æ±ºããŸãããããã«ãããPHPãã¬ãŒã ã¯ãŒã¯ããããŠYiiã«è³ããŸããã
ããŒã¿ãYiiã«ç§»è¡ããã«ã¯ãDrupalã«ãšã©ãŸã£ãŠããéã«CCKã¢ãžã¥ãŒã«ãåé€ããã®ãšåãæéãããããŸããã ããã§ããDrupalãå éšã®ããŒãºã«äœ¿çšããè¿œå ã®ããŒãã«ããã¹ãŠäœ¿çšããã«ãã¯ãªãŒã³ãªããŒã¿ããŒã¹ã§éå§ããããšãã§ããŸããã å€ãããŒã¿ããŒã¹ã«ã¯173åã®ããŒãã«ããããæ°ãã54åã«ã¯ãããŸããã
- Drupalã¯Yiiãããã¯ããã«é
ãã§ãã
ããŒãäžã®memcachedãšAPCã§ALLããã£ãã·ã¥ãããã¹ãŠã®é ããªã¯ãšã¹ããæžãæãããšãDrupalã¯æ¡åŒµå¯èœã§ãã lïŒïŒãåŒã³åºããã³ã«å¥ã®ããŒã¿ããŒã¹ã¯ãšãªãçæãããããããã¹ãŠã®ãªã³ã¯ã«SEOã¢ãã¬ã¹ã䜿çšããå Žåããã£ãã·ã¥ã¯ç¹ã«éèŠã§ãã ãããã£ãŠãå¹³åããŒãžã«ã¯50以äžã®ãªã¯ãšã¹ãããããŸãããYiiã§ã¯3ã5ã§ãã 移è¡åŸãGoogleãŠã§ããã¹ã¿ãŒããŒã«ã«ãããšãå¹³åããŠã³ããŒãæéã¯163ããªç§ãã63ããªç§ã«ççž®ãããŸããã ããã«è¯ãããšã«ãYii + APCã¯éåžžã«é«éã§ãããããmemchachedã䜿çšããå¿ èŠããªããã³ãŒããšæäœãç°¡çŽ åã§ããŸãã
ç§ãã¡ã®ãµãŒããŒçµ±èšã¯ãããèªäœãç©èªã£ãŠããŸãã 蚪åè ïŒApacheããã»ã¹ïŒããã®åæãªã¯ãšã¹ãæ°ãåãå ŽåãããŒã¿ããŒã¹ãšCPUã®äœ¿çšãäœäžããŸããã ã¡ã¢ãªäœ¿çšéã¯ã»ãŒåããŸãŸã§ãã éå»1幎ã§ããã©ãã£ãã¯ã¯æã«60ïŒ å¢å ãã1ãæããã150äžäººã®èšªåããããŸããããMySQLã®è² è·ã¯66ïŒ æžå°ããŸãã