ãã¹ãŠã«ã€ããŠç°¡åã«
æåã«èšãããã®ã¯ããããžã§ã¯ãã®ååãCleverStyle CMSããCleverStyle Frameworkã«å€æŽãããããšã§ãã ã€ãã«ïŒ ã¿ã€ãã«ãšã³ã³ãã³ãã®éã«æ··ä¹±ã¯ãªããªããŸãã
2.xã·ãªãŒãºããµãŒããŒåŽã§å€§å¹ ãªå€æŽãéå§ãã3.xãã¯ã©ã€ã¢ã³ãã§åçã®å€æŽãéå§ããå Žåã4.xã¯ã©ãã§ãæ¹åããããããŸãã
ããã¯ãã«ã¹ã¿ãã¯ãã¬ãŒã ã¯ãŒã¯ã§ããã«ããããããããµãŒããŒã®é床ãå€§å¹ ã«åäžããŸãããReactPHPã«åºã¥ãHTTPãµãŒããŒã䜿çšãããšã1msæªæºã®ããŒãžçæé床ãåŸãããšãã§ããäžè¬çãªã¹ã¯ãªããã§ã®HTMLçæãé«éã«ãªããŸããã
ãŸãã翻蚳ãã¡ã€ã«ã®ãã¹ãæ§é ã®äŸ¿å©ãªãµããŒããSQLiteãPostgreSQLã®ãµããŒããPSR7ããã«ãŠã§ã¢ãšããŠã®ãµããŒãïŒPSR7äºæãªã¯ãšã¹ããªããžã§ã¯ãããã®åæåãšPSR7äºæã¬ã¹ãã³ã¹ãªããžã§ã¯ããžã®çµæåºåïŒã®ãµããŒããããã³ããã«é¢é£ããã«ãŒãã«ã®äŸ¿å©ãªæœè±¡åãè¿œå ããŸããã
RequireJSã¯ããã³ããšã³ãã§åºã䜿çšãããŠãããããã³ããšã³ãã§ç¡æ¡ä»¶ã«ããŒããããå€ãã®ã©ã€ãã©ãªãå¿ èŠãªå Žåã«ã®ã¿ããŒããããããã«ãªããæåã®ãã¬ãŒã ã®è¿ éãªã¬ã³ããªã³ã°ã®ããã®æé©åãè¿œå ãããŸããã
éçãã£ãã·ã¥ïŒCSS / JS / HTMLïŒãHTTP / 2ãµãŒããŒããã·ã¥ã
Link: <preload>
ãªã©ãæ§ç¯ããããã®ããã¯ãšã³ããšããã³ããšã³ãã®æé©åã®äº€å·®ç¹ã§ã
äžè¬ã«ãã·ã¹ãã ã¯ãã«ã¹ã¿ãã¯ã®PHPãã¬ãŒã ã¯ãŒã¯ïŒçŽç²ãªãã€ã¯ãã«ãŒãã«ã§ã¯ãããŸããããããã»ã©å€§èã§ã¯ãããŸããïŒã®ããã«èŠããŸãã
ãã€ãã®ããã«ãScrutinizerã®è©äŸ¡ãªã©ãã³ãŒãã¡ããªãã¯ã«ããã€ãã®æ¹åããããŸãã:)
ããªããŒããã³ãŠã§ãã³ã³ããŒãã³ã
Webã³ã³ããŒãã³ãã䜿çšããŠãååã®èšäºãšåãããšããå§ããããšãã§ããŸãã
ããªããŒèªäœã«ã¯ãŸã ããããé©çšãããŠããŸãããç®çã¯ç°ãªããŸãã éèŠãªPRã¯ãã¹ãŠåãå ¥ããããåãå ¥ããããªã2ã€ã®PRã¯ã©ã³ã¿ã€ã ããããšããŠé ä¿¡ããããã«ãèªäœã®åœ±é¿ãåããŸããã ãããçŸåšãã·ã¹ãã ã§äœ¿çšãããŠããPolymerã¢ã»ã³ããªãããShady DOMã®ãµããŒãã¯å®å šã«ã«ãããããŠããŸããããã¯ãã·ã¹ãã ãShadow DOMã®ãã«ããŒãžã§ã³ïŒããã³ãµããŒãã®ãªããã«ããªãã£ã«ïŒã䜿çšããŠããããã§ãã ãã®çµæããã«ãã¯å ã®ãã«ããããå€§å¹ ã«å°ãªããªããŸãã
Polyfill WebComponents.jsãæé©åãããŠããŸãã ãŸããIE / EdgeïŒèšåããããã©ãŠã¶ãŒã«ã®ã¿æ¥ç¶ãããŠããïŒã®ãã¹ãŠã®èŠªåãåãåãããŸããWebComponents.jsã¯Chromium / Chromeã«ãæ¥ç¶ãããŠããŸããã
Webã³ã³ããŒãã³ãèªäœã¯ãŸããŸã䜿çšãããããã«ãªããŸãããããšãã°ãã¢ãžã¥ãŒã«ã¯ãã®äœ¿çšã«åãããŠãªãã¡ã¯ã¿ãªã³ã°ãããŸãããããã°ãã³ã¡ã³ããDisqusããããŠã·ã¹ãã ã¯é·ãéãããããã¹ãŠã«äœ¿çšããŠããŸãã
ã·ã¹ãã ã¯ãHTMLãã¡ã€ã«ãããé©åã«çž®å°ããæ¹æ³ãåŠç¿ããŸãããçŸåšããã¹ãŠã®JSãçµåãããåæå®è£ ã®ããã€ãã®ãšã©ãŒãä¿®æ£ãããŠããŸãã
RequireJSïŒã¢ã©ã¡ãïŒ
ããã¯å®éã«ã¯éåžžã«éèŠãªæ©èœã§ãã ææ°ããŒãžã§ã³ã§ã¯ãRequireJSã®ä»£ããã«ãåãéçºè Alamedaããã®ããã¢ãã³ã§ã³ã³ãã¯ããªïŒãã ãäžäœäºææ§ã®ããïŒã¢ããã°ã䜿çšãããŸãã
RequireJSã¯ãã¹ãŠã®ã¬ãã«ã§çµ±åãããŠããŸãã
- ã«ãŒãã«ã§æäŸãããautosizeãhtml5sortableãjsshaãªã©ã®ãµãŒãããŒãã£ã©ã€ãã©ãªã¯ãAMDã¢ãžã¥ãŒã«ãšããŠå®éã«æä»çã«äœ¿çšããããã以å€ã®å Žåã¯äœ¿çšãããŸããïŒjQueryã¯5.xã§ãåæ§ã«ã¬ã³ããªã³ã°ãããäºå®ã§ãïŒ
-
components/modules/Blogs/includes/js/xyz.js
ãBlogs/xyz
ã¢ãžã¥ãŒã«ãšããŠééçã«ããŠã³ããŒãã§ããŸãïŒãµããã©ã«ããŒããµããŒããããŠããŸãïŒ - Bower /
bower_components
ããã³/ãŸãã¯Bower / NPMã®node_modules
ããµã€ãã®ã«ãŒãã§æ€åºããããšãAMDã¢ãžã¥ãŒã«ãèªåçã«æ€çŽ¢ããããããããã«require(['lodash']).then(function (_) {})
åŒã³åºãããšãã§ããŸãrequire(['lodash']).then(function (_) {})
- ã«ãŒãBower / NPMãã©ã«ããŒãšåæ§ã«ã Composerã¢ã»ãããã©ã°ã€ã³ãä»ããŠã€ã³ã¹ããŒã«ãããäŸåé¢ä¿ã¯åãæ¹æ³ã§åŠçããããã¹ãªãã§ååã§å©çšå¯èœã«ãªããŸã
- ããã«ãã«ãŒãã«ã€ã³ã¹ããŒã«ãããŠãããã®ããã«ã絶察ãã¹ã®Composerã¢ã»ãããä»ããŠã€ã³ã¹ããŒã«ãããã¢ãžã¥ãŒã«ãããšãã°
/node_modules/d3/d3
ãäŸåé¢ä¿ãå®éã«ã€ã³ã¹ããŒã«ãããŠããããã«ãã¹ãŠãæ©èœããŸãïŒ
ãããã£ãŠãå¿ ç¶çã«ããŠã³ããŒããããã³ãŒãã®éã¯å€§å¹ ã«åæžããã5.xã·ãªãŒãºã§ã¯ããã«åæžãããéçºè ã¯ããã«å€ãã®å¯èœæ§ãæäŸããŸãã
IE 10
æéããªããªããã«ãŒãã«ã§ã¯__proto__ã®ã¿ãIE 10ãšã®äºææ§ã®ããã«äœ¿çšããããæ®ãã®äºææ§ã®è² æ ã¯5.xã·ãªãŒãºã®IE 11ããµããŒãããæ°ããOld IEãã©ã°ã€ã³ã«ç§»åããŸããã
ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ãPSR7
ãµãŒããŒåŽã«ã€ããŠå°ã説æããŸãã ã·ã¹ãã ãªããžã§ã¯ã
cs\Request
ããã³
cs\Response
è¿œå ãããŸãããã©ã¡ããPSR7ã§åäœããå¿ èŠã«å¿ããŠååæåãæäŸããŸãã
ããããã¹ãŠã«ããããã¬ãŒã ã¯ãŒã¯ã®ããã«ãŠã§ã¢ãšããŠã®äœ¿çšãå€§å¹ ã«ç°¡çŽ åãããŸããã ããã¯ãReactPHPãšã®çµ±åãçŸåšã©ã®ããã«è¡ãããŠãããã®äŸã§èŠãããšãã§ããŸãã
ååæåã¯ã«ãŒãã«ã¬ãã«ã§èªåçã«æäŸããããããã·ã¹ãã ãªããžã§ã¯ãããŸã£ããåäœæããã代ããã«å¿ èŠãªéšåã®ã¿ãååæåããããšãå¯èœã«ãªããŸããã ããã«ããã1msãããé«éã«ããŒãžãçæã§ããŸãã
æœè±¡åã®ãµããŒãã«å ããŠããã«ãããŒããªã¯ãšã¹ãã®ã¹ã¿ã³ãã¢ãã³ã®å®å šã¹ããªãŒãã³ã°ããŒãµãŒãäœæãããããããã¡ã€ã«ã®ã¢ããããŒãã¯POSTã ãã§ãªããããããæ¹æ³ã§æ©èœããŸã
enable_post_data_reading = Off
å Žåããµã€ãã¯äžæããŸããïŒãŸã ReactPHPãã¡ã€ã«ã®ã¢ããããŒãã®ãµããŒãã«ã€ããŠã¯ãè¿ãå°æ¥ãæ°ãããªãªãŒã¹ãhttps://github.com/reactphp/http/pull/41ã®æ§æã§ãªãªãŒã¹ãããããšãæåŸ ããŠããŸã ïŒã
SQLite / PostgreSQL
ãããã®2ã€ã®ããŒã¿ããŒã¹ãã©ã€ãã¯ã«ãŒãã«ã«å®å šã«è¿œå ãããŸããããã©ã®ã¢ãžã¥ãŒã«ã§ããŸã ãµããŒããããŠããŸããïŒããã¯äžæçãªãã®ã§ãïŒã SQLiteã¯ãããŒã¿ããŒã¹èªäœã¯ãŸã£ããå¿ èŠãªãåçŽãªãµã€ãã«äœ¿çšã§ããŸãããã·ã¹ãã ã§ã¯ãåäžã®ç®¡çè ã®æ§æãšèšå®ãä¿åããå¿ èŠããããŸãã ãã®ã·ããªãªã§ã¯ãSQLiteã®é床ãäœäžããããšã¯ãããŸãããã»ãšãã©ã®å Žåããã£ãã·ã³ã°ã«ãã£ãŠäœ¿çšããŒãã«ãªãããã§ãã
ã»ãã·ã§ã³
ã»ãã·ã§ã³ã¯ãè¯ãçµæ«ãè¿ããèå³æ·±ãã¹ããŒãªãŒã§ããããšãå€æããŸããã æŽå²çã«ãã·ã¹ãã ã¯ã«ã¹ã¿ã ã»ãã·ã§ã³ã·ã¹ãã ã䜿çšããŸããããã¯ãçµã¿èŸŒã¿ã®ãã®ãããæè»æ§ããããæ¡åŒµæ§ãé«ããéåžžã«é«éã«åäœããŸãã
ããã«ããã ãã»ãã·ã§ã³ããŸã£ãããªãã»ã©ã§ã¯ãããŸããã ãã®çµæãã·ã¹ãã ã®ææ°ããŒãžã§ã³ã¯ããŠãŒã¶ãŒãå®éã«ã»ãã·ã§ã³ãå¿ èŠãªãã®ã䜿çšãããŸã§ãŠãŒã¶ãŒã®ã»ãã·ã§ã³ãéå§ããŸããã ããã«ãããæåã«ãµã€ãã«ã¢ã¯ã»ã¹ãããŠãŒã¶ãŒã®æšæºããŒãžã®ããŒã¿ããŒã¹ã§ã®ã¯ãšãªãåé¿ã§ããŸãã
翻蚳ãã¡ã€ã«ã®åå空é
ãã®æ©èœã¯é·ãéæé¡ããŸãã æåã«ã翻蚳ã®ãããªããžã§ã¯ãã§æ¥é èŸããµããŒããããŠããŸããã次ã«ã翻蚳èªäœã«æ¥é èŸãç ©ããããªãå§ãããããç°¡åã«è¡ãããšãã§ããŸãã

