How to Download & Install CodeIgniter with Composer

In this tutorial, we are going to look at how you can install and configure CodeIgniter. They are two ways of installation CodeIgniter. You can download the latest version from the CodeIgniter website, or you can use a tool like a composer to automate the installation

In this tutorial, you will learn:

How to Download and Install CodeIgniter Framework

The source code for the CodeIgniter Framework is available on the official CodeIgniter website. If you want to download the latest version of the framework, then you should do it from the official web page.

Step 1) Download CodeIgniter Framework.
Open the following URL in your browser https://codeigniter.com/.

The image below shows the download link to the latest version of the framework

How to Download and Install CodeIgniter Framework

Step 2) Unzip CodeIgniter-4.1.4.zip file.
Clicking the above link will download the framework as a zipped folder and Unzip the contents of CodeIgniter-4.1.4.zip

Step 3) Create a new directory.
Let’s say you want to create a project called the online store. You can follow the following steps to start your project. Create a new directory on your development drive, e.g, D:\Sites\online-store

Step 4) Open the contents of CodeIgniter-4.1.4.
Now, you should be able to see the following files. Copy the above contents to your project directory, e.g., D:\Sites\online-store

How to Download and Install CodeIgniter Framework

Step 5) Open the terminal and Run the following command.
Start the built-in PHP server, just to make sure everything is OK.

cd D:\Sites\ online-store

Run the following command

php -S localhost:3000

Step 6) Open the below URL.
Load the following URL into your browser. http://localhost:3000/

Steps to Download and Install CodeIgniter Framework

If you see above image, all is working well,

What is Composer in CodeIgniter?

The Composer in CodeIgniter is a package management system for PHP. A package is simply a collection of PHP scripts that work together towards a single goal. Based on this definition, CodeIgniter can even though it’s a framework, qualifies to be labeled a package in composer terminologies.

The following image shows how the Composer works in CodeIgniter:

Composer in CodeIgniter

Composer in CodeIgniter

The author of CodeIgniter hosts the package at Packagist which is a central repository for PHP packages, etc.

When the developer runs the composer command to download CodeIgniter, Composer communicates with Packagist and downloads the latest release of the package. In addition to installing frameworks such as CodeIgniter, Composer can also be used to;

  • Install individual packages such as third-party email or database library
  • Update existing packages
  • Remove installed packages

How to Download & Install Composer

Here are the steps to download & install Composer in CodeIgniter:

Step 1) Load the following URL in your browser https://getcomposer.org/download/

Download the setup and follow the installation instructions.

Step 2) Open the command prompt/terminal

Run the following command

composer

You will see the following results

How to Download and Install Composer in CodeIgniter

If you can see the above results, then congratulations, you have successfully installed the composer.

Let’s now create a new project called online-store

Run the following command

composer create-project CodeIgniter/framework online-store

HERE,

  • composer create-project CodeIgniter/framework online-store composer invokes the composer program, create-project downloads the specified project framework which is in the namespace CodeIgniter.

You should be able to see results that is similar to the following

How to Download and Install Composer in CodeIgniter

If you are a big fan of commands on the terminal then this is the way to go otherwise you can use the good old fashioned download the zipped file, unzip and happy coding.

CodeIgniter Config Files

Now that we have successfully installed CodeIgniter let’s look at the configuration directory

The configuration directory is located in

application/config

CodeIgniter Config Files

HERE,

  • autoload.php – specifies the helpers, libraries, drivers, packages, etc that should be loaded when the application starts
  • config.php – contains application configurations such as base url, language, query strings, etc.
  • constants.php – as the name suggests, this file I used to define application constants
  • database.php – contains database connection parameters
  • doctypes.php – defines document types i.e. html4, html5, sv10 etc
  • foreign_chars.php – defines foreign characters that are to say characters that are found in languages such as Russian and others
  • hooks.php – allows you to define your own hooks
  • memcached.php – if you are using CodeIgniter together with Memcached then you can use this file for configurations.
  • migration.php – if you want to use database migrations in CodeIgniter then you can use this file to config the settings.
  • mimes.php – contains file mime types
  • profile.php – contains settings that are used by the built-in CodeIgniter compiler
  • routes.php – contains the application routes
  • smileys.php – contains settings for smileys
  • user_agents.php – contains settings for browser user agents, i.e., Chrome, Opera, Firefox, etc.

CodeIgniter Configurations

Let’s now make some of the most common settings in CodeIgniter:

Open application/config/config.php

Base URL

$config['base_url'] = '';

Sets the base URL. If its blank then CodeIgniter will set it for you automatically. If you want to be explicit about your base URL, then you can use the something like the following

$config['base_url'] = 'http://localhost:3000';

HERE,

  • $config[‘base_url’] = ‘http://localhost:3000’; sets the base URL to localhost running on port 3000.

Class Prefix

CodeIgniter uses the prefix CI_Classname. As a best practice and to avoid collisions with internal classes, you can prefix your class, i.e., MY_Classname. The following line is used to set your class prefix

$config['subclass_prefix'] = 'MY_';

Query Strings

These are parameters that are visited in the URL, i.e., example.com/index.php?q=eggs. If you would like to use such URLs, then you will have to set

$config['enable_query_strings'] = FALSE;
To
$config['enable_query_strings'] = TRUE;

Other settings

They are many settings that you can set in config.php including date formats, cache and view paths, etc. much of what you configure depends on your application needs

How to remove index.php in CodeIgniter

CodeIgniter is an MVC framework. This means it has a single entry point into the application which is index.php. It doesn’t matter what URL you access. They all go through index.php. by default, index.php is shown in the URL as shown in the example below

example.com/index.php?q=eggs

The URL looks longer and weird. The good thing is you can configure CodeIgniter to remove that.

Open application/config/config.php

Locate the following line:

$config['index_page'] = 'index.php';
Set it to the following
$config['index_page'] = '';

HERE,

  • We are using mod_rewrite to remove the page so as per requirement, this should be set to blank.

Next, we need to create the .htaccess that rewrites the URLs

Add a new file .htacces in the root directory of the application

Add the following code:

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

HERE,

  • The above code is for configuring web servers that run apache server. The above code basically gets the URI parameters and executes them via index.php even if it’s not showing in the browser URL.

Summary

  • They are two ways of installation CodeIgniter. You can download the latest version from the CodeIgniter website, or you can use composer to automate the installation.
  • The composer is a package management system for PHP.
  • A composer can be used for: Install individual packages, Update existing packages remove installed packages.