
wikimediafoundation.orgããæ®åœ±ããç»å
翻蚳è ãã ïŒãã®æçš¿ã¯ãownCloudã®åµèšè ã§ãããã¯ã©ãŠãã¹ãã¬ãŒãžãäœæããããã®ãªãŒãã³ãœãŒã¹è£œåã®éçºè ã§ããFrank Karlitschekã«ãã£ãŠæžãããPHPã®å°æ¥ã®å¯èœæ§ã«é¢ããèšäºã®ç¡æ翻蚳ã§ãã
ææ°ã®çµ±èšãèŠããšãOwnCloudã¯PHPã§æžãããæ倧ã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®1ã€ã§ãã ã»ãšãã©ã®äººã¯ãPHPãOwnCloudã®ãµãŒããŒåŽã®å®è£ ã«äœ¿çšãããŠããããšãç¥ã£ãŠããŸãã ãã¹ã¯ãããã¯ã©ã€ã¢ã³ãã«ã¯C ++ãšQtãAndroidã¢ããªã±ãŒã·ã§ã³ã«ã¯JavaãiOSã«ã¯Objective-CãWebã€ã³ã¿ãŒãã§ã€ã¹ã«ã¯JavaScriptãªã©ãä»ã®ãã¯ãããžãŒã䜿çšããŠããŸãã ããããOwnCloudã®äžå¿ã¯PHP 5.3以éã«åºã¥ãããµãŒããŒã³ã³ããŒãã³ãã§ã...
PHPãéžæããçç±ã¯ããã€ããããŸãã
- OwnCloudã®äž»ãªç®çã¯ãå šå¡ã«ç¬èªã®ã¯ã©ãŠããµãŒããŒãæäŸããããšã§ãã PHPã¯ãã»ãšãã©ã®WebãµãŒããŒããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããã³ãã©ãããã©ãŒã ã§å©çšå¯èœãªãã¯ãããžãŒã§ãã ãŸããPHPã§èšè¿°ãããŠãããããOwnCloudãµãŒããŒã®ãã¹ãã£ã³ã°ãéåžžã«ç°¡åã«ãªããŸãã
- PHPã¯ã¹ã¯ãªããèšèªã§ããã€ãŸãã1ã€ã®tarã¢ãŒã«ã€ãããã¹ãŠã®ãã©ãããã©ãŒã ã§åäœããè€éãªã³ã³ãã€ã«ãã¢ã»ã³ããªã¯ãããŸããã
- PHPã¯éåžžã«æåã§ãã å€ãã®äººãPHPã«ç²ŸéããŠããŸãã ãŸããPHPãç¥ããªãéçºè ã§ãç°¡åã«åŠç¿ã§ããŸãã åå è ã®èŠä»¶ã®ã¬ãã«ã¯ã§ããã ãäœãããå¿ èŠããããããããã¯ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«ãšã£ãŠéåžžã«éèŠã§ãã
- PHPã¯ãé©åãªæ¹æ³ã§äœ¿çšããã°åŒ·åãã€é«éã§ãã ãŠã£ãããã£ã¢ãFacebookãWordPressãäžéšã®Yahooãªã©ã®å€ãã®å€§èŠæš¡ãªWebãããžã§ã¯ãã¯PHPã§äœæãããŠããŸãã ãããã£ãŠãããªãã¯ããã«å€ããè¡ãããšãã§ããŸãã æ®å¿µãªãããæªãã³ãŒããæ¯èŒçç°¡åã«æžãããšãã§ããŸãã ããããããã«ã€ããŠã¯åŸã§ã
- PHPã§å©çšå¯èœãªã©ã€ãã©ãªãã³ã³ããŒãã³ã/ãã©ã€ããŒã®å·šå€§ãªãšã³ã·ã¹ãã ããããŸãã OwnCloudã®ãããªãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®å Žåãããã¯éåžžã«ã¯ãŒã«ã§ããããã¯ããã¹ãŠããŒãããäœæããå¿ èŠããªãããšãæå³ããŸãã ç§ãã¡ã¯å·šäººã®è©ã®äžã«ç«ã¡ãŸãã
PHPã¯ãäžçã§æããããããããŠããããã°ã©ãã³ã°èšèªã§ã¯ãããŸããã å®éãéã®ããšãåœãŠã¯ãŸããŸãã 圌ã¯æ¯èŒçæªãè©å€ãæã£ãŠããŸãã å人çã«ã¯ããã¯ãŒã«ãããã¢ãã³ãããŸãã¯ããã¡ãã·ã§ã³ãã§ãããšããäºå®ã«åºã¥ããŠãã¯ãããžãŒãéžæãã倧ãã¡ã³ã§ã¯ãããŸããã åéããšã«ç°ãªãæè¡ãããããããã¯å®¢èŠ³çã«è©äŸ¡ãããã¹ãã§ãããææ ã®é¢äžãªãã«éžæãããå¿ èŠããããšæããŸãã ãããã£ãŠãããŒã«Xãåžžã«ãã¯ãããžãŒYãããåªããŠããçç±ã«ã€ããŠã®å®æçãªè°è«ãç解ããŠããŸããããã¡ãããããããã¹ãŠã¯ããããã䜿çšããç¥æµãå ¬æ£ã«è©äŸ¡ããäžã§æ©èœããé©åãªãã¯ãããžãŒã ãšæããŸãã
ãããã£ãŠãç§ã¯PHPã䜿çšãããšãããã®æ±ºå®ã«éåžžã«æºè¶³ããŠããŸãã ãããŸã§ã®ãšãããPHPã§è§£æ±ºã§ããªãäž»èŠãªã¢ãŒããã¯ãã£ãŸãã¯æè¡çãªåé¡ã¯çºçããŠããŸããã
ããããããã¯PHPãå®ç§ã§ããããã¹ãŠã«éåžžã«æºè¶³ããŠãããšããããšã§ããïŒ ãã¡ããéããŸãã PHPã¯90幎代åã°ã«éçºãããŸãããåœæã¯ãWebãä»æ¥ã®ããã«æ³åã§ããŸããã§ããã åœæã®èå³æ·±ãæ©èœã®äžéšã¯ãä»æ¥æªå€¢ã«å€ãããŸããã æ¹åããå¿ èŠã®ãããã®ã¯ãããããããŸããPHPã®äžæ žéçºè ã§ãããããã§ç§ã«åæãããšæããŸãã
æãããªæ¬ é¥ïŒ
- å®å šæ§ PHPèªäœã¯å®å šã§ã¯ãããŸããããçŸããå®å šãªã³ãŒããæžãæ©äŒã§ãã PHPã¯ãã»ãã¥ãªãã£ã«å¯ŸããŠããçŽ æŽãªã¢ãããŒããå®è£ ããããšã決å®ããå®å šãªã³ãŒãã®äœæã«ãããŠéçºè ãããŸããµããŒãããŠããŸããã å ¬å¹³ã«èšããšã90幎代ã«ã¯èª°ããWebã»ãã¥ãªãã£ã«ã€ããŠäžéç¥ããã§ããã ãããã£ãŠãPHPã«ã¯éçºè ãå®å šãªã³ãŒããæžãã®ãå©ããæ©äŒã¯ããŸããããŸããã ããšãã°ãããŒã¿ããŒã¹ãšã®æ··åãå€ãã®äººã ã¯ãŸã ãã€ã³ãå€æ°ã䜿çšããŠããªããããããããSQLã€ã³ãžã§ã¯ã·ã§ã³ã®åºçŸãèš±å¯ããŸãã ãŸããXSSããã³ãã®ä»ã®èããããåé¡ã®å ¥åãã£ã«ã¿ãªã³ã°ã¯ãéçºè ãæåã§è§£æ±ºããå¿ èŠããããŸãã ããããã¹ãŠã®åé¡ã解決ããã®ã«åœ¹ç«ã€æ¡åŒµæ©èœãšã©ã€ãã©ãªããããŸããããããã¯èšèª/ã«ãŒãã«ã®äžéšã§ã¯ãªãããåé¡ãå®å šã«è§£æ±ºããŸããã
- ã³ã³ãã€ã«/æ§æã 楜ãã¿ã®ããã«ãã/ configureã¹ã¯ãªãããå®è¡ããŠPHPãã³ã³ãã€ã«ãããã¹ãŠã®ã³ã³ãã€ã«ãªãã·ã§ã³ã確èªããŸãã ãµãŒããŒç®¡çè ãphp.iniã§èšå®ã§ãããªãã·ã§ã³ãèŠãŠã¿ãŸãããã äžæ¹ã§ã管çè ã¯PHPã®æ©èœã®å€§éšåãããªãç°¡åã«æå¹ãŸãã¯ç¡å¹ã«ã§ãããããããã¯è¯ãããšã§ãã ããããPHPéçºè ã«ãšã£ãŠãå©çšå¯èœãªãã¹ãŠã®PHP察å¿ãµãŒããŒã§å®è¡ããå¿ èŠãããã¢ããªã±ãŒã·ã§ã³ã¯æªå€¢ã§ãã ã©ã®æ©èœã䜿çšå¯èœãã€ã¢ã¯ãã£ãã§ãããã¯æ±ºããŠããããŸããã OwnCloudã«ã¯ãç°å¢ãšã©ã³ã¿ã€ã ã«äŸåããå€ãã®ã³ãŒããããããã¹ãŠãæ£åžžã«æ©èœããããå¿ èŠã«å¿ããŠé©å¿ãããããã§ãã¯ããŸãã æ®å¿µãªãããããã¯å®å®ãããã©ãããã©ãŒã ãåªããOSæœè±¡åãšåŒã°ãããã®ã§ã¯ãããŸããã
- é¢æ°ãšã¯ã©ã¹åã«ããã€ãã®ççŸããããŸãã äžç·ã䜿çšãããããšãããã°ããã£ã¡ã«ã±ãŒã¹ã䜿çšãããããšããããŸãã äžéšã®æ©èœã¯æç¶ãåã§å©çšã§ããäžéšã¯OO APIãåããŠãããäžéšã¯äž¡æ¹ãšããããŸãã ã¯ãªã¢ããå¿ èŠããããã®ããããããããŸãã
- éçã¿ã€ãã³ã°ã ãã¡ããããã¯å¥œã¿ã®åé¡ã§ãããæã«ã¯ãã£ãšéçãªåä»ãããããããšããããŸã; PHPã§ã¯ããå°ãéçãªåä»ãããããã§ãã ãã£ã¬ã¯ããªã«ã0ããšããååã®ãã¡ã€ã«ãããå Žåã次ã®ã³ãŒãã®åäœãæšæž¬ããŸã
while ( ($filename = readdir($dh)) == true) $files[] = $filename;
PHPã®æ¬¡ã®ã¬ãã«ã«ç§»è¡ããå°æ¥ãããã®æ¬ ç¹ã®ããã€ããæ¹åããããšãæ¬åœã«æãã§ããŸãã
ãããããããæ£ããè¡ãããšã¯éåžžã«éèŠã§ãã
ArsTechnicaãšAppleã®æåŸã®èšäºã§ã¯ãObjective-Cã®åŸç¶ãšããŠSwiftã®å®è£ ãæšé²ããŠããŸããããã§ã¯ã次äžä»£ã®PHPãã©ã®ããã«å®è¡ã§ãããããŸãå®è¡ãã¹ãããæ³åããŠããŸãã
åŸæ¹äºææ§ãç¶æããããæ¬ é¥ãä¿®æ£ããŸããïŒ -Apple Swift
ä»ãå€ããççŽã«èšã£ãŠãéåžžã«çŽ æŽãªã¢ãããŒãããããŸãã ããã°ã©ãã³ã°èšèªã®éçºè ã®äžæ žããŒã ã¯ãå€ãããŒãžã§ã³ã®æ¬ ç¹ãä¿®æ£ããæ°ããéäºæããŒãžã§ã³ããªãªãŒã¹ããã ãã§ãã äŸã¯ãPerlããã³Pythonã§ãã åé¡ã¯ããããã®èšèªã§æžããããœãããŠã§ã¢ãããžã§ã¯ãã®ã»ãšãã©ãæ°ããããŒãžã§ã³ãšäºææ§ãæãããããã«æžãæããããšãã»ãšãã©äžå¯èœã§ããããšã§ãã ãããã£ãŠãéåžžã«é·ãéãããã°ã©ãã³ã°èšèª/ãã¬ãŒã ã¯ãŒã¯/ã¢ããªã±ãŒã·ã§ã³ã®2ã€ã®ããŒãžã§ã³ã§äœæ¥ããããšã«ãªããŸãã ãŸããäžéšã®ã¢ããªã±ãŒã·ã§ã³ã¯å€ãããŒãžã§ã³ã§åäœããå€ãããŒãžã§ã³ã§åäœããŸãã 1ã€ã®ããŒãžã§ã³ã®ã¿ã§ç°ãªãã©ã€ãã©ãªã®äŸåé¢ä¿ãå©çšã§ããå ŽåããããŸãã
移è¡ã¯éåžžã«é£ãããéšåçã«å®äºããããšã¯ã§ããŸããã ãããæªå€¢ã«ãªãäŸã«ã€ããŠã¯ãPerl6ãšPython 2/3ãåç §ããŠãã ããã ã©ã¡ããéåžžã«é·ãéååšããå€ãã®ãããžã§ã¯ãã¯ç§»è¡ã«ãŒãã®éäžã§ãã¹ã¿ãã¯ãããŠããŸãã
ããããžãã£ããªäŸã¯C ++ã§ãã Cãšã¯å€§ããç°ãªããŸãããã¢ããªã±ãŒã·ã§ã³å ã§æ··åããŠäœ¿çšã§ãããšäŸ¿å©ã§ãã ãããã£ãŠã90幎代ã®Céçºè ã¯ãã¢ããªã±ãŒã·ã§ã³å šäœããŒãããæžãçŽãããšãªããã¢ããªã±ãŒã·ã§ã³ã®äžéšã§æ°ããèå³æ·±ãC ++é¢æ°ã䜿çšã§ããŸãã
Appleã¯SwiftãObjective-Cã®åŸç¶ãšããŠé²ããŠããŸãããããã¯éåžžã«è³¢æã ãšæããŸãã çµå±ã®ãšãããããã¯ãŸã£ããæ°ããèšèªã§ãããåãã©ã³ã¿ã€ã ã§åäœããŸãã ã€ãŸããéçºè ã¯æ¢åã®Objective-Cã¢ããªã±ãŒã·ã§ã³ã³ãŒããååŸããŠãæ°ããSwifté¢æ°ã®äœæãéå§ããããå€ãã³ãŒãã®äžéšãæ°ããSwiftã³ãŒãã§ä»ã®ã³ãŒãã«çœ®ãæããããšãã§ããŸãã æçµçã«ãããã¯ãã€ããªã«ã³ã³ãã€ã«ãããObjective-Cãšæ¯èŒããŠæ°ããã©ã³ã¿ã€ã äŸåé¢ä¿ã¯ãããŸããã
PHPãèšèªã®å€§å¹ ãªéçºãšæ¹åãå¯èœã«ããããšãé¡ã£ãŠããŸãããããã§ãå®å šã«äºææ§ã®ãªããªãªãŒã¹ããªãªãŒã¹ãããšãã«ãPerlãPythonã®ãããªã¹ã ãŒãºãªç§»è¡äœéšãæäŸããŸããã
ãŸããPHP 6ãŸãã¯7ã§æ°ããéå§ã¿ã°ïŒ<ïŒPHPã®ä»£ããã«<ïŒPHPNEXTãªã©ïŒãå°å ¥ãããå Žåã«ãåªãããœãªã¥ãŒã·ã§ã³ã«ãªããŸãã äž¡æ¹ã®ã¢ãŒãã¯ãPHPã®æ°ããããŒãžã§ã³ã§å®å šã«ãµããŒããããåãã¢ããªã±ãŒã·ã§ã³ãŸãã¯åããã¡ã€ã«ã§äžŠè¡ããŠäœ¿çšã§ããŸãã ãŸããPHPNEXTã»ã¯ã·ã§ã³ã§ã¯ãæ°ããæ¹åãããæ§æã䜿çšãããŸãã
ããã«ç§ãèŠããæ¹åã®ããã®ããã€ãã®ã¢ã€ãã¢ããããŸãïŒ
- å®å šæ§ _GETã_POSTã_SERVERé åã¯ãªããªãã代ããã«æ£ããAPIã衚瀺ãããŸããããã䜿çšããŠããã¹ãŠã®åä¿¡ããŒã¿ããã£ã«ã¿ãªã³ã°ã§ããŸãã ïŒç¿»èš³è 泚ïŒçŸåšãPHP 5> = 5.2.0ã§ãµããŒããããŠããfilter_inputããããŸãïŒ
- ããŒã¿ããŒã¹ PHPã¯å€ãã®ç°ãªãããŒã¿ããŒã¹APIããµããŒãããŠããŸãã ãããã®ããã€ãã¯éåžžã«å€ãã§ããã䜿çšã«ã¯äºææ§ããããŸããã OO APIã1ã€ã ãã«ãªãããã«ããã¹ãŠãæšæºåããå¿ èŠããããŸãã å人çã«ã¯PDOãåºç€ãšããŠèŠããã§ãã
- 32/64ãããã 32ããããŸãã¯64ãããã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§å®è¡ããPHPã¢ããªã±ãŒã·ã§ã³ãäœæããããšããã人ãªã誰ã§ããå€æ°ãç¹ã«æŽæ°å€æ°ã®åäœãç°ãªãããšãèªèããã§ãããã ãããã¯C / C ++ã®ãšã³ãŒã§ããããšãç解ããŠããŸãããããã¯æ¬åœã«æªãèãã§ãã åå¥ã«ãã§ãã¯ããå¿ èŠã®ããã³ãŒãã®ç°ãªãéšåã¯å¿ èŠãããŸããã
- Safe_modeãopen_basedirãããã³ãã®ä»ã®å€ä»£ã®æŠå¿µã¯ãã® ãŸãŸã«ãªããŸãïŒç¿»èš³è æ³šïŒ safe_modeãªãã·ã§ã³ã¯5.3.0ã§å»æ¢ãšããŒã¯ããã5.4.0ã§åé€ãããŸããïŒ
- ã»ãšãã©ã®ã³ã³ãã€ã«ããã³å®è¡æ§æãªãã·ã§ã³ã¯åé€ãããŸãã ãã¹ãŠã®PHPNEXTç°å¢ã¯ãã§ããã ãè¿ããå®å®ããŠããå¿ èŠããããŸãã
- ã¿ã€ãã³ã°ã PHPãè¿œå ã®éçåä»ããå°å ¥ããŠãå€æ°ãboolãŸãã¯intãšããŠå®£èšã§ããããã«ãªã£ããçŽ æŽãããã§ãããã ãããŠãäœãä»ã®ãã®ã䜿çšãããŠããå ŽåãäŸå€ãã¹ããŒãããŸããã
- åžžã«Unicodeæååã䜿çšããã«ã¯
ãããã®æ¹åã®ããã€ãã¯ãFacebookã§éçºãããäžçš®ã®å¥åã®PHPãã©ã³ãã§ããHackã«å®è£ ãããŠããŸãã ããã¯ã«ã¯ãåãæ¹åã«çºå±ããŠããéåžžã«èå³æ·±ãã³ã³ã»ããããããŸãã ãŸããæ°ããã<hhãã¿ã°ã䜿çšãããããã³ãŒãã1ã€ã®ãã¡ã€ã«ã«æ··åšãããããšãã§ããã¿ã€ãã³ã°ãæ¹åãããŸããã çŸæç¹ã§ã¯ãFacebookãä»åŸHackãããã«éçºããããã«ãããžã§ã¯ãã«ã©ãã ãã®åŽåãè²»ãããFacebook以å€ã§ã©ã®ããã«åãå ¥ãããããã«ã€ããŠã¯æ確ã§ã¯ãããŸããã ãŸãã圌ãã«ãšã£ãŠéèŠã§ã¯ãªãå€æŽã«å¯ŸããŠã圌ããã©ã®çšåºŠãªãŒãã³ã«ãªãã®ãã誰ãã©ã®ããã«èŠå¶ããã®ããå¿é ã§ãã PHPã³ãã¥ããã£ã®å ¬åŒã§ããäžè¬çãªã¢ãããŒããåžæããŸããããã¯ã次ã®äž»èŠãªPHPãªãªãŒã¹ã®äžéšã«ãªããŸãã
ã¹ã ãŒãºãªç§»è¡ãã¹ãå«ããããè¿ä»£çã§ã¯ãªãŒã³ãªPHPã®å€¢ããä»åŸæ°å¹Žã§å®çŸããããšãé¡ã£ãŠããŸãã
ãã¡ãããOwnCloudã§ã¯ããã¹ãŠã®PHPã€ã³ã¹ããŒã«ã®95ïŒ ãæ°ããããŒãžã§ã³ã§åäœãå§ãããŸã§ããã®æ°ããPHPã¢ãŒããžã®ç§»è¡ãéå§ã§ããŸããã ç°¡åã§ãããããã«3ã5幎ããããŸãã
WordPressãOwnCloudãªã©ã®å€§èŠæš¡ãªãããžã§ã¯ããè¡ãããšã§ãå®éã«ã¯ãããã¯ãªãŒã³ã§ææ°ã®èšèªã«ç§»è¡ããããšãã§ããŸãã ãããããã£ãšéèŠãªã®ã¯ãPHPãæªæ¥ã«ææŠããæºåãã§ããŠããããšã§ãã
UPDïŒ5.4.0ã§safe_modeã®åé€ã«é¢ãã泚æãè¿œå ããŸããã ãã³ãã® Swayã«æè¬ããŸã :)ã filter_inputã«ã€ããŠã®ã¡ã¢ã ã³ã¡ã³ãã® AmdYãè¿œå ããŸããã
UPD2ïŒããã¹ãå ã®ããã€ãã®ãšã©ãŒãä¿®æ£ããŸãããhDrummerã®ã³ã¡ã³ãã«æè¬ããŸãã