HTTP / 2ãµãŒããŒããã·ã¥ãããªããŒã
Chromium / Chromeã®ææ°ããŒãžã§ã³ã¯ãããŒãžã«ãã®ãªãœãŒã¹ã100ïŒ å¿ èŠã§ããããšããã©ãŠã¶ã«äŒããããªããŒãããããŒ/ã¡ã¿ã¿ã°ããµããŒãããŸããçç±ããŸã åãããªããŠãããŒãããå¿ èŠãããããšã¯ç¢ºãã§ãã
HTTP / 2ãµãŒããŒããã·ã¥ã®ããã«ãnghttp2ãšCloudFlareã§åãå±æ§ã䜿çšãããŸãã
ãã¬ãŒã ã¯ãŒã¯ã«ã¯éçãªãœãŒã¹ãšãã®äŸåé¢ä¿ã«é¢ããæ å ±ãæåã«ãããçž®å°ããã³å§çž®äžã«ããªãœãŒã¹å ã§äœ¿çšãããŠããç»åããã©ã³ãããã®ä»ã®ãã®ãç¥ã£ãŠããããããã®æ å ±ã䜿çšããŠå¯Ÿå¿ããããããŒãçæããŸãããããã¯æãè¯å®çã§ãç»åã¯ããŒãžã®èªã¿èŸŒã¿æéã«åœ±é¿ããŸãã
CLIã€ã³ã¿ãŒãã§ãŒã¹
ãŸããææ°ã®ãªãªãŒã¹ã§ã¯ãæçšãªã«ãŒãã«ã¬ãã«ã®CLIæ©èœãå°å ¥ãããŸããã ãããŸã§ã®ãšããããããä»ããŠå©çšã§ãããã®ã¯ã»ãšãã©ãããŸããããããã«ããã«å€ãã®ãã®ããããŸãã ãã®èšç»ã¯ã«ãŒãã«ãšã³ã³ããŒãã³ãã®äž¡æ¹ã§å€§ããã§ãããä»ã§ã¯äœã䟿å©ãªããšãããããšãã§ããŸãããŸãã¯ã³ã³ããŒãã³ãã§ããã䜿çšããããšãã§ããŸã:)
æŽæ°æ å ±
ã³ã³ããŒãã³ãããã°ãã³ã¡ã³ããComposerãDisqusãUploaderãComposerã¢ã»ããããã³TinyMCEã¯ãææ°ã®äŸ¿å©ãªã«ãŒãã«æ©èœã䜿çšããŠããããã¬ãŒã ã¯ãŒã¯ã®ææ°ããŒãžã§ã³ã§ã³ã³ããŒãã³ããäœæããæ¹æ³ã®äŸã§ãã ã»ãšãã©ã®éšåã®æ®ãã®ã³ã³ããŒãã³ãã¯ãæ°ããããŒãžã§ã³ãšã®äºææ§ã®ããã«åçŽã«ç§»æ€ããããã®ã§ãããã·ã¹ãã ã®æœåšèœåã100ïŒ äœ¿çšããããšã¯ãããŸããããä»åŸã®ã¢ããããŒãã§ã¯äœ¿çšãããŸãã
ãµãŒãããŒãã£ã®äŸåé¢ä¿ã¯ããªãªãŒã¹æã«ææ°ããŒãžã§ã³ã«æŽæ°ãããŠããŸãã
ããã¥ã¡ã³ã
çèããåŸãããã¥ã¡ã³ãã¯ãœãŒã¹ã³ãŒããšåããªããžããªã«è»¢éãããŸããã ãŸããå€æŽãåæããã®ãç°¡åã§ãã次ã«ãå¿ èŠã«å¿ããŠå€ãããŒãžã§ã³ã®ã·ã¹ãã ã«ãã£ãããã¥ã¡ã³ãã衚瀺ã§ããããã«ãªããŸããïŒãŸãã¯ãããŒãžã§ã³ããšã«ããã¥ã¡ã³ãã®å€æŽãæ¯èŒã§ããŸãïŒã
粟æ»è
倧éãå°éãã¯ããããŸãããã7.74ãã8.15ã«æ Œä»ããäžãããååžãå€§å¹ ã«å€ãããŸããã


