
ã¿ãªããããã«ã¡ã¯ïŒ
ããã§ãä»å¹Ž3åç®ã®PhpStormã®æ¬¡ã®ãªãªãŒã¹ãè¡ãããŸããã ä»åã¯ãæ°ããæ©èœã®è¿œå ãšå€ãåé¡ã®ä¿®æ£ã«å ããŠãçç£æ§ã«ç¹ã«æ³šæãæããå
¥åæã®ãšãã£ã¿ãŒã®å¿çæ§ãé«ããããã€ãã®æ€æ»ã®é床ãäžããŸããã ããã«ã人æ°ã®ãããã©ã°ã€ã³ã®äœæè
ãšé£çµ¡ãåããã§ããéãè¿
éã«ãã©ã°ã€ã³ãäœæã§ããããæ¯æŽããŠããŸãã
ãšã³ããªãŒã«ã€ããŠã¯ãååã ãšæããŸãã èšäºããæ°æ©èœãããŒãžã®ç¡æ翻蚳ã§ããããšãè¿œå ããã ãã§ãã åã®ãªã³ã¯ããããŸãã¯ããŒã«ããã¯ã¹ã¢ããªã䜿çšããŠãæ°ããããŒãžã§ã³ãããŠã³ããŒãã§ããŸãã ãã€ãã®ããã«ã30æ¥éã®è©Šçšçãå©çšå¯èœã§ãã ãã«ããŒãžã§ã³ã¯ãPhpStormãŸãã¯All Productsããã¯ã®ã¢ã¯ãã£ããªãµãã¹ã¯ãªãã·ã§ã³ã®ææè
ãããã³ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®åŠçãšéçºè
ã䜿çšã§ããŸãã
è¡ããïŒ ïŒæ³šæãcat 2873.15 Kbytesæªæºã®åçãïŒ
ã³ãŒããšãã£ã¿ãŒã®RESTã¯ã©ã€ã¢ã³ã
倪å€ããã RESTã¯ã©ã€ã¢ã³ããã©ã°ã€ã³ã¯PhpStormã«ãã³ãã«ãããŠããŸãã ããšããããããç¥ããªããŠããPostmanãŸãã¯ãã®ãããªãã®ã䜿çšããããšãããã°ããã®æ©èœãæ³åããããšãã§ããŸãã ãã®æŠå¿µãæ¹èšãã RESTã¯ã©ã€ã¢ã³ããRFC 2616圢åŒã®èŠæ±ãçŽæ¥åŠçããããã«ããŸãã ã

æ¢åã®ãªã¯ãšã¹ãããšãã£ã¿ãŒã«æ¿å
¥ããããæ°ãããªã¯ãšã¹ããäœæã§ããŸãã 2çªç®ã®ã±ãŒã¹ã§ã¯ãIDEãŠãŒã¶ãŒã«éŠŽæã¿ã®ãããªãŒãã³ã³ããªãŒããšãªãã¡ã¯ã¿ãªã³ã°ã«ãããäœæ¥ãç°¡çŽ åãããŸãã çæããããªã¯ãšã¹ãã¯ãšãã£ã¿ãŒããçŽæ¥å®è¡ã§ããããã§çããèŠãããšãã§ããŸãã
ãã¹ãŠã®ããŒã¿ã¯æ¡åŒµå.http
ä»ããããã¹ããã¡ã€ã«ã«ä¿åããããããåç
§ãªã¯ãšã¹ãã¯ã³ãŒãã®ããé£ã®ãæ°ã«å
¥ãã®VCSã«ä¿åã§ããŸãã ããšãã°ããã¹ãç°å¢ãæŠéç°å¢ã«åºæã®ããŒãã¯ãå€æ°ã®åŸãã«é ããããšããããŸãã

IDEã«çµã¿èŸŒãŸããŠãããã¡ã€ã«æ¯èŒãŠãŒãã£ãªãã£ã¯ããµãŒããŒã®å¿çã«äœ¿çšã§ããŸãã ãªã¯ãšã¹ããæ°åå®è¡ããç®çã®ãã¢ãéžæããã ãã§ååã§ãã

RESTã¯ã©ã€ã¢ã³ãã«é¢ãã詳现ãšåçã¯ãããã°ã«ãã ãŸãããè±èªã§ãã
ãšãã£ã¿ãŒã®ããã©ãŒãã³ã¹
ã¯ããã«è¿°ã¹ãããã«ãããã©ãŒãã³ã¹ã®æ¹åã¯ç·šéã«åœ±é¿ãåãŒããŸããã PHPã®äžçã§ã¯ãå€ãã®å Žåãæ°åè¡ãæã«ã¯æ°äžè¡ã®ãã¡ã€ã«ããããŸãïŒ ããšãã°ã Mpdf.phpã§PhpStormã®é床ããã¹ããããã®ã§ãã ããã¯ã1 MBã®ããã«ïŒçŽ4äžè¡ã®ã³ãŒãïŒã«PHPãHTMLãããã³JSãæ··åšãããã®ã§ãã éåžžãmPDFã§é«éã«åäœãããã®ãããã°ããã¹ãŠã§é«éã«åäœããŸãã

