ngthuc / ci-composer
The CodeIgniter framework with composer, include REST server
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >=5.6
- chriskacerguis/codeigniter-restserver: ^3.1
- codeigniter/framework: ^3.1
- vlucas/phpdotenv: ^4.0
README
- OS: Linux 18.04 (recommended)
- PHP: PHP 5.6 or newer
Installation
Create project
- Run composer create project (for init new project) or update (for reload dependencies on new environment) via command line at root folder
- Create project
composer create-project ngthuc/ci-composer
- Reload dependencies
composer update
- Create .env file same [.]env to set-up database
Require project into another project
- Run composer require project (for init new project) or update (for reload dependencies on new environment) via command line at root folder
- Require project
composer require ngthuc/ci-composer
- Reload dependencies
composer update
- Move all files from
/vendor/ngthuc/ci-composer/app/
to the root folder structure:
root # → Root Directory
└── vendor/
└── ngthuc/
└── ci-composer/
└── app/
├── apllication/
├── public/
├── .bowerrc
├── .editorconfig
├── .gitignore
├── .htaccess
├── [.]env
├── bower.json
├── index.php
└── license.txt
- Create .env file same [.]env to set-up database
Usage
- Use Apache - MySQL/MariaDB - PHP (AMP) stack as a software (e.g., XAMPP/AMPPS/WAMP)
- Install AMP stack packages on Linux or Windows, and move project to root directory of Apache (e.g.,
www/
) and use built-in web server (with PHP 5.4.0 or newer) via command:
php -S <address>:<port> -t <YOUR_PROJECT_FOLDER/> # Example use this command on root directory php -S localhost:8000
Usage RestAPI
CodeIgniter Rest Server is available on package.
Step 1: Add this to your controller (should be before any of your code)
use chriskacerguis\RestServer\RestController;
Step 2: Extend your controller
class Example extends RestController
Basic GET example
Here is a basic example. This controller, which should be saved as Api.php
, can be called in two ways:
http://domain/api/users/
will return the list of all usershttp://domain/api/users/id/1
will only return information about the user with id = 1
<?php defined('BASEPATH') OR exit('No direct script access allowed'); use chriskacerguis\RestServer\RestController; class Api extends RestController { function __construct() { // Construct the parent class parent::__construct(); } public function users_get() { // Users from a data store e.g. database $users = [ ['id' => 0, 'name' => 'John', 'email' => 'john@example.com'], ['id' => 1, 'name' => 'Jim', 'email' => 'jim@example.com'], ]; $id = $this->get( 'id' ); if ( $id === null ) { // Check if the users data store contains users if ( $users ) { // Set the response and exit $this->response( $users, 200 ); } else { // Set the response and exit $this->response( [ 'status' => false, 'message' => 'No users were found' ], 404 ); } } else { if ( array_key_exists( $id, $users ) ) { $this->response( $users[$id], 200 ); } else { $this->response( [ 'status' => false, 'message' => 'No such user found' ], 404 ); } } } }
Author
- Nguyen Thuc
- Homepage: ngthuc.com
- Packagist: Packaged by ngthuc
- Email: contact[at]ngthuc.com
Credit
This project using projects or dependencies:
- CodeIgniter by B.C. Institute of Technology (originally from EllisLab).
- PHP dotenv by vlucas.
- CodeIgniter RestServer by chriskacerguis
License
CodeIgniter Core Custom is licensed under MIT License.