{"id":693,"date":"2015-07-31T20:19:46","date_gmt":"2015-07-31T20:19:46","guid":{"rendered":"https:\/\/www.codexworld.com\/?p=693"},"modified":"2015-08-27T11:43:24","modified_gmt":"2015-08-27T11:43:24","slug":"cakephp-3-x-tutorial-for-beginners","status":"publish","type":"post","link":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/","title":{"rendered":"CakePHP 3.x Tutorial for Beginners"},"content":{"rendered":"<p>CakePHP is an open source PHP 5.4+ framework, helps to building both small and complex systems. It follows the Model-View-Controller (MVC) approach. CakePHP makes building web applications simpler, faster and require less code.<br \/>\nCakePHP has released 3.x versions with many changes. This tutorial will guide you for getting started with CakePHP 3.x framework and provide basic guide of CakePHP 3.x application development. Our step by step CakePHP 3.x tutorial helps beginner for learn CakePHP 3.x from scratch. Also we will develop a sample project with CakePHP 3.x for your better understanding.<\/p>\n<h2>Download CakePHP 3.x:<\/h2>\n<p>Download the pre-installed release of CakePHP 3.x from Github \u2013 <a href=\"https:\/\/github.com\/cakephp\/cakephp\/tags\" target=\"_blank\">CakePHP Releases<\/a><\/p>\n<h2>Basic Configuration:<\/h2>\n<p><b>Step1:-<\/b> Before installing CakePHP we are needed to check some configuration in our server.<\/p>\n<ul>\n<li><span class=\"glyphicon glyphicon-forward\"><\/span>&nbsp;Make sure that you have the <code>mbstring<\/code> and <code>intl<\/code> extensions are enabled in PHP.<\/li>\n<li><span class=\"glyphicon glyphicon-forward\"><\/span>&nbsp;Make sure that you have <code>pdo_mysql<\/code> enabled in PHP.<\/li>\n<\/ul>\n<p><b>Step2:-<\/b> Extract zip file and change folder name with your desire project name. For example <code>cakephp\/<\/code>.<\/p>\n<p><b>Step3:-<\/b> Move the <code>cakephp\/<\/code> folder to the localhost server. Your directory setup would look like the following.<\/p>\n<ul class=\"folder_structure\">\n<li>\/cakephp\n<ul>\n<li>\/bin<\/li>\n<li>\/config<\/li>\n<li>\/logs<\/li>\n<li>\/plugins<\/li>\n<li>\/src<\/li>\n<li>\/tests<\/li>\n<li>\/tmp<\/li>\n<li>\/vendor<\/li>\n<li>\/webroot<\/li>\n<li>.editorconfig<\/li>\n<li>.htaccess<\/li>\n<li>.travis.yml<\/li>\n<li>composer.json<\/li>\n<li>index.php<\/li>\n<li>phpunit.xml.dist<\/li>\n<li>README.md<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><b>Step4:-<\/b> Directory Permissions &#8211; The tmp and logs directories need to have write permissions. So, make these directories to be writable.<\/p>\n<p><b>Step5:-<\/b> Creating Database &#8211; Create a database at the phpMyAdmin. For example <code>cakephp_db<\/code>.<\/p>\n<p><b>Step6:-<\/b> Database Configuration:<br \/>\n<span class=\"glyphicon glyphicon-forward\"><\/span>&nbsp;Open the <code>config\/app.php<\/code> file and replace the values in the <code>Datasources.default<\/code> array with database details. The completed configuration array might be look like the following.<\/p>\n<ul>\n<li>\n<pre><span style=\"color: #000000\"><span style=\"color: #DD0000\">'Datasources'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;[<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'default'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;[<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'className'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'Cake\\Database\\Connection'<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'driver'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'Cake\\Database\\Driver\\Mysql'<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'persistent'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #0000BB\">false<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'host'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'localhost'<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'username'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'root'<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'password'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">''<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'database'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'cakephp_db'<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'encoding'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'utf8'<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'timezone'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'UTC'<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'cacheMetadata'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #0000BB\">true<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'quoteIdentifiers'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #0000BB\">false<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;],<br \/>]<\/span><\/span><\/pre>\n<\/li>\n<\/ul>\n<p><b>Step7:-<\/b> Run the application URL (<code>http:\/\/localhost\/cakephp\/<\/code>) at the browser, screen would look like the below.<\/p>\n<div class=\"img_center\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-installation-configuration-tutorial-by-codexworld.png\" alt=\"cakephp-installation-configuration-tutorial-by-codexworld\" width=\"1294\" height=\"1018\" class=\"alignnone size-full wp-image-694\" srcset=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-installation-configuration-tutorial-by-codexworld.png 1294w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-installation-configuration-tutorial-by-codexworld-300x236.png 300w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-installation-configuration-tutorial-by-codexworld-1024x806.png 1024w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-installation-configuration-tutorial-by-codexworld-200x157.png 200w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-installation-configuration-tutorial-by-codexworld-292x230.png 292w\" sizes=\"auto, (max-width: 1294px) 100vw, 1294px\" \/><\/div>\n<h2>CakePHP 3.x Naming Conventions:<\/h2>\n<p>Before start to building a sample project, we should know about the Naming Conventions of CakePHP 3.x.<\/p>\n<p><b>Controller Conventions &#8211; <\/b>Controller class names are plural, CamelCased, and end in Controller (<code>PostsController<\/code>, <code>LatestPostsController<\/code> etc.).<\/p>\n<p><b>Model and Database Conventions &#8211; <\/b>Model class names are plural, CamelCased, and end in Table (<code>PostsTable<\/code>). Database Table names corresponding to CakePHP models are plural and underscored (<code>posts<\/code>).<\/p>\n<p><b>View Conventions &#8211; <\/b>The basic pattern of view template file is <code>src\/Template\/Controller\/underscored_function_name.ctp<\/code> (<code>src\/Template\/Posts\/index.ctp<\/code>).<\/p>\n<h2>Sample Application with CakePHP 3.x:<\/h2>\n<p>We are going to build a sample application using CakePHP 3.x. This sample application will fetch some posts from database and display those posts data and display those posts data at the browser.<\/p>\n<p><b>Create a posts table:<\/b><\/p>\n<pre><span style=\"color:#794938\">CREATE<\/span> <span style=\"color:#794938\">TABLE<\/span> `<span style=\"color:#bf4f24\">posts<\/span>` (\r\n <span style=\"color:#0b6125\">`id`<\/span> <span style=\"color:#a71d5d;font-style:italic\">int<\/span>(<span style=\"color:#811f24;font-weight:700\">11<\/span>) <span style=\"color:#794938\">NOT NULL<\/span> AUTO_INCREMENT,\r\n <span style=\"color:#0b6125\">`title`<\/span> <span style=\"color:#a71d5d;font-style:italic\">varchar<\/span>(<span style=\"color:#811f24;font-weight:700\">255<\/span>) COLLATE utf8_unicode_ci <span style=\"color:#794938\">NOT NULL<\/span>,\r\n <span style=\"color:#0b6125\">`description`<\/span> <span style=\"color:#a71d5d;font-style:italic\">text<\/span> COLLATE utf8_unicode_ci <span style=\"color:#794938\">NOT NULL<\/span>,\r\n <span style=\"color:#0b6125\">`created`<\/span> datetime <span style=\"color:#794938\">NOT NULL<\/span>,\r\n <span style=\"color:#0b6125\">`modified`<\/span> datetime <span style=\"color:#794938\">NOT NULL<\/span>,\r\n <span style=\"color:#0b6125\">`status`<\/span> <span style=\"color:#a71d5d;font-style:italic\">tinyint<\/span>(<span style=\"color:#811f24;font-weight:700\">1<\/span>) <span style=\"color:#794938\">NOT NULL<\/span> DEFAULT <span style=\"color:#0b6125\">'1'<\/span> COMMENT <span style=\"color:#0b6125\">'1 = Active, 0 = Inactive'<\/span>,\r\n <span style=\"color:#a71d5d;font-style:italic\">PRIMARY KEY<\/span> (<span style=\"color:#0b6125\">`id`<\/span>)\r\n) ENGINE<span style=\"color:#794938\">=<\/span>InnoDB DEFAULT CHARSET<span style=\"color:#794938\">=<\/span>utf8 COLLATE<span style=\"color:#794938\">=<\/span>utf8_unicode_ci;\r\n<\/pre>\n<p><b>Insert some posts data for testing purpose:<\/b><\/p>\n<pre><span style=\"color:#794938\">INSERT INTO<\/span> \r\n    <span style=\"color:#0b6125\">`cakephp_db`<\/span>.<span style=\"color:#0b6125\">`posts`<\/span> (<span style=\"color:#0b6125\">`id`<\/span>, <span style=\"color:#0b6125\">`title`<\/span>, <span style=\"color:#0b6125\">`description`<\/span>, <span style=\"color:#0b6125\">`created`<\/span>, <span style=\"color:#0b6125\">`modified`<\/span>, <span style=\"color:#0b6125\">`status`<\/span>) \r\n<span style=\"color:#794938\">VALUES<\/span> \r\n    (<span style=\"color:#794938\">NULL<\/span>, <span style=\"color:#0b6125\">'Distance between two addresses using Google Maps API and PHP'<\/span>, <span style=\"color:#0b6125\">'Calculate distance between two addresses........'<\/span>, NOW(), NOW(), <span style=\"color:#0b6125\">'1'<\/span>), \r\n    (<span style=\"color:#794938\">NULL<\/span>, <span style=\"color:#0b6125\">'Ajax Pagination in CodeIgniter Framework'<\/span>, <span style=\"color:#0b6125\">'CodeIgniter have the pagination library by........'<\/span>, NOW(), NOW(), <span style=\"color:#0b6125\">'1'<\/span>), \r\n    (<span style=\"color:#794938\">NULL<\/span>, <span style=\"color:#0b6125\">'Create a custom WordPress Plugin from scratch'<\/span>, <span style=\"color:#0b6125\">'WordPress is the most popular open source content management.......'<\/span>, NOW(), NOW(), <span style=\"color:#0b6125\">'1'<\/span>), \r\n    (<span style=\"color:#794938\">NULL<\/span>, <span style=\"color:#0b6125\">'Drag and drop reorder images using jQuery, Ajax, PHP &amp; MySQL'<\/span>, <span style=\"color:#0b6125\">'Today we will discuss about the most useful........'<\/span>, NOW(), NOW(), <span style=\"color:#0b6125\">'1'<\/span>), \r\n    (<span style=\"color:#794938\">NULL<\/span>, <span style=\"color:#0b6125\">'Drupal 7 installation and setup tutorial for beginners'<\/span>, <span style=\"color:#0b6125\">'Drupal is a content management system which allows........'<\/span>, NOW(), NOW(), <span style=\"color:#0b6125\">'1'<\/span>);\r\n<\/pre>\n<p><b>Creating Posts Controller:<\/b><br \/>\nWe\u2019ll create a controller with the class name <code>PostsController<\/code> and place this new controller in a file called <code>PostsController.php<\/code> inside the <code>src\/Controller<\/code> directory. Here&#8217;s what the Posts Controller is look like:<\/p>\n<pre><span style=\"color: #000000\"><span style=\"color: #0000BB\">&lt;?php<br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;src\/Controller\/PostsController.php<br \/><br \/><\/span><span style=\"color: #007700\">namespace&nbsp;<\/span><span style=\"color: #0000BB\">App<\/span><span style=\"color: #007700\">\\<\/span><span style=\"color: #0000BB\">Controller<\/span><span style=\"color: #007700\">;<br \/><br \/>class&nbsp;<\/span><span style=\"color: #0000BB\">PostsController&nbsp;<\/span><span style=\"color: #007700\">extends&nbsp;<\/span><span style=\"color: #0000BB\">AppController<br \/><\/span><span style=\"color: #007700\">{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;<\/span><span style=\"color: #0000BB\">index<\/span><span style=\"color: #007700\">()<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$posts&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Posts<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">find<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'all'<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">set<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">compact<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'posts'<\/span><span style=\"color: #007700\">));<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>}<\/span><\/span><\/pre>\n<p><code>find()<\/code> function is used for retrieve all the posts data. <code>set()<\/code> function is used to pass the posts data to view. <\/p>\n<p><b>Creating Posts Model:<\/b><br \/>\nWe don&#8217;t need to create model for retrieve data from post table.<\/p>\n<p><b>Creating Posts Views:<\/b><br \/>\nCakePHP&#8217;s template files are stored into the <code>src\/Template<\/code> directory. Into this directory we&#8217;ll have to create a folder named &#8220;posts&#8221; and create a <code>index.ctp<\/code> file. Our view code would be look like the below:<\/p>\n<pre>&lt;<span style=\"color:#bf4f24\">h1<\/span>>Blog Posts&lt;\/<span style=\"color:#bf4f24\">h1<\/span>>\r\n&lt;<span style=\"color:#bf4f24\">div<\/span> <span style=\"color:#bf4f24\">class<\/span>=<span style=\"color:#0b6125\">\"row\"<\/span>>\r\n    <span style=\"background:rgba(111,139,186,0.15)\">&lt;?php<span style=\"color:#794938\"> if<\/span>(<span style=\"color:#794938\">!<\/span><span style=\"color:#693a17\">empty<\/span>(<span style=\"color:#234a97\">$posts<\/span>)):<span style=\"color:#794938\"> foreach<\/span>(<span style=\"color:#234a97\">$posts<\/span> <span style=\"color:#794938\">as<\/span> <span style=\"color:#234a97\">$post<\/span>): ?><\/span>\r\n    &lt;<span style=\"color:#bf4f24\">div<\/span> <span style=\"color:#bf4f24\">class<\/span>=<span style=\"color:#0b6125\">\"post-box\"<\/span>>\r\n        &lt;<span style=\"color:#bf4f24\">div<\/span> <span style=\"color:#bf4f24\">class<\/span>=<span style=\"color:#0b6125\">\"post-content\"<\/span>>\r\n            &lt;<span style=\"color:#bf4f24\">div<\/span> <span style=\"color:#bf4f24\">class<\/span>=<span style=\"color:#0b6125\">\"caption\"<\/span>>\r\n                &lt;<span style=\"color:#bf4f24\">h4<\/span>>&lt;<span style=\"color:#bf4f24\">a<\/span> <span style=\"color:#bf4f24\">href<\/span>=<span style=\"color:#0b6125\">\"javascript:void(0);\"<\/span>><span style=\"background:rgba(111,139,186,0.15)\">&lt;?php <span style=\"color:#693a17\">echo<\/span> <span style=\"color:#234a97\">$post<\/span><span style=\"color:#794938\">-><\/span>title; ?><\/span>&lt;\/<span style=\"color:#bf4f24\">a<\/span>>&lt;\/<span style=\"color:#bf4f24\">h4<\/span>>\r\n                &lt;<span style=\"color:#bf4f24\">p<\/span>><span style=\"background:rgba(111,139,186,0.15)\">&lt;?php <span style=\"color:#693a17\">echo<\/span> <span style=\"color:#234a97\">$post<\/span><span style=\"color:#794938\">-><\/span>description; ?><\/span>&lt;\/<span style=\"color:#bf4f24\">p<\/span>>\r\n            &lt;\/<span style=\"color:#bf4f24\">div<\/span>>\r\n        &lt;\/<span style=\"color:#bf4f24\">div<\/span>>\r\n    &lt;\/<span style=\"color:#bf4f24\">div<\/span>>\r\n    <span style=\"background:rgba(111,139,186,0.15)\">&lt;?php<span style=\"color:#794938\"> endforeach<\/span>;<span style=\"color:#794938\"> else<\/span>: ?><\/span>\r\n    &lt;<span style=\"color:#bf4f24\">p<\/span> <span style=\"color:#bf4f24\">class<\/span>=<span style=\"color:#0b6125\">\"no-record\"<\/span>>No post(s) found......&lt;\/<span style=\"color:#bf4f24\">p<\/span>>\r\n    <span style=\"background:rgba(111,139,186,0.15)\">&lt;?php<span style=\"color:#794938\"> endif<\/span>; ?><\/span>\r\n&lt;\/<span style=\"color:#bf4f24\">div<\/span>>\r\n<\/pre>\n<p><b>Set Default Controller:<\/b><br \/>\nOpen the <code>config\/routes.php<\/code> file and set application base controller. Go to under the <code>Router::scope()<\/code> and into the <code>$routes->connect()<\/code> change controller name from &#8220;Pages&#8221; to &#8220;Posts&#8221;, action name from &#8220;display&#8221; to &#8220;index&#8221; and pass a param to select the view file to use.<\/p>\n<pre><span style=\"color: #000000\"><span style=\"color: #0000BB\">$routes<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">connect<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'\/'<\/span><span style=\"color: #007700\">,&nbsp;[<\/span><span style=\"color: #DD0000\">'controller'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'Posts'<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #DD0000\">'action'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'index'<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #DD0000\">'index'<\/span><span style=\"color: #007700\">]);<\/span><\/span><\/pre>\n<h2>Testing:<\/h2>\n<p>Refresh the page (<code>http:\/\/localhost\/cakephp\/<\/code>) at the browser, you can see screen like the below.<\/p>\n<div class=\"img_center\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-blog-posts-tutorial-by-codexworld.png\" alt=\"cakephp-blog-posts-tutorial-by-codexworld\" width=\"798\" height=\"648\" class=\"alignnone size-full wp-image-695\" srcset=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-blog-posts-tutorial-by-codexworld.png 798w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-blog-posts-tutorial-by-codexworld-300x244.png 300w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-blog-posts-tutorial-by-codexworld-200x162.png 200w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-blog-posts-tutorial-by-codexworld-283x230.png 283w\" sizes=\"auto, (max-width: 798px) 100vw, 798px\" \/><\/div>\n<p>If you want to styling the post boxes like the above screenshot, just add the following CSS to the <code>src\/Template\/Posts\/index.ctp<\/code> view.<\/p>\n<pre><span style=\"color:#bf4f24\">h1<\/span>{<span style=\"color:#691c97\">color<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">#494646<\/span>;}\r\n<span style=\"color:#bf4f24\">.row<\/span>{ <span style=\"color:#691c97\">margin<\/span><span style=\"color:#794938\">:<\/span><span style=\"color:#811f24;font-weight:700\">20<span style=\"color:#794938\">px<\/span><\/span> <span style=\"color:#811f24;font-weight:700\">20<span style=\"color:#794938\">px<\/span><\/span> <span style=\"color:#811f24;font-weight:700\">20<span style=\"color:#794938\">px<\/span><\/span> <span style=\"color:#811f24;font-weight:700\">20<span style=\"color:#794938\">px<\/span><\/span>;<span style=\"color:#691c97\">width<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">100<span style=\"color:#794938\">%<\/span><\/span>;}\r\n<span style=\"color:#bf4f24\">.post-box<\/span> {<span style=\"color:#691c97\">width<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">30<span style=\"color:#794938\">%<\/span><\/span>;<span style=\"color:#691c97\">float<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#b4371f\">left<\/span>;<span style=\"color:#691c97\">position<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#b4371f\">relative<\/span>;<span style=\"color:#691c97\">min-height<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">1<span style=\"color:#794938\">px<\/span><\/span>;<span style=\"color:#691c97\">padding-right<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">15<span style=\"color:#794938\">px<\/span><\/span>;<span style=\"color:#691c97\">padding-left<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">15<span style=\"color:#794938\">px<\/span><\/span>;}\r\n<span style=\"color:#bf4f24\">.post-content<\/span> {<span style=\"color:#691c97\">padding<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">0<\/span>;}\r\n<span style=\"color:#bf4f24\">.post-content<\/span> {<span style=\"color:#691c97\">display<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#b4371f\">block<\/span>;<span style=\"color:#691c97\">padding<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">4<span style=\"color:#794938\">px<\/span><\/span>;<span style=\"color:#691c97\">margin-bottom<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">20<span style=\"color:#794938\">px<\/span><\/span>;<span style=\"color:#691c97\">line-height<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">1.42857143<\/span>;<span style=\"color:#691c97\">background-color<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">#fff<\/span>;<span style=\"color:#691c97\">border<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">1<span style=\"color:#794938\">px<\/span><\/span> <span style=\"color:#b4371f\">solid<\/span> <span style=\"color:#811f24;font-weight:700\">#ddd<\/span>;<span style=\"color:#691c97\">border-radius<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">4<span style=\"color:#794938\">px<\/span><\/span>;-webkit-transition<span style=\"color:#794938\">:<\/span> <span style=\"color:#b4371f\">all<\/span> <span style=\"color:#811f24;font-weight:700\">.2<span style=\"color:#794938\">s<\/span><\/span> ease-in-out;transition<span style=\"color:#794938\">:<\/span> <span style=\"color:#b4371f\">all<\/span> <span style=\"color:#811f24;font-weight:700\">.2<span style=\"color:#794938\">s<\/span><\/span> ease-in-out;}\r\n<span style=\"color:#bf4f24\">.post-content<\/span> <span style=\"color:#bf4f24\">.caption<\/span> {<span style=\"color:#691c97\">padding<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">9<span style=\"color:#794938\">px<\/span><\/span>;<span style=\"color:#691c97\">color<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">#333<\/span>;}\r\n<span style=\"color:#bf4f24\">.post-content<\/span> <span style=\"color:#bf4f24\">.caption<\/span> <span style=\"color:#bf4f24\">p<\/span>{<span style=\"color:#691c97\">font-size<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">14<span style=\"color:#794938\">px<\/span><\/span>;}\r\n<span style=\"color:#bf4f24\">.post-content<\/span> <span style=\"color:#bf4f24\">h4<\/span> {<span style=\"color:#691c97\">font-size<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">18<span style=\"color:#794938\">px<\/span><\/span>;<span style=\"color:#691c97\">margin-top<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">10<span style=\"color:#794938\">px<\/span><\/span>;<span style=\"color:#691c97\">margin-bottom<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">10<span style=\"color:#794938\">px<\/span><\/span>;}\r\n<span style=\"color:#bf4f24\">.post-content<\/span> <span style=\"color:#bf4f24\">a<\/span> {<span style=\"color:#691c97\">color<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">#428bca<\/span>;<span style=\"color:#691c97\">text-decoration<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#b4371f\">none<\/span>;<span style=\"color:#691c97\">background<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#b4371f\">transparent<\/span>;}\r\n<span style=\"color:#bf4f24\">.post-content<\/span> <span style=\"color:#bf4f24\">p<\/span> {<span style=\"color:#691c97\">margin<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">0<\/span> <span style=\"color:#811f24;font-weight:700\">0<\/span> <span style=\"color:#811f24;font-weight:700\">10<span style=\"color:#794938\">px<\/span><\/span>;}\r\n<span style=\"color:#bf4f24\">.no-record<\/span>{<span style=\"color:#691c97\">font-size<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">16<span style=\"color:#794938\">px<\/span><\/span>;<span style=\"color:#691c97\">font-weight<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#b4371f\">bold<\/span>;<span style=\"color:#691c97\">color<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">#DD4B39<\/span>;<span style=\"color:#691c97\">padding<\/span><span style=\"color:#794938\">:<\/span> <span style=\"color:#811f24;font-weight:700\">10<span style=\"color:#794938\">px<\/span><\/span>}\r\n<\/pre>\n<p><span class=\"glyphicon glyphicon-saved\" style=\"color:#FB4314;\"><\/span>&nbsp;That&#8217;s all, we has completed the basic setup of CakePHP 3.x application. We&#8217;ll be discuss about add, edit, delete functionalities at our next tutorial.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CakePHP is an open source PHP 5.4+ framework, helps to building both small and complex systems. It follows the Model-View-Controller (MVC) approach. CakePHP makes building web applications simpler, faster and require less code. CakePHP has <\/p>\n","protected":false},"author":1,"featured_media":696,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[12],"tags":[32,34,33],"class_list":["post-693","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cakephp","tag-cakephp","tag-cakephp-3","tag-cakephp-3-x","cat-12-id","has_thumb"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CakePHP 3.x Tutorial for Beginners - CodexWorld<\/title>\n<meta name=\"description\" content=\"CakePHP 3.x Tutorial for beginner step by step - Learn CakePHP 3.x framework installation, configuration and application development from scratch.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CakePHP 3.x Tutorial for Beginners - CodexWorld\" \/>\n<meta property=\"og:description\" content=\"CakePHP 3.x Tutorial for beginner step by step - Learn CakePHP 3.x framework installation, configuration and application development from scratch.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/\" \/>\n<meta property=\"og:site_name\" content=\"CodexWorld\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/codexworld\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/codexworld\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-31T20:19:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-08-27T11:43:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png\" \/>\n\t<meta property=\"og:image:width\" content=\"494\" \/>\n\t<meta property=\"og:image:height\" content=\"339\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"CodexWorld\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@codexworldblog\" \/>\n<meta name=\"twitter:site\" content=\"@codexworldweb\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"CodexWorld\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/\"},\"author\":{\"name\":\"CodexWorld\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/person\\\/9da51d8fa3cdefeb5ec9c69136d4baf0\"},\"headline\":\"CakePHP 3.x Tutorial for Beginners\",\"datePublished\":\"2015-07-31T20:19:46+00:00\",\"dateModified\":\"2015-08-27T11:43:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/\"},\"wordCount\":611,\"commentCount\":27,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png\",\"keywords\":[\"CakePHP\",\"CakePHP 3\",\"CakePHP 3.x\"],\"articleSection\":[\"CakePHP\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/\",\"name\":\"CakePHP 3.x Tutorial for Beginners - CodexWorld\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png\",\"datePublished\":\"2015-07-31T20:19:46+00:00\",\"dateModified\":\"2015-08-27T11:43:24+00:00\",\"description\":\"CakePHP 3.x Tutorial for beginner step by step - Learn CakePHP 3.x framework installation, configuration and application development from scratch.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png\",\"contentUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png\",\"width\":494,\"height\":339,\"caption\":\"cakephp-3.x-tutorial-for-beginners-by-codexworld\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-3-x-tutorial-for-beginners\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.codexworld.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CakePHP 3.x Tutorial for Beginners\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#website\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/\",\"name\":\"CodexWorld\",\"description\":\"Web &amp; Mobile App Development Company\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codexworld.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#organization\",\"name\":\"CodexWorld\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2014\\\/09\\\/codexworld-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2014\\\/09\\\/codexworld-logo.png\",\"width\":200,\"height\":19,\"caption\":\"CodexWorld\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/codexworld\",\"https:\\\/\\\/x.com\\\/codexworldweb\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/codexworld\",\"https:\\\/\\\/www.youtube.com\\\/codexworld\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/person\\\/9da51d8fa3cdefeb5ec9c69136d4baf0\",\"name\":\"CodexWorld\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g\",\"caption\":\"CodexWorld\"},\"description\":\"CodexWorld is a programming blog, one-stop destination for web professionals \u2014 developers, programmers, freelancers, and site owners.\",\"sameAs\":[\"http:\\\/\\\/www.codexworld.com\",\"https:\\\/\\\/www.facebook.com\\\/codexworld\",\"https:\\\/\\\/x.com\\\/codexworldblog\"],\"url\":\"https:\\\/\\\/www.codexworld.com\\\/author\\\/nitya192265\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CakePHP 3.x Tutorial for Beginners - CodexWorld","description":"CakePHP 3.x Tutorial for beginner step by step - Learn CakePHP 3.x framework installation, configuration and application development from scratch.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/","og_locale":"en_US","og_type":"article","og_title":"CakePHP 3.x Tutorial for Beginners - CodexWorld","og_description":"CakePHP 3.x Tutorial for beginner step by step - Learn CakePHP 3.x framework installation, configuration and application development from scratch.","og_url":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/","og_site_name":"CodexWorld","article_publisher":"https:\/\/www.facebook.com\/codexworld","article_author":"https:\/\/www.facebook.com\/codexworld","article_published_time":"2015-07-31T20:19:46+00:00","article_modified_time":"2015-08-27T11:43:24+00:00","og_image":[{"width":494,"height":339,"url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png","type":"image\/png"}],"author":"CodexWorld","twitter_card":"summary_large_image","twitter_creator":"@codexworldblog","twitter_site":"@codexworldweb","twitter_misc":{"Written by":"CodexWorld","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/#article","isPartOf":{"@id":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/"},"author":{"name":"CodexWorld","@id":"https:\/\/www.codexworld.com\/#\/schema\/person\/9da51d8fa3cdefeb5ec9c69136d4baf0"},"headline":"CakePHP 3.x Tutorial for Beginners","datePublished":"2015-07-31T20:19:46+00:00","dateModified":"2015-08-27T11:43:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/"},"wordCount":611,"commentCount":27,"publisher":{"@id":"https:\/\/www.codexworld.com\/#organization"},"image":{"@id":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png","keywords":["CakePHP","CakePHP 3","CakePHP 3.x"],"articleSection":["CakePHP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/","url":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/","name":"CakePHP 3.x Tutorial for Beginners - CodexWorld","isPartOf":{"@id":"https:\/\/www.codexworld.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/#primaryimage"},"image":{"@id":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png","datePublished":"2015-07-31T20:19:46+00:00","dateModified":"2015-08-27T11:43:24+00:00","description":"CakePHP 3.x Tutorial for beginner step by step - Learn CakePHP 3.x framework installation, configuration and application development from scratch.","breadcrumb":{"@id":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/#primaryimage","url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png","contentUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png","width":494,"height":339,"caption":"cakephp-3.x-tutorial-for-beginners-by-codexworld"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codexworld.com\/"},{"@type":"ListItem","position":2,"name":"CakePHP 3.x Tutorial for Beginners"}]},{"@type":"WebSite","@id":"https:\/\/www.codexworld.com\/#website","url":"https:\/\/www.codexworld.com\/","name":"CodexWorld","description":"Web &amp; Mobile App Development Company","publisher":{"@id":"https:\/\/www.codexworld.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codexworld.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codexworld.com\/#organization","name":"CodexWorld","url":"https:\/\/www.codexworld.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codexworld.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2014\/09\/codexworld-logo.png","contentUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2014\/09\/codexworld-logo.png","width":200,"height":19,"caption":"CodexWorld"},"image":{"@id":"https:\/\/www.codexworld.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/codexworld","https:\/\/x.com\/codexworldweb","https:\/\/www.linkedin.com\/company\/codexworld","https:\/\/www.youtube.com\/codexworld"]},{"@type":"Person","@id":"https:\/\/www.codexworld.com\/#\/schema\/person\/9da51d8fa3cdefeb5ec9c69136d4baf0","name":"CodexWorld","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g","caption":"CodexWorld"},"description":"CodexWorld is a programming blog, one-stop destination for web professionals \u2014 developers, programmers, freelancers, and site owners.","sameAs":["http:\/\/www.codexworld.com","https:\/\/www.facebook.com\/codexworld","https:\/\/x.com\/codexworldblog"],"url":"https:\/\/www.codexworld.com\/author\/nitya192265\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/07\/cakephp-3.x-tutorial-for-beginners-by-codexworld.png","jetpack_shortlink":"https:\/\/wp.me\/p6bxIh-bb","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts\/693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/comments?post=693"}],"version-history":[{"count":3,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts\/693\/revisions"}],"predecessor-version":[{"id":773,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts\/693\/revisions\/773"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/media\/696"}],"wp:attachment":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/media?parent=693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/categories?post=693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/tags?post=693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}