ãã®ãããæ°ããããŒãžã§ã³ã§ã¯ãç»é¢ã«æåã衚瀺ããéã®é
延ã4åæžå°ããŸããïŒ å€§ãããŠå·šå€§ãªãã¡ã€ã«ãæ±ã人ã¯ç·šéã楜ããã¹ãã§ãã OOPãããžã§ã¯ããšã¯ã©ã¹ããšã®ãã¡ã€ã«ãããå ŽåãããããªãŒå¯¿åœããããã«é·ãããšã«æ°ä»ãã§ãããã ããããªãŒã«ã€ããŠèšãã°ã çé»åã¢ãŒãã¯ãšãã«ã®ãŒãç¯çŽããã ãã§ãªããIDEãé«éåããŸãã
ãªãã¡ã¯ã¿ãªã³ã°æã®Nullableå
PhpStormã¯ãã»ãŒ1幎åã®ãªãªãŒã¹ä»¥æ¥ãPHP 7.1ã®é©æ°ã®ã»ãšãã©ããµããŒãããŠããŸããã ãã ããæ°ããããŒãžã§ã³ã®èšèªã®äœ¿çšãããã«ç°¡çŽ åããããã«ã補åã®æ¹åãç¶ããŠããŸãã ä»åãå€æŽã¯Extractã€ã³ã¿ãŒãã§ãŒã¹ãšChange signatureã®ãªãã¡ã¯ã¿ãªã³ã°ã«åœ±é¿ããŸããã

åè¿°ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ãã£ãŠè¡ãããå€æŽã§ã¯ããã©ã¡ãŒã¿ã¿ã€ããšæ»ãå€ã¿ã€ãã®nullå¯èœ ïŒ ?
ïŒã©ãã«ãä¿æãããããã«ãªããŸããã ãã€ã¢ãã°ã§ã¯ããã®ã©ãã«ãè¿œå ãŸãã¯åé€ã§ããŸãã
ã³ãŒãçæãã³ãã¬ãŒã
æ°ããã¯ã©ã¹ãäœæããããã®ãã€ã¢ãã°ã«ãããæ¢åã®ã¿ã€ãã®ã»ããïŒã¯ã©ã¹ãã€ã³ã¿ãŒãã§ãŒã¹ããŸãã¯ã¿ã€ãïŒããã ãã§ãªãããŠãŒã¶ãŒãã³ãã¬ãŒãã®ãªã¹ããããéžæã§ããããã«ãªããŸããã

æ°ããå€æ°${NAMESPACE}
䜿çšãããšããã³ãã¬ãŒãã®åå空éåã眮ãæããããšãã§ããŸãã PSR-0 / PSR-4åå空éã䜿çšãããããžã§ã¯ãã«åœ¹ç«ã¡ãŸãã ãŸãããã¹ãŠã®PHPDocãã³ãã¬ãŒãã§ãçŸåšã®æ¥ä»ããã³/ãŸãã¯æå»ãæã€å€æ°ã䜿çšã§ããããã«ãªããŸããã
äŸå€å¶åŸ¡
PhpStormã¯ãã¹ããŒãããäŸå€ãé·ãé远跡ã§ããŸããã 2012幎以éã@ throwsã¿ã°ããªãå Žåã察å¿ããã¿ã°ããªãå Žåã¯PHPDocãæŽæ°ããããšããå§ãããŸãã ãããããŠãŒã¶ãŒã¯ãã£ãšæ¬²ããã£ãã ãã®ããã æªåŠçã®äŸå€ ã åé·ãª@throwsã¿ã° ãããã³åé·ãªcatchå¥ã® 3ã€ã®æ°ããæ€æ»ãåæã«åºçŸããŸããã
æªåŠçã®äŸå€æ€æ»ã§ã¯ãäŸå€ãã¹ããŒã§ããåŒã匷調衚瀺ãããŸãã åŒãtry-catch
ãããã¯ã§ã©ããããããšã¯ã§ããŸããããŸãã @throws
ã䜿çšããŠãäžã«ããé¢æ°ã§äŸå€ã宣èšããããšã¯ã§ããŸããã åé¡ããã°ããä¿®æ£ããã«ã¯ã try-catch
çæãããã @throws
è¿œå ã@throws
ã

