Dj Techblog

A blog on web development

Setup your first codeigniter 4 project

Last modified on Sept 19, 2021

Codeigniter is a php framework that lets you build dynamic websites with very less amount of code. It uses model view controller(MVC) architecture for its file structure. The MVC architecture is great for building dynamic pages by. Since, we need not to code separately for the repetitive task. It has vast set of php library for commonly needed task. So, it greatly reduces the amount of time and code to develop a website.

The Codeigniter 4 is the latest version. The directory structure of codeigniter 4 includes /app, /public, /system, /writable. The /app directory includes all the codes of your dynamic website. You will be building your website within /app directory. Though it contains lots of sub directories but /Config, /Controllers, /Model, /Views are mainly important for us and we will study more about it here. The /public directory will be your document root.

Let's start by installing Codeigniter 4. Go to the official website of Codeigniter 4 and Download.

Extract the files and keep it in the Apache server document root. If you are running Apache on windows machine, then htdocs will be your document root.

Create a virtual host for your new project and make this virtual host point to your /public directory of project. For details, refer to official docs.

Now, run your apache http server. Say, name of the newly creted virtual host is myproject.local. Open browser and type myproject.local in the browser.

Setup first project in codeigniter 4

/app/Config – It contains application specific files which one need to configure for building a website using codeigniter.

/Config/App.php – It contains a public variable $baseURL. The default line contains public $baseURL = '';. You need to configure it to make it to point to your website.

/Config/Database.php - It is the database confguration files which need to be configured to make a database connection.

         public $default = [
		'DSN'      => '',
		'hostname' => 'localhost',
		'username' => 'root',
		'password' => 'Sanivaar1!',
		'database' => 'test1',
		'DBDriver' => 'MySQLi',
		'DBPrefix' => '',
		'pConnect' => true,
		'DBDebug'  => (ENVIRONMENT !== 'development'),
		'charset'  => 'utf8',
		'DBCollat' => 'utf8_general_ci',
		'swapPre'  => '',
		'encrypt'  => false,
		'compress' => false,
		'strictOn' => false,
		'failover' => [],
		'port'     => 3306,

You need to configure hostname,username,password and database here.

/Config/Routes.php - Routing rules are defined in this file. It contains an array $routes that lets you specify your own routing criteria. Manually specifying Routes gives us a performance boost because in that case the application it need not scan all directories. All the routes contains a directory structure that should match with the url. All the routes contains a Controller and a function that will handle the url.

Let's take a basic example $routes->get('/jobs/create', 'Home::create');. Here, /jobs/create points to the create.php file of the /jobs directory which is inside the /Views. Home::create denotes the Controller and function respectively.

What this means, whenever the application sees any url that ends with /jobs/create, it will be handled by the create() function of Home Controller.

/app/Controllers - It is the directory where you actually build your php project. It is the component that actually binds the View with the Model. The Controller receives input from the users and performs different kind of operations like saving it into database. At the same time Controller also reads data from database and present it to database. Every Controller in the Codeigniter is basically a Class.

The other responsibility of the controller is to handle everything that pertains to HTTP requests - redirects, authentication, web safety, encoding, etc. The Controllers contains different functions to handle Views.

/app/Models - Models actually provide a way to Controllers to connect with the table in the database. The Models provides different helper methods to read, insert, update and delete records into the table.

/app/Views - It conatins simple HTML snippets with very few php code of simple logic. Every Controller function should point to a file in in Views directory. The View helps the developer in how to reperesent the data to the users.

The Controller controls the behaviour of data, the Model communicates with database and View actually displays the data. All combined help us build dynamic, scalabale and efficient websites.

Published on Sept 19, 2021

Ad section
Ad section


Debabratta Jena

I mainly write about HTML5, CSS3, Javascript, Angular JS, Ajax, PHP, Mysql, On page SEO, Google Ads, Tag manager, Universal Analytics, Google My Business, SERP, Apache server configuration etc, Yoga is my passion.

Reach to me in the contact us form below

Follow me on

Contact us



Php HTML5 Javascript CSS Ajax Angular JS Google My bisiness Listing Google tag Manager Google Universal Analytics Search Engine Optimization On page SEO Off page SEO Google Marketing platform Digital Marketing Google Ads Mysql Apache Server

Ad section

Subscribe to get email notification about our new post



We neither sell nor share your personal information with any third party. Your identity is safe with us.