
- FuelPHP - Home
- FuelPHP - Introduction
- FuelPHP - Installation
- FuelPHP - Architecture Overview
- FuelPHP - Simple Web Application
- FuelPHP - Configuration
- FuelPHP - Controllers
- FuelPHP - Routing
- FuelPHP - Requests & Response
- FuelPHP - Views
- FuelPHP - Presenters
- FuelPHP - Models & Database
- FuelPHP - Form Programming
- FuelPHP - Validation
- Advanced Form Programming
- FuelPHP - File Uploading
- FuelPHP - Ajax
- FuelPHP - HMVC Request
- FuelPHP - Themes
- FuelPHP - Modules
- FuelPHP - Packages
- Cookie & Session Management
- FuelPHP - Events
- FuelPHP - Email Management
- FuelPHP - Profiler
- Error Handling & Debugging
- FuelPHP - Unit Testing
- Complete Working Example
- FuelPHP Useful Resources
- FuelPHP - Quick Guide
- FuelPHP - Useful Resources
- FuelPHP - Discussion
FuelPHP - Simple Web Application
In this chapter, we will see how to create a simple application in FuelPHP framework. As discussed earlier, you know how to create a new project in Fuel. We can take an example of Employee details.
Lets start by creating a project named Employee using the following command.
oil create employee
After executing the command, an employee project is created with the following file structure −
employee CHANGELOG.md composer.json composer.lock composer.phar CONTRIBUTING.md fuel app bootstrap.php cache classes config lang logs migrations modules tasks tests themes tmp vendor views core base56.php base.php bootstrap.php bootstrap_phpunit.php classes composer.json config CONTRIBUTING.md lang phpunit.xml tasks tests vendor views packages auth email oil orm parser vendor autoload.php composer fuelphp michelf monolog phpseclib psr LICENSE.md oil public assets css fonts img js favicon.ico index.php web.config README.md TESTING.md 42 directories, 21 files
Structure of the Application
FuelPHP framework provides a well-organized application structure. Let us check some of the important files and folders of the application.
fuel − Contains all the PHP files.
public − Contains all the assets which are directly accessed through the browser such as JavaScript, CSS, images, etc.
oil − An executable used to run command line tasks such as generating code or interactive debugging within your application. It's optional.
fuel/app/ − Contains all application-specific PHP files. It contains Models, Views, and Controllers.
fuel/core/ − This is where Fuel framework itself lives.
fuel/packages/ − Contains all fuel packages. By default, fuel will contain three packages: oil, auth, and orm. These packages will not be loaded unless you require them.
fuel/app/config/ − Contains all application-related configuration files. The main application configuration file, config.php file is located here.
fuel/app/classes/ − Contains all the application specific MVC based PHP files. It contains controllers, models, helper classes, libraries, etc.
fuel/app/classes/controller/ − Controllers are placed here.
fuel/app/classes/model/ − Models are placed here.
fuel/app/views/ − Contains view files. There are no specific naming conventions for views.
Add a Controller
As discussed earlier, FuelPHP is based on the Model-View-Controller (MVC) development pattern. MVC is a software approach that separates application logic from presentation. In MVC pattern, the controller plays an important role and every webpage in an application needs to be handled by a controller. By default, controllers are located in fuel/app/classes/controller/ folder. You can create your own Controller class here.
Move to the location fuel/app/classes/controller/ and create employee.php file. To create a new controller, just extend the Controller class provided by FuelPHP, defined as follows.
employee.php
<?php class Controller_Employee extends Controller { public function action_home() { // functionality of the home page echo "FuelPHP-Employee application!"; } }
Now, we have created an Employee Controller and added a public method, action_home, which prints a simple text.
Routing
Routing resolves the web page URI into specific controller and action. Every webpage in a FuelPHP application should go through routing before the actual execution of the controller. By default, each controller can be resolved using the following URI pattern.
<controller>/<action>
Where,
controller is the name of the controller minus namespace, employee
action is the name of the method minus action_ keyword, home
The newly created controller can be accessed by http://localhost:8080/employee/home and it will produce the following result.
Result