æ€æ»@throwsã¿ã°ãæ¬ èœããŠãããããé·ãéã«ããã«ãå¿
èŠã§ããã äŸå€ã宣èšããããšãå¿ããããšãã§ããå Žåãäœåãªå®£èšãåé€ããããšãå¿ããããšãã§ããŸãããïŒ åé·ãª@throwsã¿ã°ã¯ãã¢ãã©ã€ã¶ãŒã®æèŠã§ã¯ãé¢æ°ããã¹ããŒãããªãäŸå€ã«ã€ããŠå ±åããŸãã PhpStormã¯ããã®äŸå€ã䜿çšããŠãPHPDocå
šäœãåé€ãŸãã¯æŽæ°ãã@throws
ãæäŸã@throws
ã

åé·catchç¯ã®ãªã¹ããçµäºããŸãã äŸå€ãã¹ããŒãããªãcatch
ãããã¯å
ã§ã¹ããŒãããå Žåããã®ãããªãããã¯ã¯æ€æ»ã«ãã£ãŠäžèŠãšããŒã¯ãããŸãã åé¡ã解決ããã«ã¯ããã®ãããªãããã¯ãåé€ããããšããå§ãããŸãã

æ¢åã®Missing @throwsã¿ã°ã®æ€æ»ãšã¯ç°ãªãã3ã€ã®æ°ããã¿ã°ã¯ã³ãŒãã§ããéäžçã«æ©èœããŸãã ã¢ãã©ã€ã¶ãŒããªããšãIDEã®é床ã倧å¹
ã«äœäžããŸãã ãã ããPhpStormã®æ°ããããŒãžã§ã³ã®é床ã¯ããã»ã©å€åããŠãããã1ã€ã®Missing @throwsã¿ã°ãæ°åéããªããŸãã-ããã©ãŒãã³ã¹ã®äœæ¥ã®å¥ã®äŸã
ãã¹ãäž
æ°ãããã¹ããäœæããããã®ãã€ã¢ãã°ã¯ã CodeceptionãŠããã ã Codeceptionæ©èœ ãã¹ã ã PHPSpecãã¹ãçšã®ãã³ãã¬ãŒãã§æ¡åŒµãããŸããã

ãã€ã¢ãã°èªäœã«å€æŽãå ããããã¹ã¿ããäœæãã1ã€ä»¥äžã®ã¡ãœãããéžæã§ããããã«ãªããŸããã

PHPUnitã¢ãããŒã·ã§ã³@dataProvider
ã䜿çšããå Žåããããããããã»ãããã1ã€ã®ãã¹ãã®ã¿ãåèµ·åã§ããããšã@dataProvider
ã§ããŸãã

ããã«ãæ°ããPhpStormã§ã¯ãäžè¶³ããŠãããããã€ããŒãèŠã€ããŠçæã§ããŸãã

å°æ
ããã§ãä»»æã®ã¿ã°éãŸãã¯ååä»ããããã¯å
ã«ç°ãªãèšèªãæ¿å
¥ã§ããŸãã ãã®ãããªãã€ã³ãžã§ã¯ã·ã§ã³ãã¯ããªã³ã¶ãã©ã€ã§ãããã³äºåã«æºåãããã«ãŒã«ã®å©ããåããŠäœæã§ããŸãã

ããã«ãè€éãªæ§é ã®æžåŒèšå®ãæ¹åãããŸããã ç¹ã«ããããã®ã¢ã©ã€ã¡ã³ãã

ãŠã§ãæè¡
WebStormããŒã ã¯Vue.jsã®ãµããŒããæ¹åããŸããã ããšãã°ãVueã³ã³ããŒãã³ãã®ããããã£ãšã¡ãœããã§ãªãŒãã³ã³ããªãŒããšããã²ãŒã·ã§ã³ãæ©èœããããã«ãªããŸããã Vueãã³ãã¬ãŒãã§ã®å°å·äžã«éãæ¬åŒ§ãèªåçã«è¿œå ãããŸãã ãŸããã¹ããããã®ã³ã¬ã¯ã·ã§ã³ãè¿œå ããŠãäžè¬çãªã³ãŒãã®èšè¿°ãé«éåããŸããã æ°ããVueãã¡ã€ã«ãã³ãã¬ãŒãã¯ãã³ã³ããŒãã³ãã®äœæãé«éåã§ããŸãã

