{"id":18162,"date":"2020-07-08T12:11:34","date_gmt":"2020-07-08T03:11:34","guid":{"rendered":"https:\/\/sys-guard.com\/?p=18162"},"modified":"2020-07-08T12:15:05","modified_gmt":"2020-07-08T03:15:05","slug":"new-cakephp-4-0-strawberry","status":"publish","type":"post","link":"https:\/\/sys-guard.com\/post-18162\/","title":{"rendered":"New CakePHP 4.0 Strawberry."},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18163\" src=\"https:\/\/sys-guard.com\/contents\/wp-content\/uploads\/2020\/07\/783206d7-6ad6-46c7-9cd2-6c3b86cdd90e.png\" alt=\"\" width=\"1205\" height=\"505\" \/>\u3069\u3046\u3082\u30ab\u30c8\u30fc\u3067\u3059\u3002<\/p>\n<p>\u6700\u8fd1\u306fLaravel\u304c\u4eba\u6c17\u3067\u3059\u304c\u3001\u696d\u52d9\u3067CakePHP\u89e6\u308b\u4e8b\u304c\u3042\u308a\u3001\u8abf\u3079\u3066\u307f\u308b\u3068\u968f\u5206\u524d\u306bCakePHP\u3082\u30d0\u30fc\u30b8\u30e7\u30f34\u3001CakePHP 4.0 Strawberry.\u304c\u51fa\u3066\u3044\u308b\u3053\u3068\u306b\u6c17\u304c\u3064\u304d\u307e\u3057\u305f\u3088\u3002\u6700\u8fd1\u306f\u793e\u9577\u696d\u52d9\u3067\u958b\u767a\u3082\u3057\u3066\u306a\u304b\u3063\u305f\u306e\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u306e\u3067\u3001\u3053\u306e\u307e\u307e\u3058\u3083\u30de\u30ba\u30a4\u306e\u3067\u3001\u65e9\u901f\u624b\u5143\u306e\u74b0\u5883\u3067\u7c21\u5358\u306aBAKE\u3057\u3066\u307f\u307e\u3059\u3002\u3053\u3061\u3089\u306f\u305d\u306e\u8a18\u9332\u3067\u3059\u3088\u3002<\/p>\n<p>&nbsp;<\/p>\n<h2>\u307e\u305a\u306f\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<\/h2>\n<p>\u516c\u5f0f\u3088\u308b\u3068\u52d5\u4f5c\u74b0\u5883\u306f\u3001<\/p>\n<ul class=\"simple\">\n<li>HTTP Server. For example: Apache. Having mod_rewrite is preferred, but by no means required. You can also use nginx, or Microsoft IIS if you prefer.<\/li>\n<li>Minimum PHP 7.2 (<strong>7.4<\/strong>\u00a0supported).<\/li>\n<li>mbstring PHP extension<\/li>\n<li>intl PHP extension<\/li>\n<li>simplexml PHP extension<\/li>\n<li>PDO PHP extension<\/li>\n<\/ul>\n<p>\u4eca\u56de\u3001\u624b\u5143\u306eXAMPP\u3067\u52d5\u304b\u3059\u306e\u3067\u3001PHP\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3060\u3051\u3067\u3082\u78ba\u8a8d\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true \"># php -v\r\nPHP 7.4.7 (cli) (built: Jun  9 2020 13:36:15) ( ZTS Visual C++ 2017 x64 )\r\nCopyright (c) The PHP Group\r\nZend Engine v3.4.0, Copyright (c) Zend Technologies<\/pre>\n<p>\u8a73\u3057\u304f\u306f\u3053\u3061\u3089<br \/>\n<a href=\"https:\/\/book.cakephp.org\/4\/en\/installation.html\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/book.cakephp.org\/4\/en\/installation.html<\/a><\/p>\n<p>laravel\u3068\u540c\u3058\u7528\u306bcomposer\u304b\u3089\u843d\u3068\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true \"># composer create-project --prefer-dist cakephp\/app:~4.0 my_app_name\r\nInstalling cakephp\/app (4.1.1)\r\n  - Installing cakephp\/app (4.1.1): Loading from cache\r\nCreated project in my_app_name\r\nLoading composer repositories with package information\r\nUpdating dependencies (including require-dev)\r\nYour requirements could not be resolved to an installable set of packages.\r\n\r\n  Problem 1\r\n    - Installation request for cakephp\/cakephp ~4.1.0 -&gt; satisfiable by cakephp\/cakephp[4.1.0].\r\n    - cakephp\/cakephp 4.1.0 requires ext-intl * -&gt; the requested PHP extension intl is missing from your system.\r\n  Problem 2\r\n    - cakephp\/debug_kit 4.1.0 requires cakephp\/cakephp ^4.0 -&gt; satisfiable by cakephp\/cakephp[4.1.0].\r\n    - cakephp\/debug_kit 4.1.1 requires cakephp\/cakephp ^4.0 -&gt; satisfiable by cakephp\/cakephp[4.1.0].\r\n    - cakephp\/debug_kit 4.1.2 requires cakephp\/cakephp ^4.0 -&gt; satisfiable by cakephp\/cakephp[4.1.0].\r\n    - cakephp\/debug_kit 4.1.3 requires cakephp\/cakephp ^4.0 -&gt; satisfiable by cakephp\/cakephp[4.1.0].\r\n    - cakephp\/debug_kit 4.2.0 requires cakephp\/cakephp ^4.0 -&gt; satisfiable by cakephp\/cakephp[4.1.0].\r\n    - cakephp\/cakephp 4.1.0 requires ext-intl * -&gt; the requested PHP extension intl is missing from your system.\r\n    - Installation request for cakephp\/debug_kit ^4.1 -&gt; satisfiable by cakephp\/debug_kit[4.1.0, 4.1.1, 4.1.2, 4.1.3, 4.2.0].\r\n\r\n  To enable extensions, verify that they are enabled in your .ini files:\r\n    - D:\\xampp\\php\\php.ini\r\n  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.<\/pre>\n<p>\u30ac\u30f3\u30ac\u30f3\u30a8\u30e9\u30fc\u51fa\u3066\u307e\u3059\u3002<\/p>\n<p>\u3072\u3068\u3064\u305a\u3064\u76f4\u3057\u3066\u3044\u304d\u307e\u3059\u3002<br \/>\n\u30a8\u30e9\u30fc\u3092\u898b\u308b\u3068\u3001requires ext-intl * -\u3068\u3042\u308a\u307e\u3059\u306e\u3067\u3001php.ini\u3067extension=intl\u306e\u884c\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"start-line:915 lang:default decode:true\">extension=gettext\r\n;extension=gmp\r\nextension=intl\r\n;extension=imap\r\n;extension=ldap<\/pre>\n<p>\u518d\u5ea6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30fc\u3092\u6d88\u3057\u3066\u3001Web\u30b5\u30fc\u30d3\u30b9\u3092\u518d\u8d77\u52d5\u3057\u3066\u518d\u5ea6\u30b3\u30de\u30f3\u30c9\u3092\u6253\u3061\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\"># composer create-project --prefer-dist cakephp\/app:~4.0 my_app_name\r\nInstalling cakephp\/app (4.1.1)\r\n  - Installing cakephp\/app (4.1.1): Loading from cache\r\nCreated project in my_app_name\r\nLoading composer repositories with package information\r\nUpdating dependencies (including require-dev)\r\nPackage operations: 85 installs, 0 updates, 0 removals\r\n  - Installing cakephp\/plugin-installer (1.2.0): Downloading (100%)\r\n  - Installing psr\/simple-cache (1.0.1): Downloading (100%)\r\n  - Installing psr\/log (1.1.3): Downloading (100%)\r\n\r\n----\uff08\u7701\u7565\uff09------\r\n\r\n  - Installing phpunit\/php-code-coverage (7.0.10): Loading from cache\r\n  - Installing doctrine\/instantiator (1.3.1): Downloading (100%)\r\n  - Installing phpdocumentor\/reflection-common (2.2.0): Downloading (100%)\r\n  - Installing webmozart\/assert (1.9.0): Downloading (100%)\r\n  - Installing phpdocumentor\/type-resolver (1.3.0): Downloading (100%)\r\n\r\n----\uff08\u7701\u7565\uff09------\r\n\r\nSet Folder Permissions ? (Default to Y) [Y,n]? y\r\nUpdated Security.salt value in config\/app_local.php<\/pre>\n<p>\u65e9\u901f\u3001localhost\u3067\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18164\" src=\"https:\/\/sys-guard.com\/contents\/wp-content\/uploads\/2020\/07\/7f049c0f-7a37-408d-861e-fc56533dbd5c.png\" alt=\"\" width=\"1353\" height=\"836\" \/><\/p>\n<p>\u7121\u4e8b\u306b\u5165\u3063\u305f\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>\u30c8\u30c3\u30d7\u306b\u3001<\/p>\n<pre class=\"lang:default decode:true\">Please be aware that this page will not be shown if you turn off debug mode unless you replace templates\/Pages\/home.php with your own version.\r\n\r\n\u30c7\u30d0\u30c3\u30b0\u30e2\u30fc\u30c9\u3092\u30aa\u30d5\u306b\u3059\u308b\u3068\u3001templates \/ Pages \/ home.php\u3092\u72ec\u81ea\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u7f6e\u304d\u63db\u3048\u306a\u3044\u9650\u308a\u3001\u3053\u306e\u30da\u30fc\u30b8\u306f\u8868\u793a\u3055\u308c\u306a\u3044\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\uff08\u81ea\u52d5\u7ffb\u8a33\u3011<\/pre>\n<p>\u306a\u306b\u304b\u8272\u3005\u5909\u308f\u3063\u3066\u3044\u308b\u306e\u304b\u4e0d\u660e\u3067\u3059\u304c\u3001\u307e\u305a\u306f\u76ee\u7684\u901a\u308aCRUD\u3092\u7528\u610f\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<h2>CakePHP4 \u521d\u671f\u8a2d\u7f6e<\/h2>\n<p>config\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e.env.example\u3092.env\u306b\u30ea\u30cd\u30fc\u30e0\u3057\u3001\u5404\u7a2e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"start-line:16 lang:default decode:true \">export APP_NAME=\"MyBlog\"\r\nexport DEBUG=\"true\"\r\nexport APP_ENCODING=\"UTF-8\"\r\nexport APP_DEFAULT_LOCALE=\"ja_JP\"\r\nexport APP_DEFAULT_TIMEZONE=\"Asia\/Tokyo\"\r\nexport SECURITY_SALT=\"otsusuORAGOKUU!omeeeYoeeena!\"<\/pre>\n<p>SECURITY_SALT\u306b\u306f\u4efb\u610f\u306e\u6587\u5b57\u5217\u3092\u5165\u308c\u3066\u304a\u304d\u307e\u3059\u3002\u7d9a\u3051\u3066\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306fenv\u30d5\u30a1\u30a4\u30eb\u306f\u8aad\u307f\u8fbc\u307e\u308c\u306a\u3044\u306e\u3067\u3001bootstrap.php\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3055\u308c\u3066\u3044\u308b\u90e8\u5206\u6709\u52b9\u306b\u3057\u307e\u3059\u3002<\/p>\n<p>\/config\/bootstrap<\/p>\n<pre class=\"start-line:61 lang:default decode:true\">if (!env('APP_NAME') &amp;&amp; file_exists(CONFIG . '.env')) {\r\n    $dotenv = new \\josegonzalez\\Dotenv\\Loader([CONFIG . '.env']);\r\n    $dotenv-&gt;parse()\r\n        -&gt;putenv()\r\n        -&gt;toEnv()\r\n        -&gt;toServer();\r\n}<\/pre>\n<p>\u6b21\u306b\u3001\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u306e\u5834\u5408\u3001app_local.php\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u306e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\u3002<br \/>\n\u4eca\u56de\u306f\u3001\u78ba\u8a8d\u306a\u306e\u3067\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306emy_app secret\u306e\u90e8\u5206\u3092\u78ba\u8a8d\u3057\u3066MySQL\u3078\u8a2d\u5b9a\u3057\u307e\u3059\u3002<br \/>\n\u203b\u6ce8\u610f \u5f53\u7136\u3067\u3059\u304c\u3001\u3061\u3083\u3093\u3068\u3057\u305f\u904b\u7528\u306b\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u3082\u5909\u66f4\u306f\u5fc5\u9808\u3067\u3059\u3088\u3002<\/p>\n<pre class=\"start-line:37 lang:default decode:true\">    'Datasources' =&gt; [\r\n        'default' =&gt; [\r\n            'host' =&gt; 'localhost',\r\n            \/*\r\n             * CakePHP will use the default DB port based on the driver selected\r\n             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment\r\n             * the following line and set the port accordingly\r\n             *\/\r\n            \/\/'port' =&gt; 'non_standard_port_number',\r\n\r\n            'username' =&gt; 'my_app',\r\n            'password' =&gt; 'secret',\r\n            'database' =&gt; 'my_app',\r\n            \/**<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18175\" src=\"https:\/\/sys-guard.com\/contents\/wp-content\/uploads\/2020\/07\/de6828e1-8919-4434-9a9f-98cd8582b538.png\" alt=\"\" width=\"895\" height=\"277\" \/><br \/>\nXAMPP\u3060\u3068admin\u304b\u3089phpMyAdmin\u5165\u3063\u3066\u308b\u306e\u3067\u3001\u305d\u306e\u307e\u307e\u30e6\u30fc\u30b6\u30fc\u3092\u8ffd\u52a0\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18174\" src=\"https:\/\/sys-guard.com\/contents\/wp-content\/uploads\/2020\/07\/f1a9062a-15e1-4ac1-9484-db3fb07a8ad6.png\" alt=\"\" width=\"1216\" height=\"271\" \/><br \/>\n\u3053\u3053\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u3066\u3044\u308b\u306e\u3092\u78ba\u8a8d\u3067\u3059\u3002<\/p>\n<h3>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u8a2d\u5b9a<\/h3>\n<p>CakePHP\u3067\u306f\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u6a5f\u80fd\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u69cb\u9020\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u3067\u3001\u65e9\u901f\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\"># bin\\cake bake migration CreatePosts\r\n\r\nCreating file D:\u30d1\u30b9\u3067\u3059\u306d\\config\\Migrations\\20200706081624_CreatePosts.php<\/pre>\n<p>\u3053\u306e\u8fba\u306f\u904e\u53bb\u89e6\u3063\u305f\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5909\u308f\u308a\u304c\u306a\u3044\u3088\u3046\u3067\u3059\u306d\u3002\u5b89\u5fc3\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u3061\u306a\u307f\u306b<strong>\u3001&#8217;bin&#8217; \u306f\u3001\u5185\u90e8\u30b3\u30de\u30f3\u30c9\u307e\u305f\u306f\u5916\u90e8\u30b3\u30de\u30f3\u30c9\u3001\u64cd\u4f5c\u53ef\u80fd\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u307e\u305f\u306f\u30d0\u30c3\u30c1 \u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u8a8d\u8b58\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002<\/strong>\u3068\u51fa\u305f\u5834\u5408\u306f\/\u30b9\u30e9\u30c3\u30b7\u30e5\u3092\uffe5\u30de\u30fc\u30af\u306e\u30d0\u30c3\u30af\u30b9\u30e9\u30c3\u30b7\u30e5\u3057\u307e\u3057\u3087\u3046\u3002\u3064\u3044Windows\u74b0\u5883\u3060\u3068\u30cf\u30de\u3063\u3066\u30e2\u30b8\u30fc\u30eb\u5165\u308c\u76f4\u3057\u305b\u305a\u306b\u3069\u3046\u305e\u3002<\/p>\n<p>\u65e9\u901f\u3001\u3067\u304d\u305f20200706081624_CreatePosts.php\u3092\u52a0\u5de5\u3057\u3066\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u69cb\u9020\u3092\u7528\u610f\u3057\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true\">    public function change()\r\n    {\r\n        $table = $this-&gt;table('posts');\r\n        $table\r\n        -&gt;addColumn('title', 'text')\r\n        -&gt;addColumn('body', 'text')\r\n        -&gt;addColumn('created', 'datetime')\r\n        -&gt;addColumn('modified', 'datetime');\r\n        $table-&gt;create();\r\n    }<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true\"># bin\\cake migrations migrate\r\n\r\n--(\u7565\uff09----\r\nordering by creation time\r\n\r\n == 20200706081624 CreatePosts: migrating\r\n == 20200706081624 CreatePosts: migrated 1.5426s\r\n\r\nAll Done. Took 1.5443s\r\n--(\u7565\uff09----\r\nDump file `\u30d1\u30b9\\my_app_name\\config\\Migrations\\schema-dump-default.lock` was successfully written<\/pre>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18176\" src=\"https:\/\/sys-guard.com\/contents\/wp-content\/uploads\/2020\/07\/6faf484a-1c7d-4f85-9031-6550abd4a8f4.png\" alt=\"\" width=\"914\" height=\"229\" \/><\/p>\n<p>\u3061\u3083\u3093\u3068\u3067\u304d\u3066\u308b\u3088\u3046\u3067\u3001\u554f\u984c\u306a\u3044\u3088\u3046\u3067\u3059\u306d\u3002<\/p>\n<p>&nbsp;<\/p>\n<h2>Bake\u306e\u78ba\u8a8d<\/h2>\n<p>\u3053\u306e4\u306b\u306a\u3063\u3066\u306a\u306b\u304b\u9055\u3046\u306e\u304b\u4e00\u5fdcBake\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\">#bin\\cake bake  --help\r\n\r\n---\uff08\u7565\uff09------+--\r\n\r\nBake:\r\n - bake all\r\n - bake behavior\r\n - bake cell\r\n - bake command\r\n - bake component\r\n - bake controller\r\n - bake controller all\r\n - bake fixture\r\n - bake fixture all\r\n - bake form\r\n - bake helper\r\n - bake mailer\r\n - bake middleware\r\n - bake model\r\n - bake model all\r\n - bake plugin\r\n - bake shell\r\n - bake shell_helper\r\n - bake task\r\n - bake template\r\n - bake template all\r\n - bake test\r\n\r\nMigrations:\r\n - bake migration\r\n - bake migration_diff\r\n - bake migration_snapshot\r\n - bake seed\r\n\r\nTo run a command, type `cake command_name [args|options]`\r\nTo get help on a specific command, type `cake command_name --help`<\/pre>\n<p>\u4e45\u3057\u3076\u308a\u306b\u89e6\u3063\u305f\u306e\u3067\u3059\u304c\u540c\u3058\u7528\u306b\u3044\u3051\u305d\u3046\u306a\u306e\u3067\u3001\u305d\u306e\u307e\u307eBake\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true \"># bin\\cake bake  all posts\r\nBake All\r\n-------------------------------------------------------------------------------\r\nOne moment while associations are detected.\r\nBaking table class for Posts...\r\n\r\n--\uff08\u7565\uff09---\r\n`\r\nBake All complete.<\/pre>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18177\" src=\"https:\/\/sys-guard.com\/contents\/wp-content\/uploads\/2020\/07\/9b6f6471-482e-40ea-8490-02dd14501703.png\" alt=\"\" width=\"1330\" height=\"358\" \/><\/p>\n<p>\u554f\u984c\u306a\u3044\u3088\u3046\u3067\u3059\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18178\" src=\"https:\/\/sys-guard.com\/contents\/wp-content\/uploads\/2020\/07\/fda77cd3-c566-4bc9-8a12-1762f741acef.png\" alt=\"\" width=\"1223\" height=\"455\" \/><\/p>\n<p>\u3061\u3083\u3093\u3068POST\u3067\u304d\u307e\u3059\u306d\u3002<\/p>\n<p>&nbsp;<\/p>\n<h2>\u8e93\u3044\u305f\u3053\u3068<\/h2>\n<p>\u3055\u3089\u3063\u3068\u66f8\u3044\u305f\u306e\u3067\u3059\u304c\u3001\u4e45\u3057\u3076\u308a\u306b\u89e6\u3063\u305f\u306e\u3067\u3001\u5b9f\u306f\u4ee5\u4e0b\u3001\u8e93\u304d\u307e\u3057\u305f\u3088\u3002<\/p>\n<ul>\n<li>app_local.php\u306e\u5229\u7528<\/li>\n<li>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306fenv\u30d5\u30a1\u30a4\u30eb\u306f\u8aad\u307f\u8fbc\u307e\u308c\u306a\u3044\u306e\u3067\u3001bootstrap.php\u306e\u30d5\u30a1\u30a4\u30eb\u4fee\u6b63<\/li>\n<li>Windows\u74b0\u5883\u3067\u30b9\u30e9\u30c3\u30b7\u30e5\u3068\u30d0\u30c3\u30af\u30b9\u30e9\u30c3\u30b7\u30e5<\/li>\n<li>\u9014\u4e2d\u3067\u4eee\u60f3\u3067\u3082\u3044\u3044\u304b\u3089\u3001\u3084\u3063\u3071\u308aLinux\u30b5\u30fc\u30d0\u7acb\u3066\u3088\u3046\u3068\u60b6\u7d76<\/li>\n<\/ul>\n<p>\u3084\u306f\u308a\u5b9a\u671f\u7684\u306bphp\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u89e6\u3089\u306a\u3044\u3068\u3060\u3081\u3067\u3059\u306d\u3002\u65e9\u901f\u6b21\u56de\u306f\u3053\u306e\u307e\u307e\u4f55\u304b\u4f5c\u308d\u3046\u3068\u601d\u3044\u307e\u3059\u3088\u3002<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3069\u3046\u3082\u30ab\u30c8\u30fc\u3067\u3059\u3002 \u6700\u8fd1\u306fLaravel\u304c\u4eba\u6c17\u3067\u3059\u304c\u3001\u696d\u52d9\u3067CakePHP\u89e6\u308b\u4e8b\u304c\u3042\u308a\u3001\u8abf\u3079\u3066\u307f\u308b\u3068\u968f\u5206\u524d\u306bCakePHP\u3082\u30d0\u30fc\u30b8\u30e7\u30f34\u3001CakePHP 4.0 Strawberry.\u304c\u51fa\u3066\u3044\u308b\u3053\u3068\u306b\u6c17\u304c\u3064\u304d\u307e\u3057\u305f\u3088\u3002\u6700\u8fd1\u306f\u793e\u9577\u696d\u52d9\u3067\u958b\u767a\u3082\u3057\u3066\u306a\u304b\u3063 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":18179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[84,8],"tags":[],"_links":{"self":[{"href":"https:\/\/sys-guard.com\/wp-json\/wp\/v2\/posts\/18162"}],"collection":[{"href":"https:\/\/sys-guard.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sys-guard.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sys-guard.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sys-guard.com\/wp-json\/wp\/v2\/comments?post=18162"}],"version-history":[{"count":0,"href":"https:\/\/sys-guard.com\/wp-json\/wp\/v2\/posts\/18162\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sys-guard.com\/wp-json\/wp\/v2\/media\/18179"}],"wp:attachment":[{"href":"https:\/\/sys-guard.com\/wp-json\/wp\/v2\/media?parent=18162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sys-guard.com\/wp-json\/wp\/v2\/categories?post=18162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sys-guard.com\/wp-json\/wp\/v2\/tags?post=18162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}