PHPã«ã³ãã¡ã¬ã³ã¹é¢è¥¿2013 #phpkansai ãçµãã¦
3åç®ã¨ãªã PHPã«ã³ãã¡ã¬ã³ã¹é¢è¥¿2013ãä»åã¯ã¹ã¿ããã¨ãã¦åå ãã¦ãã¾ããã
PHPã«ã³ãã¡ã¬ã³ã¹é¢è¥¿2013ã¾ã¨ã - Togetter
å»å¹´ã®ãã¼ãã¯ã好ããããPHPãã§ããããä»å¹´ã¯ãªãã¨ãPHPã®æªæ¥ãé¢è¥¿ãããã§ãã大ããåºã¾ããããã©ããªæªæ¥ãçºä¿¡ããã®ã§ããããã
ã¨ããããã§åã¨ãã¦ã¯ãç¾å¨ã®æ°´æºã¨æ¯ã¹ã¦ä½ããæªæ¥ãã£ã½ãã¨æããããæ¸ãããã¨æãã¾ãã(ä»ã®ãã¿ã¯ä»ã®ã¹ã¿ããããã£ã¦ãããã¨æãã®ã§ãããã°ãæ¸ãã¾ã§ãåå¼·ä¼ã§ãããã)
å¤è¨èªããã«ãã£ã¹ã«ãã·ã§ã³
ãã®ãããéå»ã®è©±ããå§ãã¾ãã
ããã¯ãPHPã¦ã¼ã¶ã¼ã¯ä»ã®è¨èªããå¦ãã§ããã®ããã¨ããç¹ã
PHPã¦ã¼ã¶ã¼ãä»ã®è¨èªã¦ã¼ã¶ã¼ãããå¼±ãã®ã¯ããããªã®ã§ã¯ãªããã
404 Blog Not Found:ãPHPãªãããªãã¨ã(Perl|Python|Ruby)ããªãããªãã®éã
ã»ãã·ã§ã³ä¸ã«åºããã²ã®ããããã®ãã®çºè¨ãã2013ãèªã¿è§£ãããã§é常ã«ãã¤ã³ãã«ãªãã¨æã£ã¦ãã¾ãã
PHP5.3ããå§ã¾ããã®è²ªæ¬²ãªä»ã®è¨èªã®ç¹å¾´ã®åãè¾¼ã¿ã¯ããã¯ãèªãã¾ã§ããªãã§ãããã¯ãã¼ã¸ã£ããã¬ã¤ããã¸ã§ãã¬ã¼ã¿ã¼ããã¶ããã®ã¾ã¾ããã°ãåä»£å ¥ç¦æ¢å¤æ°ã®å®£è¨ã ã¨ããåç §ç価颿°ã®ã¡ã¢åãªããããææ³ã«å ¥ã£ã¦ããããããªãã§ãããããå人çã«ã¯ãã·ã§ã¼ãã¢ã¬ã¤ã·ã³ã¿ãã¯ã¹ã®ãããªãã·ã§ã¼ãã¯ãã¼ã¸ã£ã·ã³ã¿ãã¯ã¹ãæ¥ã¦ã»ããã§ããè±ç·ãã¾ãã m_ _m ã¨ã«ãããPHPéçºè ã¯ããå¦ãã§ãã¾ãã¨ããã®ã¯æç½ã§ãã
ãããã¦ã¼ã¶ã¯ã©ããã
ã»ãã·ã§ã³å 容ã¯ãPHPã³ãã¥ããã£ä»¥å¤ãããè¨èªãã¨ã«æåãªã¨ã³ã¸ãã¢ãæå¾ ãã¦ãã®è¨èªã®æåãç¥ããã¨ããä¼ç»ã§ããåã¯PHP代表ã¨ãã¦ã話é·ããããã£ãã ããããã¦ãããã¾ãããPythonã¨ãèª å®ãªè¨èªã¯ããããã¨ãã颿°åãç¥ã£ã¦ãããããã¨ããèªåã®è¨èªPHPãç¸å¯¾çã«ã©ããããã¸ã·ã§ã³ã§æ´»ããã®ã(ãã大äº)ãã¨ãããã®ããããä¼ãã£ã¦ãããããªãã¨é¡ã£ã¦ãã¾ãã
ããã§éã«é©ãããã¨ãããã¾ããããã¸ã失礼ãªè¨ãæ¹ã«ãªãã®ã§ãããJava/JVMè¨èªã®äººãLLã®äººãã¿ããªãPHPã«ã¤ãã¦ãã¾ãå¦ãã§ããªãã£ãã¨ããäºå®ã§ããåãç¥ãéãã§ã¯ãPHP以å¤ã®è¨èªã使ããPHPerã¯æ¡å¤å¤ãã¦ãéã«ãæé©ãªPHPãæ¸ããéPHPã¦ã¼ã¶ã¯å°ãªãã£ããèªåãæ£ããã¢ãã³Perlãæ¸ãã¨è¨ããã¦æãæ¢ã¾ããã¿ãããªãã®ãã(æ°å¤§éªã³ã¯ã¼ãã³ã°ã«æãã¦ãããã«è¡ãã)ã
ã¨ããããã§ãããæã人ã«ãä»ã®è¨èªããå¦ãã§ããã®ããã¨èããããããã¡ãã¯PHPããå¦ãã§ãããã¾ãããã¨è¿ããããããªãããªã¨æãã¾ãããã¨ããã®ã¯åè«ã§ãPHPã¯ãããå®ç¨è¨èªã¨ãã¦ã®å°ä½ãæã£ã¦ããããã®æ ¹æ ã説æãããããªãã ãããããããã¯ãä»ã®è¨èªã®ã¦ã¼ã¶ã«ãPHPã®å¤ãªä»æ§ã¯ãä»ã®è¨èªã®è¨èã使ã£ã¦PHPãªãã®æ£ãããèª å®ã«èª¬æãã¦ãè³¢ã人ã«ãã£ã¨æ£ããå¦ãã§ããããè¨èªã¨ãã¦ã¢ãã¼ã«ãã¦è¡ã£ã¦ãããããããªãããªãã¨ããã®ããèªåã®ä¸ã§ã ãã§ãããæããæªæ¥ã§ãã
è£åº§è«ä¼ã§ãJavaã§ä½ã£ã¦ãããã®ãPHPã«ã·ãããã¦ãããããªããã¨ãã仮説ãåºã¾ããããã£ã¦ããã¯ãéã®è©±ã§ãããã¾ã£ãã大éªã¯w
Debugging and Profiling PHP
ã¨ããããã§ã¿ããªå¦ã³ã¾ããããè±èªããã
åæé訳ãªããå ¨é¨è±èªã®ã»ãã·ã§ã³ã§ããé訳ã¯é ãã¦Twitterã§æµãã¦ããã ããªã®ã§ãç»é¢ã§èµ·ãã£ã¦ãããã¨ã¯è±èªã®ãªã¹ãã³ã°ã§ãªãã¨ãããªãã¨ããã¾ãããããããªãã¨ã大ãã¼ã«ã®ã»ãã§è¡ããããã§ãããè±èªãå½ããåãªãã ã¨ããè¡æãéä¸ãã¦èãããæ å ±éã¼ããããªãããªã«ãèãã ãããã¨ãããã¨ãããªãã¹ãå¤ãã®äººãæãã¦ãããã幸ãã§ãã
æ¬å½ãªããã»ãã·ã§ã³ã®å¾ã«æãã¦ããããã¨ããã°ã£ã¦è±èªã§ Graham ã«è©±ããããããªãã¦äººãç¾ãã¦ãããã£ãã®ã§ãããå½¼ãä»äºå¿ãããã§æ©ãä¸ãã£ã¦ãã¾ã£ãã®ãæ®å¿µã§ããæ¥½å¤©ã£ã¦åæ¥ã«ä»äºå²ãè¾¼ãã§æ¥ãããã大å¤ãªã®ããªã
Chef + Vagrantã§ä½ãããããã®éçºç°å¢ã¨ã¯ã©ã¦ã
ä»ã®è¨èª? ChefãVagrantãè¨å®ãã¡ã¤ã«ãRubyã§æ¸ããã§ããããå¦ã°ãããããªãããããªãã§ãããã (ããããªããå®ã¯è´ãã¦ã¾ããã§ãã)
Ginq
è£ã®ç®çååãããã§ãããæªæ¥ãé¢è¥¿ãããã«ãã£ã¨ãåã£ã¦ããã®ããå®ã¯Ginqã ã£ãããããªããã¨æã£ã¦ãã¾ããå®ã¯çºè¡¨è ã® @akanehara æ°ã¯åã®ãã¨ååã§ããPHPã ãã ã¨ããããªãã£ãHTTPãJavaã¨Pythonã§çè§£ã§ãããã¨è¨ã£ã¦ããã¿ã¤ãã®äººéã§ããã«ã³ãã¡ã¬ã³ã¹ã®ããã°ã©ã ãã¾ã 決ã¾ã£ã¦ãªãã£ãé ãåãã¾ã ãã®ã¨ãã¹ã¿ãããããªãã£ããã§ãããããããé¨ãããã¨æã£ã¦ãã£ã¦ããªã§ãäºãã«è¦ãã¦ãã¡ã¤ã³ã»ãã·ã§ã³ã«å ¥ãã¦ãããã¾ããã¨ããçµç·¯ã§è¡ãããã»ãã·ã§ã³ã§ãã
LINQã¤ã³ã¹ãã¤ã¢ç³»ã©ã¤ãã©ãªGinqã®ç´¹ä»
Ginqã®ã¢ã¤ãã¢ã¯C#ã®LINQããæ¥ã¦ãã¾ããGinqã®Gã®ç±æ¥ã¯ã¾ã ãªãªã¼ã¹ããã¦ããªãPHP5.5ã®Generatorã§ããGeneratorã¯Pythonã«ç±æ¥ããæ©è½ã§ããéæãããã¨ããããã§ãããéä¸ã®ä¸æå¤æ°ããªããªãã¾ãããã¼ã¿ãããã«æä½ããã«ã¾ããæä½ããã¨ãããã¨ãåæãããã®ã§ããåæãããæä½ã使ã£ã¦ãæå¾ã«å
¥åãåºåã«ç´çµããã®ã§ãarray_mapã¨array_filterã«å¿
è¦ãªä¸éãããã¡ãå¿
è¦ãªããªãã¾ãã->
ãã®ã¡ã½ãããã§ã¤ã³ã§æ°ããªæä½ã³ã³ããã¹ããæ¬¡ã
ã¨çæ(ã³ã³ããã¹ããªãã¸ã§ã¯ãã¯ã¤ãã¥ã¼ã¿ãã«ã§ç¶æ
ãæããªã)ãã¤ã¤ãåãæ¼ç®ã®åè©ä¾¡ãããªãåç
§ç価ãªé¢æ°ã®é
å»¶è©ä¾¡ã®ä¸çãä½ã£ã¦ãã¾ããã¢ããã£ã½ãã¢ããã¼ãã§Haskellã®åºæ¬æ©è½ãå®ç¾ãããããC#ã®ä¸çããåãã¦ããã¯ã¨ãªè¨èªã§ããã±ã¼ã¸ã...ããä»ã®è¨èªããå¦ã³ããã§ããã
PHPã®LINQã£ã½ãã©ã¤ãã©ãªã¯ããã¾ã§ã«ãåå¨ãããã©ããã¼ã¿ãç´æ¥æä½ããããã¼ã¿ãæä½ããæ¦å¿µãåæãã¦ããã®é å»¶è©ä¾¡ããããå¿ è¦ã«å¿ãã¦ã¡ã¢åãã§ããã¨ããã®ã¯ãããããä¸çåã§ãããªãããã¾ã§åå¨ããªãã£ããã¨ããã¨ãã¸ã§ãã¬ã¼ã¿ã¼ããªãã£ãããã
array_mapã¯ä¸æãããã¡ã使ããããããªããã®ã®ãå ã®ãã¼ã¿ãã©ããarrayã§æ¥ãããã¨ããçç±ã§ãåãã¾ããããã¨å¦¥åãã¦ãã¾ãããããã¾ã§ã®PHPã¯ããããããSQLã§ååã«çµãè¾¼ãã ãããã50ä»¶ç¨åº¦ã®ãã¼ã¿ãHTMLã«ã§ããã°è¯ãã£ããã¹ã¿ã³ãã¢ãã¼ã³ã®LAMPæ§æã§ãã£ã¨ã使ããã¦ããã
ã¨ããããNoSQLã«ããSQLããã«ããã¯ã®ãã¬ã¤ã¯ã¹ã«ã¼ããã¯ã©ã¦ãã«ãã忣ã³ã³ãã¥ã¼ãã£ã³ã°ã¨ããæä»£ã«ãã¦ãæªæ¥ã®PHPã¯å¾æ¥ã®PHPã§ã¯ããããªãããã«ãªã£ã¦ãã¦ããã¨åã¯æãã¾ãã100ä¸ä»¶ã®ãã¼ã¿ãã¹ããªã¼ãã³ã°ã§åã£ã¦ãã¦ãäºåã«å å·¥ãã¦ããHadoopã«æãã¦åºåããã©ã¼ããããçµãè¾¼ãã§ã¹ããªã¼ãã³ã°åºåããªãã¦ãã¨ããããã¡ã¡ã¢ãªã§ãã£ã¦ãããè¶³ããªãã§ãããåãªããã10000人ã®ä¼å¡ãã¼ã¿ãCSVã«åãã ãã§ã¡ã¢ãªè¶³ããªãã¦å°ã£ããªãã¦ãã¨ãããã¾ããã
ããã§ããããã¡ãæããªãã¤ãã¬ã¼ã¿ã¼ããã£ã¨ã«ã¸ã¥ã¢ã«ã«ä½ããããã«ã¨ã次ã¯ã¸ã§ãã¬ã¼ã¿ã¼ãç»å ´ã¨ãªã£ããã ã¨æãã¾ãããæ¬å½ã«æ®å¿µãªãã¨ã«ããã®ã¸ã§ãã¬ã¼ã¿ã¼ãæ´»ãããã¼ã¿æä½ã©ã¤ãã©ãªãåæã«ãªãªã¼ã¹ããããããããªãããã§ãããã£ããã¸ã§ãã¬ã¼ã¿ã¼ã使ã£ã¦ããarray_mapãæ¢åã®LINQé¡ä¼¼ã©ã¤ãã©ãªã§ã¯ãçµå±å·¨å¤§ãªarrayãå¿ è¦ã«ãªã£ã¦ãã¾ããã§ãããããªè¨èªããå½±é¿ãåããGinqã¯ããããã¡ãæããªãã¹ããªã¼ãã³ã°ãã§ãããããPHPã®æªæ¥ã¯ããããå½¢ã«ãªããã¨ãã種ããé¢è¥¿ããçºä¿¡ã§ãããã£ã³ã¹ãããªãã§ããã
話é·ããããããããã¡ãã£ã¨ç±ããªãããã¾ããã
ãã ãChefã¨Vagrantã®è©±ã¨ã®è£çªçµã ã£ãã®ã§ãè´è¬è ãå°ãªãã£ãã®ãæãã¾ãã¾ããã¾ããéã«è¨ãã°ãããã§ããã¦Ginqãèããã¨ãé¸ãã 人ã«ã¾ãä¼ãã£ãã¨ããã®ã¯ããããã§ãã
PhpStorm
ãªãã¨ä»åãJetBRAINSã®æ¥æ¬ä»£çåºã®ãµã ã©ã¤ãºã æ§ãã¹ãã³ãµã¼ã¨ãã¦ç´ã ã«IDEã®ãã¢ãè¦ãã«æ¥ã¦ãã ããã¾ããã
ææã ãã¾ã ãã¤ãã¼ãªIDEããããã¨ãæãããããªãã¨ç»å£ããçºè¡¨è ã®å¤§å¤æ°ãPhpStormããã§ã«ä½¿ã£ã¦ããããã¾ãã¯Eclipseã使ãã¤ã¤ãPhpStormãçµ¶è³ãã¦ããã§ã¯ããã¾ããããLTãå«ãçºè¡¨ã®ä½¿ç¨IDEãèªåãè¨æ¶ãã¦ããã ãã§ãSublimeText x 1, Coda x 1, Eclipse x 2, PhpStorm x 6 ã§ããå¤è¨èªãã£ã¹ã«ãã·ã§ã³ã§ã®æ®åçã¯ãPerlã¯ãããããªãã¨ãã¦ãã»ã¨ãã©ã®äººããã§ã«JetBRAINSã«ãéãæã£ã¦ãã¾ããã(IntelliJ IDEA, WebStorm ãªãããããã¾ããIDEAã®Scalaãã©ã°ã¤ã³æå¼·ã§ã)
Ginq ã® @akanehara æ°ãªãã¦ããã§ã«ä½¿ã£ã¦ãã®ã«ããããããã¬ã¼ã³ã大ä¼ã§åªåãã¦ãã¼ã½ãã«ã©ã¤ã»ã³ã¹ããã£ã¦ããã£ãã¼ããã§æ³äººã©ã¤ã»ã³ã¹ã¨ãã¼ã½ãã«ã©ã¤ã»ã³ã¹ã®2æ¬æã¡ã ã¼ããªãã¦ãããä»è¾¼ã¿ãã¿ãã¨w (æ¬å½ã«å¶ç¶)
JetBRAINSã® @yusuke ããããPhpStormã使ã£ããPHPã§ãæã£ã以ä¸ã«åå®å ¨ã«æ¸ãããã ãªãã¨ããææ³ãããã®ã«ã³ãã¡ã¬ã³ã¹ã§éã«æã¡å¸°ã£ã¦ãããããã¨ãããããè¯ãã£ãæ°ããã¾ããåããPhpStormã使ããã¨ã§ãPHPãC#ãScalaã«ãªã£ããããªæè¦ã«é¥ããã¨ãããã¾ãã
ã§ã Eclipse ã§ã PhpStorm ã¿ãããªãªãã¡ã¯ã¿ãªã³ã°æ©è½ã欲ããã®ã«ãªããªãåºãªãããèªåã§ä½ããã¨ãå®éã«ä½ã£ã¦ãã @iteman ãããããã§ããEclipseã¯IDEçã®Firefoxã¨ãã¦ãæ¬ ãããªãåå¨ãªã®ã§ãã
ã§ãã¾ããã©ã®ãã¼ã«ãæµè¡ããã¨ãã話ããããåã¯ãVim/Emacsã§æ¸ãã人ãããããIDEã使ããã¨ãå§ãã¦ããã¨ãããã¨ããMS製åãJavaã«ãããIDEã¨ã¯éãæå³ã§ãPHPã®æªæ¥ã«ç¹ãã£ã¦ããããã«æããã®ã§ãããé¢å¿ãåé¢ããã£ã¦ã©ããããã¨ï¼ãã®ã»ãã·ã§ã³ã§ãåé¢ãããé¢å¿ã®è¨è¿°ç®æãé ãããã®ããIDEã§è§£æãã¦ã³ã¼ãããªã³ã¯ãããã¿ãããªè©±ãããã¾ããã大äºãªã®ã¯ããã ã¨æãã®ã§ãã
ããããIDEããªãã¨ããã°ã©ã ãæ¸ããªãã®ã¯è»å¼±è ãã¨ãã£ã¿ãã«ã¹ã¿ãã¤ãºããã°è¨è¿°é度ã¯åçã«ãªãããã¨ããè«èª¿ãããã¾ããããããã«ãVisual Studioã«ãã¦ãEclipseã«ãã¦ãããããªããµã¼ãã¹ãè¯ããã¦ãã¨ãã£ã¿ã§æ¸ããªã人ã§ãéçºã§ãã¡ãããã¨ãã空æ°ã¯ããã¾ããããããã¾PHPã§èµ·ãããã¨ãã¦ããIDEãã¼ã ã¯ããããã¨ãã£ã¿ã§ãååã«éãæ¸ãã種é¡ã®äººããå§ã¾ã£ã¦ããæ°ããã¾ãããããã人ãã¡ããããããéãæã£ã¦IDEã使ããã¨ãã¦ãããã¨ã«ãããã¦ããããçã§è¦ãããã«ã³ãã¡ã¬ã³ã¹ã«ãæ·±ãæå³ãããæ°ããã¾ãã
åå¿è ãããã¹ãã¨ãã£ã¿ã§å ¥éããä¸ç´è ã«ãªãã«ã¤ãIDEãé§ä½¿ããè¨è¨ã¸ãã¨ããæ§å³ããããæ°ãããªãã§ãããæªæ¥ã£ã½ãããããªãã§ãããPyCharmã§ãRubyMineã§ãåãæ§é ã¯ããã¨æããã§ããããããçã£å ã«èµ·ããã®ã¯ãPHPã®ã¦ã¼ã¶ã³ãã¥ããã£ã ã¨æãã¾ããããã¯ãPHPãä»ã®è¨èªããéçè§£æã«åãã¦ãããã¨ãã大äºãªè¶³å ´ã«ãªã£ã¦ããã¨åã¯æã£ã¦ãã¾ãã
Pinoco
ã¾ãã¨ããããã·ã§ã¢ãã¨ãã¾ããæ¬æ¥ã¯ãã£ã¡ãªã®ã§ã
ãèµå ¥ãã¹ã©ã¤ã(ãã¿)
ãã£ãããªãã®ã§ãã¿æ«é²ãã¾ãã
話é·ãããããããã以ä¸ãããã¾ãã
ãã©å¨ã¸ã®ç±ãæ³ãã¨ããLTãç´åã§ä¸æãã¦ãã©å¨ã¨...ã¨ããããã¯ä»»ãã¾ãã! ããã°æ¸ãã¾ã§ãåå¼·ä¼ã§ãã