JavaScriptã®æŽæ°ãšãµããŒãã çŸåšãæšæºã®ãªããžã§ã¯ããšã¡ãœããã®èªåè£å®ã®ããã«ãJS PhpStormã¯ãå
éšãã§TypeScript宣èšãã¡ã€ã«ã䜿çšããŠããŸãã ãã®ãããã¡ãœããã®ããã¥ã¡ã³ããæ¹åãããŸããïŒãããã®ãã¡ã€ã«ããååŸãããããMDNããããŠã³ããŒããããŸãïŒã

æ°ãããã«ã¡ã³ããŒã¢ãããªãã¡ã¯ã¿ãªã³ã°ã䜿çšãããšãJavaScriptãŸãã¯TypeScriptã¯ã©ã¹ã¡ãœããã芪ã¯ã©ã¹ãŸãã¯ã€ã³ã¿ãŒãã§ã€ã¹ã«ç§»åã§ããŸãã ã芪ãããŸã ãªãå Žåã¯ããåãã®ãã£ãŒã«ããšã¡ãœããã«åºã¥ããæœåºã¹ãŒããŒã¯ã©ã¹ãªãã¡ã¯ã¿ãªã³ã°ã䜿çšããŠäœæã§ããŸãã

éåžžã©ãããWebStorm 2017.3ã«å¯Ÿãããã¹ãŠã®æ¹åã¯ã察å¿ããããŒãžã§ã³ã®PhpStormã§å©çšã§ããŸãïŒããã®ãŸãŸãããŸãã¯ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããããšã«ããïŒã ãããŠãããã«å ããŠãäžèšã«å ããŠïŒTypeScriptã®ã¿ã€ããšã€ãªã¢ã¹ã® æœåºãšã€ã³ã¿ãŒãã§ã€ã¹ãªãã¡ã¯ã¿ãªã³ã°ã®æœåº ã1ã€ã®ãããžã§ã¯ãã§ã®JavaScriptã®è€æ°ããŒãžã§ã³ã®ãµããŒããJestçµ±åã®æ¹åãCSSãµããŒãã®æŽæ°ãESLintããã³TSLintããã®ã¹ã¿ã€ã«ã®ã€ã³ããŒããªã©ã
ããŒãžã§ã³ç®¡çã·ã¹ãã
IntelliJãã©ãããã©ãŒã ã¯ãããŒãžã§ã³ç®¡çã·ã¹ãã ã®ãµããŒããæŽæ°ããŸãããã€ãŸããPhpStormã¯ããã®ãã©ãããã©ãŒã ã®IDEã®1ã€ãšããŠãåãã©ã³ãã®ç¶æ
ãèšæ¶ããããããåãæ¿ãããšãã«åŸ©å
ããããšãæå³ããŸãã

ããã«ãã ã·ã§ã«ããã¿ãã§ãå€æŽãªã¹ãã®ååãå€æŽããããã ã·ã§ã«ã ãã¿ããšã ããŒã«ã«å€æŽãã¿ãã®éã§ãã©ãã°ãªã¹ãããã©ãã°ãããã§ããããã«ãªããŸããã
ããŒã¿ããŒã¹
PhpStormã¯ãDataGrip 2017.3ã§ã§ããããšããã¹ãŠå®è¡ã§ããŸãã ç¹ã«ãããŒã¿ããŒã¹ãã©ãŠãžã³ã°ã®æ¹åãSQLçæã JOIN
åŒåŸã®èªåè£å®ãSSHãã³ãã«ã®ãµããŒãã

çµè«ãšããŠ
ã³ãŒãã¹ã¿ã€ã«ãåèšèšããŸãã| PHP ïŒ[ ãã®ä» ]ã¿ããåé€ïŒãComposeræäœãã°ã®è¿œå ãå®è¡äžã®PHPUnitãã¹ãã®æ§æã®æ¹åããªãã¡ã¯ã¿ãªã³ã°äžã®ãã£ãŒã«ãã®å¯èŠæ§ãã£ãŒã«ãã®èšå®æ©èœïŒ ã³ãŒãã¹ã¿ã€ã«| PHP |ã³ãŒãçæ ïŒãè¿œå ããŸããã
ããããããããç§ãã¡ãããªãã«äŒãããããšã®ãã¹ãŠã§ãã ããããããããªãªãŒã¹ã«å«ãŸããŠãããã¹ãŠã§ã¯ãããŸããã å€æŽã®å®å
šãªãªã¹ãã¯ããã€ãã®ããã«ãã§èŠã€ããããšãã§ããŸã åæ¥ã¢ã«ãã ãªãªãŒã¹ããŒã ã åé¡ããã©ãã«ãŒã§å ±åãããããã®æçš¿ãŸãã¯ããã°ã«ã³ã¡ã³ããæ®ããŠãã ããã
ãæž
èŽããããšãããããŸããïŒ
JetBrains PhpStormããŒã
éçºãžã®æ欲