{"id":6909,"date":"2016-08-11T06:54:32","date_gmt":"2016-08-11T04:54:32","guid":{"rendered":"https:\/\/anexia.com\/stagingblog\/?p=6909"},"modified":"2022-04-21T15:22:01","modified_gmt":"2022-04-21T13:22:01","slug":"codeigniter-4-what-will-change","status":"publish","type":"post","link":"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/","title":{"rendered":"CodeIgniter 4 &#8211; What will change?"},"content":{"rendered":"<p>As already mentioned in the last post about CodeIgniter, the framework which was originally developed by <a href=\"https:\/\/ellislab.com\/\" target=\"_blank\" rel=\"noopener\">EllisLab<\/a>, was adopted by the <a href=\"http:\/\/www.bcit.ca\/\" target=\"_blank\" rel=\"noopener\">BCIT <\/a>(British Columbia Institute of Technology).<\/p>\n<p>Just a few weeks after this <span id=\"result_box\" class=\"\" lang=\"en\">acquisition, the<\/span> new improved version 3.x of this framework was released.<\/p>\n<p>Although the framework had now a relative solid base, it still lagged in parts strongly when comparing with the frameworks of its competitors.<\/p>\n<p>So CodeIgniter had, compared to <a href=\"https:\/\/laravel.com\/\" target=\"_blank\" rel=\"noopener\">Laravel<\/a>, fewer chances to score with developers, because the competitor frameworks&#8216; functionality and coding style were always a bit better.<\/p>\n<p>However with version 4 of CodeIgniter the tide could turn!<\/p>\n<p>&nbsp;<\/p>\n<h1>The big move<\/h1>\n<p class=\"\"><span id=\"result_box\" class=\"\" lang=\"en\"><span class=\"\">In the official CodeIgniter forum, it was already announced on 26\/06\/2016, that the first milestone of CI4 has now been achieved. At this time the repository was also transferred on GitHub:<\/span><\/span> <a href=\"https:\/\/github.com\/bcit-ci\/CodeIgniter4\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/bcit-ci\/CodeIgniter4<\/a><\/p>\n<p>A documentation can be found <a href=\"https:\/\/codeigniter4.github.io\/userguide\/\" target=\"_blank\" rel=\"noopener\">here<\/a>. But please be aware that these is not finished yet, and therefore it&#8217;s still in partls rather sketchy.<\/p>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">The most striking and obvious change to the previous versions is the fact, that there is now a <span class=\"\">public<\/span><span class=\"\"> directory<\/span><span class=\"\">.<\/span><\/span><\/p>\n<p>Like in other frameworks this has an essential and security-related background: the separation of application\/framework and public resources (as like Javascript, CSS or images).<\/p>\n<p>Due to the fact, that the framework will be revealed not so freely, it is much more difficult for potential attackers to find vulnerabilities or deliberately exploits.<\/p>\n<p>The only neccessary modification on the server-side is a little change in the vhost configuration (if available or possible). The document root will no longer be placed in the root directory of CodeIgniter, but now in the public folder.<\/p>\n<p>Such a vhost configuraton could now look like this:<\/p>\n<pre class=\"lang:apache decode:true \">&lt;VirtualHost *:80&gt;\r\n\tServerName codeigniter4.local\r\n\tDocumentRoot \/var\/www\/vhosts\/codeigniter4.local\/public\/\r\n&lt;\/VirtualHost&gt;<\/pre>\n<p>&nbsp;<\/p>\n<h2>The most significant changes<\/h2>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">It is quite obvious that the minimum requirement for <span class=\"\">the PHP interpreter was set relatively high<\/span>. So f<span class=\"\">or the<\/span> <span class=\"\">installation and operation<\/span> PHP &gt;7.0 is <span class=\"\">required<\/span>.<\/span><\/p>\n<p>A brief view to the folder structure of the framework remembers at a first glance quite strong to Zend 1 or Laravel.<\/p>\n<p>CI4 is now (such as already known e.g. from Laravel) ready for database migrations and seeds. So the deployment itself and also deploying changes is now much easier, because database adjustments must no longer be done manually. Now this happens automatically. Optional seeders are then subsequently <span id=\"result_box\" class=\"\" lang=\"en\">filling the database <span class=\"\">with dummy data<\/span><span class=\"\">.<\/span><\/span><\/p>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">The configuration of the environment (in which the framework is running, and also the related configurations can be set) can now be done via DotENV (.env).<\/span><span id=\"result_box\" class=\"\" lang=\"en\"><\/span><\/p>\n<p>For comparison: CI2 offered only the possibility for a single environment, CI3 however for three (development, testing, production).<\/p>\n<p>&nbsp;<\/p>\n<h2>Installation<\/h2>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">CodeIgniter now relies after its rewrite with version 4 to the (already many familiar) PSR-4 autoloading in combination with <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener\">Composer<\/a>.<\/span><\/p>\n<p>For all those who don&#8217;t know what Composer is: this is a command line based package management system especially for PHP, by which always the latest vendor packages will be installed, and also their versions can be centrally managed and updated.<\/p>\n<p>The current development version of the CI4 framework mainly uses packages from Zend framework and Symfony framework.<\/p>\n<p>After copying all files from GitHub to the appropriate directory on the server, Composer has to be set up initially.<\/p>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">For this purpose, a new terminal (or command promt \/ CMD on Windows systems) has to be opened. Then navigate to the root directory of CodeIgniter.<\/span><\/p>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">If Composer is installed on the relevant system, it can now be initialized for the new project via <span class=\"lang:default decode:true crayon-inline\">composer setup<\/span> .<\/span><\/p>\n<p><a href=\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_composer-setup.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1560\" src=\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_composer-setup.png\" alt=\"CodeIgniter 4: Composer Setup\" width=\"580\" height=\"384\" srcset=\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_composer-setup.png 582w, https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_composer-setup-325x215.png 325w, https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_composer-setup-300x198.png 300w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><\/a><\/p>\n<p>When you now open the vhosts&#8216; URL in browser, you can see the welcome-screen of CI4.<\/p>\n<p><a href=\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_welcome.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1563\" src=\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_welcome.png\" alt=\"CodeIgniter 4: Welcome-Screen\" width=\"580\" height=\"314\" srcset=\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_welcome.png 1920w, https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_welcome-325x176.png 325w, https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_welcome-300x163.png 300w, https:\/\/anexia.com\/blog\/wp-content\/uploads\/2016\/06\/codeigniter4_welcome-1024x555.png 1024w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><\/a><\/p>\n<p>If you have a look at the &#8222;public&#8220; folder you will find already a .htaccess file, which already contains a basic configuration.<\/p>\n<p>F<span id=\"result_box\" class=\"\" lang=\"en\">urthermore, there is also a robots.txt, which currently blocks all crawling bots. The robots.txt is a text file with information for  crawlers of search engines &#8211; e.g. which pages should be indexed, and <span class=\"\">which not.<\/span><\/span><\/p>\n<p>&nbsp;<\/p>\n<h2>Configuration<\/h2>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">The <span class=\"\">basic configuration<\/span>, which <span class=\"\">was located up to <\/span>CI3 under <strong>\/application\/config.php<\/strong>, has now moved to <strong><span class=\"\">\/application\/Config\/App.php<\/span><\/strong> (note the uppercase and lowercase letters in the paths and filenames!<span class=\"\">)<\/span><\/span><\/p>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">The configuration is now no longer just a simple array. It has turned to an independent class <span class=\"\">(<\/span><span class=\"\">with<\/span> <span class=\"\">inheritance<\/span> <span class=\"\">and<\/span> <span class=\"\">namespaces<\/span><span class=\"\">)<\/span><span class=\"\">:<\/span><\/span><\/p>\n<pre class=\"lang:php decode:true \">&lt;?php namespace Config;\r\n\r\nuse CodeIgniter\\Config\\BaseConfig;\r\n\r\nclass App extends BaseConfig\r\n{\r\n\r\n\t\/*\r\n\t|--------------------------------------------------------------------------\r\n\t| Base Site URL\r\n\t|--------------------------------------------------------------------------\r\n\t|\r\n\t| URL to your CodeIgniter root. Typically this will be your base URL,\r\n\t| WITH a trailing slash:\r\n\t|\r\n\t|\thttp:\/\/example.com\/\r\n\t|\r\n\t| If this is not set then CodeIgniter will try guess the protocol, domain\r\n\t| and path to your installation. However, you should always configure this\r\n\t| explicitly and never rely on auto-guessing, especially in production\r\n\t| environments.\r\n\t|\r\n\t*\/\r\n\tpublic $baseURL = '';\r\n\r\n\t\/*\r\n\t|--------------------------------------------------------------------------\r\n\t| Index File\r\n\t|--------------------------------------------------------------------------\r\n\t|\r\n\t| Typically this will be your index.php file, unless you've renamed it to\r\n\t| something else. If you are using mod_rewrite to remove the page set this\r\n\t| variable so that it is blank.\r\n\t|\r\n\t*\/\r\n\tpublic $indexPage = 'index.php';\r\n\t...<\/pre>\n<p><span id=\"result_box\" class=\"\" lang=\"en\"><span class=\"\"> For smooth operation<\/span> of CI4 it&#8217;s necessary, that the base URL is configured here once. This was chosen deliberately for security reasons<span class=\"\">.<\/span><\/span><\/p>\n<p><span class=\"lang:php decode:true crayon-inline \">public $baseURL = &#8218;http:\/\/codeigniter4.local\/&#8216;;<\/span><\/p>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">The optional configuration of the database is defined in the <strong>Database.php<\/strong> file. It should be noted <span class=\"\">here<\/span> <span class=\"\">that there are<\/span> two configurations available: one for the application itself and a second for testing purposes (as like with <span class=\"\">PHPUnit<\/span><span class=\"\">)<\/span>.<\/span><\/p>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">These parameters <span class=\"\">can also be configured<\/span> via DotEnv (.env). For this purpose, those parameters can also be defined in the <span class=\"\">.env<\/span> file <span class=\"\">in the frameworks&#8216; root directory<\/span><span class=\"\">.<\/span><\/span><\/p>\n<pre class=\"lang:default decode:true \">database.default.username = 'root';\r\ndatabase.default.password = 'passw0rd!';\r\ndatabase.default.database = 'codeigniter4';<\/pre>\n<p>&nbsp;<\/p>\n<p><strong><em>C<span id=\"result_box\" class=\"\" lang=\"en\"><span class=\"\">oding<\/span> examples will follow once the version 4 of the framework has become reasonably stable. Currently there are still some bugs, by which, inter alia, the migrations are not working p<span class=\"\">roperly<\/span>.<\/span><\/em><\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h1>Roadmap<\/h1>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">Here&#8217;s a brief listing of the already implemented and still planned functions. These are taken from <span class=\"\">the updated<\/span> user guide.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2>Milestone 1<\/h2>\n<p>In the first milestone, these functions have been implemented or completely rewritten:<\/p>\n<ul>\n<li>Autoloader (PSR-4)<\/li>\n<li>Logging<\/li>\n<li>Exception Handling<\/li>\n<li>HTTP Request\/Response<\/li>\n<li>Routing<\/li>\n<li>Controllers<\/li>\n<li>Models<\/li>\n<li>Database (MySQL &amp; Postgres)<\/li>\n<li>Config<\/li>\n<li>Security<\/li>\n<li>Views<\/li>\n<li>Sessions<\/li>\n<li>Basic debugging and profiling<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>Milestone 2<\/h2>\n<p>These functions are currently under active development (as of July\/August 2016):<\/p>\n<ul>\n<li>The helpers<\/li>\n<li>Language\/Localization features<\/li>\n<li>Caching<\/li>\n<li>Email<\/li>\n<li>Encryption<\/li>\n<li>Form Validation<\/li>\n<li>Image Library<\/li>\n<li>Pagination<\/li>\n<li>Uploader<\/li>\n<\/ul>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">It&#8217;s quite possible that there will be after the completion of this milestone already a first stable version or at least a release candidate (RC) available<span class=\"\">.<\/span><\/span><\/p>\n<p><span id=\"result_box\" class=\"\" lang=\"en\">The planned completion of this milestone is in December <span class=\"\">2016.<\/span><\/span><\/p>\n<p>&nbsp;<\/p>\n<h2>Milestone 3<\/h2>\n<p>T<span id=\"result_box\" class=\"\" lang=\"en\">his milestone represents on the current state only enhancements and new functions, which (theoretically) could be supplied also in form of updates.<\/span><\/p>\n<ul>\n<li>FTP<\/li>\n<li>XML-RPC<\/li>\n<li>Zip<\/li>\n<li>Typography<\/li>\n<li>Template Parser<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h1>Conclusion<\/h1>\n<p><span id=\"result_box\" class=\"\" lang=\"en\"><span class=\"\">A view of the<\/span> current state of development of <span class=\"\">CodeIgniter<\/span> 4 makes at a first glance a more than positive impression. <span class=\"\">Since this<\/span> version of the framework already requires PHP 7 as a minimum requirement, it is on the cutting edge of technology. However, at this time, many internet providers <span class=\"\">and<\/span> shared hosting providers still are not supporting the latest PHP versions, and therefore many of them aren&#8217;t able to offer PHP in version 7.<\/span><\/p>\n<p>In <span id=\"result_box\" class=\"\" lang=\"en\">my opinion, the BCIT with their CI4 has a good chance to establish itself adequately, because now also almost all ailments <span class=\"\">of the previous versions are solved<\/span><span class=\"\">, and<\/span> <span class=\"\">the<\/span> <span class=\"\">software was completely written<\/span> <span class=\"\">from scratch<\/span><span class=\"\">.<\/span><\/span><\/p>\n<p>S<span id=\"result_box\" class=\"\" lang=\"en\">ince the framework is still in the development phase, it should not be <span class=\"\">used<\/span> <span class=\"\">in<\/span> <span class=\"\">production environments<\/span>!<\/span><\/p>\n<p>And finally <span id=\"result_box\" class=\"\" lang=\"en\">still <span class=\"\">good news<\/span> <span class=\"\">to all the followers<\/span> of the 3.x version: the BCIT <span class=\"\">is already planning<\/span> <span class=\"\">a new update<\/span>: v3.1.0 &#8211; this <span class=\"\">will<\/span> <span class=\"\">be<\/span> also the last update for <span class=\"\">the 3.x series<\/span><span class=\"\">.<\/span><\/span><\/p>\n<p><span id=\"result_box\" class=\"\" lang=\"en\"><span class=\"\">For existing<\/span> 3.x projects there should be a possibility to upgrade to version 4 (but this wasn&#8217;t <span class=\"\">officially confirmed by the BCIT yet<\/span><span class=\"\">)<\/span>.<\/span><\/p>\n<p><span id=\"result_box\" class=\"short_text\" lang=\"en\">So we can stay <span class=\"\">curious to see<\/span> <span class=\"\">what&#8217;s coming<\/span> <span class=\"\">in future times!<\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>CodeIgniter had, compared to Laravel, fewer chances to score with developers. However with version 4 of CodeIgniter the tide could turn!<\/p>\n","protected":false},"author":15,"featured_media":515,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1135],"tags":[1815,1817,1657,1821,1819,1329,1614,1823],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CodeIgniter 4 - What will change? - ANEXIA Blog<\/title>\n<meta name=\"description\" content=\"CodeIgniter had, compared to Laravel, fewer chances to score with developers. However with version 4 of CodeIgniter the tide could turn!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CodeIgniter 4 - What will change? - ANEXIA Blog\" \/>\n<meta property=\"og:description\" content=\"CodeIgniter had, compared to Laravel, fewer chances to score with developers. However with version 4 of CodeIgniter the tide could turn!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/\" \/>\n<meta property=\"og:site_name\" content=\"ANEXIA Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/anexiagmbh\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-08-11T04:54:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-21T13:22:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Manuel-Wutte_anexia-blau_web.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"1067\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Manuel Wutte\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@_ANEXIA\" \/>\n<meta name=\"twitter:site\" content=\"@_ANEXIA\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Manuel Wutte\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/\",\"url\":\"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/\",\"name\":\"CodeIgniter 4 - What will change? - ANEXIA Blog\",\"isPartOf\":{\"@id\":\"https:\/\/anexia.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Manuel-Wutte_anexia-blau_web.jpg\",\"datePublished\":\"2016-08-11T04:54:32+00:00\",\"dateModified\":\"2022-04-21T13:22:01+00:00\",\"author\":{\"@id\":\"https:\/\/anexia.com\/blog\/#\/schema\/person\/926f6b9e5aeed88b145cf86d87fd09de\"},\"description\":\"CodeIgniter had, compared to Laravel, fewer chances to score with developers. However with version 4 of CodeIgniter the tide could turn!\",\"breadcrumb\":{\"@id\":\"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/#primaryimage\",\"url\":\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Manuel-Wutte_anexia-blau_web.jpg\",\"contentUrl\":\"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Manuel-Wutte_anexia-blau_web.jpg\",\"width\":1600,\"height\":1067},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/anexia.com\/blog\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CodeIgniter 4 &#8211; What will change?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/anexia.com\/blog\/#website\",\"url\":\"https:\/\/anexia.com\/blog\/\",\"name\":\"ANEXIA Blog\",\"description\":\"[:de] ANEXIA Blog - Technischen Themen, Anexia News und Insights [:]\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/anexia.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/anexia.com\/blog\/#\/schema\/person\/926f6b9e5aeed88b145cf86d87fd09de\",\"name\":\"Manuel Wutte\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/anexia.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9528a61f48f4294cd5f7cd8a4141bd55?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9528a61f48f4294cd5f7cd8a4141bd55?s=96&d=mm&r=g\",\"caption\":\"Manuel Wutte\"},\"url\":\"https:\/\/anexia.com\/blog\/author\/mwu\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CodeIgniter 4 - What will change? - ANEXIA Blog","description":"CodeIgniter had, compared to Laravel, fewer chances to score with developers. However with version 4 of CodeIgniter the tide could turn!","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:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/","og_locale":"de_DE","og_type":"article","og_title":"CodeIgniter 4 - What will change? - ANEXIA Blog","og_description":"CodeIgniter had, compared to Laravel, fewer chances to score with developers. However with version 4 of CodeIgniter the tide could turn!","og_url":"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/","og_site_name":"ANEXIA Blog","article_publisher":"https:\/\/www.facebook.com\/anexiagmbh\/","article_published_time":"2016-08-11T04:54:32+00:00","article_modified_time":"2022-04-21T13:22:01+00:00","og_image":[{"width":1600,"height":1067,"url":"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Manuel-Wutte_anexia-blau_web.jpg","type":"image\/jpeg"}],"author":"Manuel Wutte","twitter_card":"summary_large_image","twitter_creator":"@_ANEXIA","twitter_site":"@_ANEXIA","twitter_misc":{"Verfasst von":"Manuel Wutte","Gesch\u00e4tzte Lesezeit":"7\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/","url":"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/","name":"CodeIgniter 4 - What will change? - ANEXIA Blog","isPartOf":{"@id":"https:\/\/anexia.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/#primaryimage"},"image":{"@id":"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/#primaryimage"},"thumbnailUrl":"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Manuel-Wutte_anexia-blau_web.jpg","datePublished":"2016-08-11T04:54:32+00:00","dateModified":"2022-04-21T13:22:01+00:00","author":{"@id":"https:\/\/anexia.com\/blog\/#\/schema\/person\/926f6b9e5aeed88b145cf86d87fd09de"},"description":"CodeIgniter had, compared to Laravel, fewer chances to score with developers. However with version 4 of CodeIgniter the tide could turn!","breadcrumb":{"@id":"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/#primaryimage","url":"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Manuel-Wutte_anexia-blau_web.jpg","contentUrl":"https:\/\/anexia.com\/blog\/wp-content\/uploads\/2015\/01\/Manuel-Wutte_anexia-blau_web.jpg","width":1600,"height":1067},{"@type":"BreadcrumbList","@id":"https:\/\/anexia.com\/blog\/en\/codeigniter-4-what-will-change\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/anexia.com\/blog\/de\/"},{"@type":"ListItem","position":2,"name":"CodeIgniter 4 &#8211; What will change?"}]},{"@type":"WebSite","@id":"https:\/\/anexia.com\/blog\/#website","url":"https:\/\/anexia.com\/blog\/","name":"ANEXIA Blog","description":"[:de] ANEXIA Blog - Technischen Themen, Anexia News und Insights [:]","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/anexia.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/anexia.com\/blog\/#\/schema\/person\/926f6b9e5aeed88b145cf86d87fd09de","name":"Manuel Wutte","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/anexia.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9528a61f48f4294cd5f7cd8a4141bd55?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9528a61f48f4294cd5f7cd8a4141bd55?s=96&d=mm&r=g","caption":"Manuel Wutte"},"url":"https:\/\/anexia.com\/blog\/author\/mwu\/"}]}},"lang":"en","translations":{"en":6909,"de":1555},"amp_enabled":true,"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/posts\/6909"}],"collection":[{"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/comments?post=6909"}],"version-history":[{"count":1,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/posts\/6909\/revisions"}],"predecessor-version":[{"id":6912,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/posts\/6909\/revisions\/6912"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/media\/515"}],"wp:attachment":[{"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/media?parent=6909"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/categories?post=6909"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/anexia.com\/blog\/wp-json\/wp\/v2\/tags?post=6909"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}