éçºè åãã®ãããªãã¥ãŒããªã¢ã«
ç§ã¯ãã·ã¹ãã ã®äœ¿çšæ¹æ³ã«é¢ããã¹ã¯ãªãŒã³ãã£ã¹ãã®èšé²ãéå§ããŸãããã·ã¹ãã ã®äœ¿çšãè¿ éãã€ç°¡åã«éå§ããã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸããäž»ã«ã·ã¹ãã ã®ã©ã®åŽé¢ã«é¢å¿ããããã«ã€ããŠã®æ³šæãåãå ¥ãããããã®åé¡ã«é¢ããäžè¬çãªã³ã¡ã³ãããããŸã
ãã£ããã«ãŒã ãšãã£ããããã人ã¯ã Gitterã§ãããè¡ãããšãã§ããŸãã
GitHubã³ãŒãã docsãã©ã«ããŒå ã®ããã¥ã¡ã³ã ã
Dockerã䜿çšããŠã¿ããã1è¡ã§å®è¡ã§ããŸãïŒFirefoxã䜿çšããæ¹ãããã§ããããChromiumã¯localhostã«cookieãèšå®ããããªãïŒïŒ
docker run --rm -p 8888:8888 nazarpc/cleverstyle-framework
ãŸããæ°ããããŒãžã§ã³ã¯cleverstyle.orgã§äœ¿çšãããŸã ïŒHTTP / 2ããã³ãã®ä»ã®æ©èœïŒã