CodeIgniter Application Architecture
The working of Codeigniter Application is mentioned in a simple flowchart given below, which will help you understand the entire process effortlessly in easy steps. Each and every step in the flow chart is explained in elaboration and point wise for your easy grasping.
- As shown in the Flow chart, whenever a request comes to CodeIgniter, it will first go to index.php page.
- In the second step, Routing decides whether to pass the request to step 3 for Caching or to pass the request to step 4 for Security check.
- If the requested page is already in Caching, then Routing will sanction the request to step 3 and the response will go back to the user.
- In case the request page does not exist in the Caching, then Routing, will sanction the requested page to step 4 for Security checks.
- Before passing the request to Application Controller, the Security of the submitted data is checked. After the Security check is done, the Application Controller loads all the necessary Models, Libraries, Helpers, Plugins and Scripts and pass it onto View.
- The View will provide the page with available data and pass that on for Caching, to process this page quickly for future requests.
Directory Structure of Codeigniter
The Directory structure of the Codeigniter is given below in the Screenshot Image:
Further to this the Directory Structure of CodeIgniter is divided into three folders:
- Application
- System
- User_Guide
Application
As indicated in the name the Application folder contains all the code of your application that you are building. This folder is the actual place where we develop the project. Within this application folder there exist several other folders as explained below:
- Cache - The Cache folder contains all the cached pages of your application. These cached pages would increase the overall speed of accessing the pages.
- Config - The Config folder contains various files to configure the application. With the help of config.php file, you can configure the application. Using database.php file, you can configure the database of your application.
- Controllers – This folder contains the controllers of your application. It is the basic part of your application.
- Core - This folder contains the base class of your application.
- Helpers – The helper class of your application can be put in this folder.
- Hooks – With the help of files in this folder you can tap into and modify the inner workings of the framework without hacking the core files.
- Libraries – This folder contains the files of the library developed for your application.
- Logs – This folder contains the files related to the log of the system.
- Language –This folder contains language related files.
- Models – The database login is placed in this file.
- Third_Party – The plugins can be placed in this folder for using it in your application.
- Views – The HTML files of your application can be placed here.
System:
The System folder contains the CodeIgniter core codes, libraries, helpers and other files, which helps make the coding easy. The libraries and helpers are loaded and used for web application development. This folder contains all the CodeIgniter code of consequence again organized into various folders mentioned as below:
- Core – The Core folder contains CodeIgniter core class. Nothing should be modified here. Since all your work will take place in the application folder, if you intend you extend the CodeIgniter core you will have to do it with hooks, which itself exist in the application folder.
- Database – This folder contains the database drivers and database utilities.
- Fonts – This folder contains the font related information and the utilities.
- Helpers – The standard CodeIgniter helpers such as data, cookie, and URL helpers exist in this folder.
- Language –Contains language related files. This can be ignored for now.
- Libraries – The folder contains standard CodeIgniter libraries such as e-mail, calendars, file uploads etc. You can create your own libraries, extend and even replace standard ones. But those will be saved in the application/ libraries directory to keep them separate from the standard CodeIgniter libraries in this particular folder.
User_Guide:
It is the offline version of user guide of CodeIgniter Website. In other words user guide to CodeIgniter. Using this the various functions of libraries, classes and helpers can be learned. It is highly recommended that you go through this user guide before building your first web app using CodeIgniter. Apart from these three folders ( Application, System and User_Guide ) there is one more important file named “ index.php” . In this file you can set the application environment and error level and you can define system and application folder name. We highly recommend you not to edit these settings if you do not have enough knowledge of what you are going to do.