SlideShare a Scribd company logo
1 of 97
Download to read offline
RESTful API Design & Implementation with
CodeIgniter PHP Framework
2012 PHP Conference
2012 PHPConf 2
Who Am I
Bo-Yi Wu
@appleboy
http://blog.wu-boy.com
任職於瑞昱半導體 RealTek(IC Design House)
- TV 多媒體部門
- Sencha Touch 2, Backbone.js, CodeIgniter,
Node.js, MongoDB, MySQL, Twitter Bootstrap,
Twitter Hogan ...
2012 PHPConf 3
Who Am I
● Open Source Contributions (github: appleboy)
– CodeIgniter-Native-Session
– CodeIgniter-i18n
– CodeIgniter-Template
– CodeIgniter-Nexmo-Message
– CodeIgniter-TextMagic-API
2012 PHPConf 4
My Focus
● CodeIgbiter 3.0.x develop branch
– Support Native Session
– Support HMVC
– Support Sparks Package Management System
● Laravel develop branch
● Javascript (Node.js, Socket.io, Express,
Backbone.js)
2012 PHPConf 5
Outline
● Restful API Basic
● API Design
● Implementing API with CodeIgniter
● Verify your API
2012 PHPConf 6
Restful API BasicRestful API Basic
2012 PHPConf 7
Why Use Restful?
Restful API Service
Database
(MySQL,MongoDB)
2012 PHPConf 8
What is REST? Http Method
● POST
● GET
● PUT
● DELETE
● OPTIONS
Define in RFC 2616
2012 PHPConf 9
並非所有的瀏覽器都支援
PUT, DELETE
http://api.jquery.com/jQuery.ajax/
2012 PHPConf 10
如何解決未支援的瀏覽器
2012 PHPConf 11
<input type='hidden' name='type' value='PUT'>
2012 PHPConf 12
將PUT,DELETE一併寫成POST API
2012 PHPConf 13
REST Response Format?
● JSON*
● XML
● Array
● Html
● CSV
2012 PHPConf 14
現在皆以 JSONJSON 為主
格式簡單 , 相容性高 , 閱讀方便
2012 PHPConf 15
Javascript Object Notation
{
key1: 'value1',
key2: 20121103
key3: [1,2,3]
}
2012 PHPConf 16
JSON in Javascript is familiar
var object = {
key1: 'value1',
key2: 20121103
key3: [1,2,3]
}
2012 PHPConf 17
JSON in PHP (encode)
PHP
<?php
echo json_encode(array(
'key' => 'value'
));
Outputs
{key: 'value'}
2012 PHPConf 18
JSON in PHP (decode)
PHP
<?php
$json_data = '{key: value}';
echo json_decode({
'key' => 'value'
});
Outputs
array(
'key' => 'value'
);
2012 PHPConf 19
你不可不知的 JSONJSON 基本介紹
http://goo.gl/Wvhwb
2012 PHPConf 20
API DesignAPI Design
2012 PHPConf 21
良好的 API 設計
● Simple 簡單
● Intuitive 直觀的
● Stable 穩定
● Well Document 線上文件
2012 PHPConf 22
Using Facebook APIUsing Facebook API
2012 PHPConf 23
Fucking Stable and DocumentFucking Stable and Document
2012 PHPConf 24
請務必撰寫 APIAPI 線上文件
2012 PHPConf 25
大家每天在花在討論的時間太長
Debug 時間變少
2012 PHPConf 26
良好的文件減少人與人溝通成本
團隊合作
2012 PHPConf 27
Http Method RFC 2616
● Create
● Read
● Update
● Delete
● POST
● GET
● PUT
● DELETE
CRUD Method
2012 PHPConf 28
API URL DefineAPI URL Define
2012 PHPConf 29
/API//API/ModuleModule//MethodMethod
2012 PHPConf 30
Format 1: Topic Module
● /API/Topic/Add
● /API/Topic/Update
● /API/Topic/Delete
● /API/Topic/List
2012 PHPConf 31
Format 2: Topic Module
● /API/Topic/Add
● /API/Topic/Update/1234
● /API/Topic/Delete/1234
● /API/Topic/List/sort/asc
2012 PHPConf 32
個人偏好格式 1
2012 PHPConf 33
不用記住多種不同 APIAPI 格式
2012 PHPConf 34
API Response FormatAPI Response Format
2012 PHPConf 35
請勿常常修改 formatformat
( 除非你想黑掉 )
2012 PHPConf 36
Example Create API
var object = {
title: 'value1',
type: 'value2',
user_id: '1000'
};
Input Output
{
title: 'value1',
type: 'value2',
user_id: '1000',
success_text: 'ok'
}
http://site.com/API/Topic/Add
2012 PHPConf 37
Example Create API
var object = {
title: 'value1',
type: 'value2'
};
Input Output
{
title: 'value1',
type: 'value2',
user_id: '1000',
success_text: 'ok'
}
http://site.com/API/Topic/Add/1000
2012 PHPConf 38
Example Update API
var object = {
id: '1000',
title: 'value1',
type: 'value2'
};
Input Output
{
id: '1000',
title: 'value1',
type: 'value2',
success_text: 'ok'
}
http://site.com/API/Topic/Update
2012 PHPConf 39
Example Update API
var object = {
title: 'value1',
type: 'value2'
};
Input Output
{
id: '1000',
title: 'value1',
type: 'value2',
success_text: 'ok'
}
http://site.com/API/Topic/Update/1000
2012 PHPConf 40
Example Delete API (single)
var object = {
id: 1000
};
Input Output
{
id: '1000',
success_text: 'ok'
}
http://site.com/API/Topic/Delete
2012 PHPConf 41
Example Delete API (multiple)
var object = {
id: [1000, 1001]
};
Input Output
{
id: '1000',
success_text: 'ok'
}
http://site.com/API/Topic/Delete
2012 PHPConf 42
Example Delete API
var object = {
};
Input Output
{
id: '1000',
success_text: 'ok'
}
http://site.com/API/Topic/Delete/1000
2012 PHPConf 43
Example Read API (Single)
var object = {
id: 1000
};
Input Output
{
id: '1000',
success_text: 'ok',
item: {
title: 'Kate Upton'
}
}
http://site.com/API/Topic/List
2012 PHPConf 44
Example Search API (Multiple)
var object = {
q: 'Kate Upton'
};
Input Output{
id: '1000',
success_text: 'ok',
items: [
{title: 'I am kate'},
{title: 'I am Upton'}
]
}
http://site.com/API/Topic/List
2012 PHPConf 45
Kate Upton
2012 PHPConf 46
多虧了Youtube APIYoutube API讓我在上班時增加了很多動力
2012 PHPConf 47
How to handle versioning?How to handle versioning?
2012 PHPConf 48
內部 APIAPI 大改版
2012 PHPConf 49
Old: http://site.com/v1/API/Topic/Add
New: http://site.com/v2/API/Topic/Add
2012 PHPConf 50
利用 URI RoutingURI Routing 功能
Framework or mod_rewriteFramework or mod_rewrite
2012 PHPConf 51
http://site.com/API/Topic/Add
http://site.com/v1/API/Topic/Add
= 
2012 PHPConf 52
API ImplementationAPI Implementation
2012 PHPConf 53
不用自己造輪子
2012 PHPConf 54
Phil Sturgeon’s
CodeIgniter REST Server
http://github.com/philsturgeon/codeigniter-restserver
2012 PHPConf 55
Requirements
● PHP 5.2 or greater
● CodeIgniter 2.1.x to 3.0-dev
2012 PHPConf 56
How to install?How to install?
2012 PHPConf 57
Installation
● Drag and drop the following files into your
application's directories
– application/libraries/Format.php
– application/libraries/REST_Controller.php
– application/config/rest.php
2012 PHPConf 58
Setup the config
● $config['rest_default_format'] = 'json';
● $config['rest_enable_keys'] = false;
● $config['rest_enable_logging'] = false;
● $config['rest_enable_limits'] = false;
● $config['rest_ajax_only'] = false;
2012 PHPConf 59
Include REST ControllerInclude REST Controller
2012 PHPConf 60
require(APPPATH.'/libraries/REST_Controller.php');
2012 PHPConf 61
Handling Requests
class Topic extends REST_Controller
{
public function index_get() {}
public function index_post() {}
public function index_update() {}
public function index_delete() {}
}
2012 PHPConf 62
CRUD Requests
class Topic extends REST_Controller
{
public function list_get() {}
public function add_post() {}
public function update_update() {}
public function delete_delete() {}
}
2012 PHPConf 63
Accessing parameters is also easyAccessing parameters is also easy
2012 PHPConf 64
Parameters
● GET
– $this->get('blah');
● POST
– $this->post('blah');
● UPDATE
– $this->update('blah');
● DELETE
– $this->delete('blah');
2012 PHPConf 65
Create API
var object = {
title: 'Kate Upton',
text: 'Beautiful girl'
};
Input Output
{
id: '1000',
success_text: 'ok',
}
http://site.com/API/Topic/Add
2012 PHPConf 66
Create API (POST)
public function Add_post()
{
if (!$this->post('title')) {
$this->response(array('error' => 'Title is required'), 404);
}
$output = $this->lib_topic->insert($data);
if ($output) {
$this->response($output, 200);
} else {
$this->response(array('error' => 'Insert error'), 404);
}
}
2012 PHPConf 67
Update API
var object = {
id: 1000,
title: 'Kate Upton',
text: 'Beautiful girl'
};
Input Output
{
id: '1000',
success_text: 'ok',
}
http://site.com/API/Topic/Update
2012 PHPConf 68
Update API (PUT)
public function Update_put()
{
if (!$this->update('id')) {
$this->response(array('error' => 'ID is required'), 404);
}
$output = $this->lib_topic->update($this->update('id'), $data);
if ($output) {
$this->response($output, 200);
} else {
$this->response(array('error' => 'Insert error'), 404);
}
}
2012 PHPConf 69
Delete API
var object = {
id: 1000
};
Input Output
{
id: '1000',
success_text: 'ok',
}
http://site.com/API/Topic/Delete
2012 PHPConf 70
Delete API (DELETE)
public function Delete_delete()
{
if (!$this->delete('id')) {
$this->response(array('error' => 'ID is required'), 404);
}
$output = $this->lib_topic->delete($this->delete('id'));
if ($output) {
$this->response($output, 200);
} else {
$this->response(array('error' => 'Insert error'), 404);
}
}
2012 PHPConf 71
Read API (GET)
var object = {
id: 1000,
type: [1, 2]
};
Input Output
{
id: '1000',
success_text: 'ok',
item: {
title: 'Kate Upton'
}
}
http://site.com/API/Topic/List
2012 PHPConf 72
Read API (GET)
public function List_get()
{
if (!$this->get('id') or ) {
$this->response(array('error' => 'ID is required'), 404);
}
$output = $this->lib_topic->list($this->get('id'), $this->get('type'));
if ($output) {
$this->response($output, 200);
} else {
$this->response(array('error' => 'Insert error'), 404);
}
}
2012 PHPConf 73
目錄結構
2012 PHPConf 74
Folder
application
controllers/
api/
topic.php
user.php
acl.php
system
index.php
2012 PHPConf 75
Routing (config/routes.php)
Default URL http://site.com/api/topic/Add
New URL http://site.com/API/Topic/Add
$route['API/Topic/(:any)'] = 'api/topic/$1';
$route['API/User/(:any)'] = 'api/user/$1';
$route['API/Acl/(:any)'] = 'api/acl/$1';
2012 PHPConf 76
Verify Your APIVerify Your API
2012 PHPConf 77
一樣不需要自己造輪子
2012 PHPConf 78
Phil Sturgeon’s
CodeIgniter REST Client
https://github.com/philsturgeon/codeigniter-restclient
2012 PHPConf 79
RequirementsRequirements
2012 PHPConf 80
Requirements
● PHP 5.1+
● CodeIgniter 2.0.0+
● CURL
● CodeIgniter Curl library:
http://getsparks.org/packages/curl/show
2012 PHPConf 81
Load Rest Client LibraryLoad Rest Client Library
2012 PHPConf 82
Load Library
// Load the rest client spark
$this->load->spark('restclient/2.1.0');
// Load the library
$this->load->library('rest');
2012 PHPConf 83
Setup API Server
// Run some setup
$this->rest->initial('xxxxxx');
// twitter server
$this->load->initial('http://twitter.com');
2012 PHPConf 84
Parameter
// set api path
$api = '/API/Topic/Add';
// set api data
$data = array(
'title' => 'I am Kate Upton',
'type' => 'girl'
);
2012 PHPConf 85
Test it
// GET API
$this->rest->get($api, $data);
// POST API
$this->rest->post($api, $data);
// UPDATE API
$this->rest->update($api, $data);
// DELETE API
$this->rest->delete($api, $data);
2012 PHPConf 86
$this->rest->debug();
Rest Client Library debug mode
2012 PHPConf 87
以上是CodeIgniter PHP Framework
2012 PHPConf 88
Implement another Framework?Implement another Framework?
2012 PHPConf 89
Laravel PHP Framework?Laravel PHP Framework?
2012 PHPConf 90
public $restful = true;
2012 PHPConf 91
class Home_Controller extends Base_Controller
{
public $restful = true;
public function get_index()
{
//
}
public function post_index()
{
//
}
}
2012 PHPConf 92
More Introduction to Laravel Framework
14:20 – 14:50
用 Laravel Framework 打造現代化網站應用程式
大澤木小鐵
2012 PHPConf 93
RESTful API 就講到這裡
2012 PHPConf 94
如果有任何問題
2012 PHPConf 95
可以上 CodeIgniterCodeIgniter 論壇
2012 PHPConf 96
http://www.codeigniter.org.tw/forum/
2012 PHPConf 97
謝謝大家及工作團隊

More Related Content

What's hot

OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015Oro Inc.
 
170517 damien gérard framework facebook
170517 damien gérard   framework facebook170517 damien gérard   framework facebook
170517 damien gérard framework facebookGeeks Anonymes
 
DF12 - Process Orchestration using Streaming API and Heroku
DF12 - Process Orchestration using Streaming API and HerokuDF12 - Process Orchestration using Streaming API and Heroku
DF12 - Process Orchestration using Streaming API and Herokuafawcett
 
JAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridgeJAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridgeJosé Paumard
 
RichFaces 4: Rich Ajax Components For Your JSF Applications
RichFaces 4: Rich Ajax Components For Your JSF ApplicationsRichFaces 4: Rich Ajax Components For Your JSF Applications
RichFaces 4: Rich Ajax Components For Your JSF ApplicationsMax Katz
 
Dependency Injection, Zend Framework and Symfony Container
Dependency Injection, Zend Framework and Symfony ContainerDependency Injection, Zend Framework and Symfony Container
Dependency Injection, Zend Framework and Symfony ContainerDiego Lewin
 
JAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJosé Paumard
 
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJS
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJSAjax Applications with JSF 2 and New RichFaces 4 - TSSJS
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJSMax Katz
 
WCMTL 15 - Create your own shortcode (Fr)
WCMTL 15 - Create your own shortcode (Fr)WCMTL 15 - Create your own shortcode (Fr)
WCMTL 15 - Create your own shortcode (Fr)MichaelBontyes
 
Resting with OroCRM Webinar
Resting with OroCRM WebinarResting with OroCRM Webinar
Resting with OroCRM WebinarOro Inc.
 
Data Localization and Translation
Data Localization and TranslationData Localization and Translation
Data Localization and TranslationYevhen Shyshkin
 
Build restful ap is with python and flask
Build restful ap is with python and flaskBuild restful ap is with python and flask
Build restful ap is with python and flaskJeetendra singh
 
Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Oro Inc.
 
Apigility reloaded
Apigility reloadedApigility reloaded
Apigility reloadedRalf Eggert
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with PerlDave Cross
 
Hello World on Slim Framework 3.x
Hello World on Slim Framework 3.xHello World on Slim Framework 3.x
Hello World on Slim Framework 3.xRyan Szrama
 
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)James Titcumb
 
Create Your Own Framework by Fabien Potencier
Create Your Own Framework by Fabien PotencierCreate Your Own Framework by Fabien Potencier
Create Your Own Framework by Fabien PotencierHimel Nag Rana
 

What's hot (19)

OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015
 
170517 damien gérard framework facebook
170517 damien gérard   framework facebook170517 damien gérard   framework facebook
170517 damien gérard framework facebook
 
DF12 - Process Orchestration using Streaming API and Heroku
DF12 - Process Orchestration using Streaming API and HerokuDF12 - Process Orchestration using Streaming API and Heroku
DF12 - Process Orchestration using Streaming API and Heroku
 
JAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridgeJAX RS and CDI bike the reactive bridge
JAX RS and CDI bike the reactive bridge
 
RichFaces 4: Rich Ajax Components For Your JSF Applications
RichFaces 4: Rich Ajax Components For Your JSF ApplicationsRichFaces 4: Rich Ajax Components For Your JSF Applications
RichFaces 4: Rich Ajax Components For Your JSF Applications
 
Dependency Injection, Zend Framework and Symfony Container
Dependency Injection, Zend Framework and Symfony ContainerDependency Injection, Zend Framework and Symfony Container
Dependency Injection, Zend Framework and Symfony Container
 
JAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) Bridge
 
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJS
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJSAjax Applications with JSF 2 and New RichFaces 4 - TSSJS
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJS
 
WCMTL 15 - Create your own shortcode (Fr)
WCMTL 15 - Create your own shortcode (Fr)WCMTL 15 - Create your own shortcode (Fr)
WCMTL 15 - Create your own shortcode (Fr)
 
Resting with OroCRM Webinar
Resting with OroCRM WebinarResting with OroCRM Webinar
Resting with OroCRM Webinar
 
Data Localization and Translation
Data Localization and TranslationData Localization and Translation
Data Localization and Translation
 
Build restful ap is with python and flask
Build restful ap is with python and flaskBuild restful ap is with python and flask
Build restful ap is with python and flask
 
Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)
 
Apigility reloaded
Apigility reloadedApigility reloaded
Apigility reloaded
 
PHP FUNCTIONS
PHP FUNCTIONSPHP FUNCTIONS
PHP FUNCTIONS
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with Perl
 
Hello World on Slim Framework 3.x
Hello World on Slim Framework 3.xHello World on Slim Framework 3.x
Hello World on Slim Framework 3.x
 
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)
 
Create Your Own Framework by Fabien Potencier
Create Your Own Framework by Fabien PotencierCreate Your Own Framework by Fabien Potencier
Create Your Own Framework by Fabien Potencier
 

Similar to Api details for american syscorp

Res tful api design & implementation with code igniter php framework_appleboy
Res tful api design & implementation with code igniter php framework_appleboyRes tful api design & implementation with code igniter php framework_appleboy
Res tful api design & implementation with code igniter php framework_appleboyHash Lin
 
PHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterPHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterKHALID C
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Zend by Rogue Wave Software
 
Last 2 Months in PHP - July & August 2016
Last 2 Months in PHP - July & August 2016Last 2 Months in PHP - July & August 2016
Last 2 Months in PHP - July & August 2016Eric Poe
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfonyFrancois Zaninotto
 
PHP QA Tools
PHP QA ToolsPHP QA Tools
PHP QA Toolsrjsmelo
 
Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Wim Godden
 
How To Start Up With PHP In IBM i
How To Start Up With PHP In IBM iHow To Start Up With PHP In IBM i
How To Start Up With PHP In IBM iSam Pinkhasov
 
How To Start Up With Php In Ibm I
How To Start Up With Php In Ibm IHow To Start Up With Php In Ibm I
How To Start Up With Php In Ibm IAlex Frenkel
 
Benefit of CodeIgniter php framework
Benefit of CodeIgniter php frameworkBenefit of CodeIgniter php framework
Benefit of CodeIgniter php frameworkBo-Yi Wu
 
Php 7 hhvm and co
Php 7 hhvm and coPhp 7 hhvm and co
Php 7 hhvm and coPierre Joye
 
PerlエンジニアのためのCodeIgniter入門
PerlエンジニアのためのCodeIgniter入門PerlエンジニアのためのCodeIgniter入門
PerlエンジニアのためのCodeIgniter入門Yuzo Iwasaki
 
3. build your own php extension ai ti aptech
3. build your own php extension   ai ti aptech3. build your own php extension   ai ti aptech
3. build your own php extension ai ti aptechQuang Anh Le
 
07 build your-own_php_extension
07 build your-own_php_extension07 build your-own_php_extension
07 build your-own_php_extensionNguyen Duc Phu
 
Build your own PHP extension
Build your own PHP extensionBuild your own PHP extension
Build your own PHP extensionVõ Duy Tuấn
 
Taking PHP to the next level
Taking PHP to the next levelTaking PHP to the next level
Taking PHP to the next levelDavid Coallier
 
The why and how of moving to php 8
The why and how of moving to php 8The why and how of moving to php 8
The why and how of moving to php 8Wim Godden
 
Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10Combell NV
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterHaehnchen
 

Similar to Api details for american syscorp (20)

Res tful api design & implementation with code igniter php framework_appleboy
Res tful api design & implementation with code igniter php framework_appleboyRes tful api design & implementation with code igniter php framework_appleboy
Res tful api design & implementation with code igniter php framework_appleboy
 
Php7
Php7Php7
Php7
 
PHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterPHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniter
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)
 
Last 2 Months in PHP - July & August 2016
Last 2 Months in PHP - July & August 2016Last 2 Months in PHP - July & August 2016
Last 2 Months in PHP - July & August 2016
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfony
 
PHP QA Tools
PHP QA ToolsPHP QA Tools
PHP QA Tools
 
Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?
 
How To Start Up With PHP In IBM i
How To Start Up With PHP In IBM iHow To Start Up With PHP In IBM i
How To Start Up With PHP In IBM i
 
How To Start Up With Php In Ibm I
How To Start Up With Php In Ibm IHow To Start Up With Php In Ibm I
How To Start Up With Php In Ibm I
 
Benefit of CodeIgniter php framework
Benefit of CodeIgniter php frameworkBenefit of CodeIgniter php framework
Benefit of CodeIgniter php framework
 
Php 7 hhvm and co
Php 7 hhvm and coPhp 7 hhvm and co
Php 7 hhvm and co
 
PerlエンジニアのためのCodeIgniter入門
PerlエンジニアのためのCodeIgniter入門PerlエンジニアのためのCodeIgniter入門
PerlエンジニアのためのCodeIgniter入門
 
3. build your own php extension ai ti aptech
3. build your own php extension   ai ti aptech3. build your own php extension   ai ti aptech
3. build your own php extension ai ti aptech
 
07 build your-own_php_extension
07 build your-own_php_extension07 build your-own_php_extension
07 build your-own_php_extension
 
Build your own PHP extension
Build your own PHP extensionBuild your own PHP extension
Build your own PHP extension
 
Taking PHP to the next level
Taking PHP to the next levelTaking PHP to the next level
Taking PHP to the next level
 
The why and how of moving to php 8
The why and how of moving to php 8The why and how of moving to php 8
The why and how of moving to php 8
 
Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
 

More from Carmor Bass

americansyscorp b/o ascitconsultancyservices
americansyscorp b/o ascitconsultancyservicesamericansyscorp b/o ascitconsultancyservices
americansyscorp b/o ascitconsultancyservicesCarmor Bass
 
gocareerguide-Careerdevelopment by gocareerguide.com
gocareerguide-Careerdevelopment by gocareerguide.comgocareerguide-Careerdevelopment by gocareerguide.com
gocareerguide-Careerdevelopment by gocareerguide.comCarmor Bass
 
gocareerguide-your on the go career guidance-www.gocareerguide.com
gocareerguide-your on the go career guidance-www.gocareerguide.comgocareerguide-your on the go career guidance-www.gocareerguide.com
gocareerguide-your on the go career guidance-www.gocareerguide.comCarmor Bass
 
ascitconsultancy-scalable-javascript-application-architecture for ascitconsul...
ascitconsultancy-scalable-javascript-application-architecture for ascitconsul...ascitconsultancy-scalable-javascript-application-architecture for ascitconsul...
ascitconsultancy-scalable-javascript-application-architecture for ascitconsul...Carmor Bass
 
Ascitconsultancy american history in details-ascitconsultancy.com
Ascitconsultancy american history in details-ascitconsultancy.comAscitconsultancy american history in details-ascitconsultancy.com
Ascitconsultancy american history in details-ascitconsultancy.comCarmor Bass
 
99careerbuilder guide for success-99careerbuilder.com
99careerbuilder guide for success-99careerbuilder.com99careerbuilder guide for success-99careerbuilder.com
99careerbuilder guide for success-99careerbuilder.comCarmor Bass
 
Askbytes.com-Guide for success-askbytes
Askbytes.com-Guide for success-askbytesAskbytes.com-Guide for success-askbytes
Askbytes.com-Guide for success-askbytesCarmor Bass
 
Askbytes habit to ask better-askbytes.com
Askbytes habit to ask better-askbytes.comAskbytes habit to ask better-askbytes.com
Askbytes habit to ask better-askbytes.comCarmor Bass
 
API Details For Ascitconsultancyservices.com
API Details For Ascitconsultancyservices.comAPI Details For Ascitconsultancyservices.com
API Details For Ascitconsultancyservices.comCarmor Bass
 
Mobile Ecosystem in 2015 by AscITconsultancyservices
Mobile Ecosystem in 2015 by AscITconsultancyservicesMobile Ecosystem in 2015 by AscITconsultancyservices
Mobile Ecosystem in 2015 by AscITconsultancyservicesCarmor Bass
 
Ecareerplanner- technology and education (www.ecareerplanner.com)
Ecareerplanner- technology and education (www.ecareerplanner.com)Ecareerplanner- technology and education (www.ecareerplanner.com)
Ecareerplanner- technology and education (www.ecareerplanner.com)Carmor Bass
 

More from Carmor Bass (11)

americansyscorp b/o ascitconsultancyservices
americansyscorp b/o ascitconsultancyservicesamericansyscorp b/o ascitconsultancyservices
americansyscorp b/o ascitconsultancyservices
 
gocareerguide-Careerdevelopment by gocareerguide.com
gocareerguide-Careerdevelopment by gocareerguide.comgocareerguide-Careerdevelopment by gocareerguide.com
gocareerguide-Careerdevelopment by gocareerguide.com
 
gocareerguide-your on the go career guidance-www.gocareerguide.com
gocareerguide-your on the go career guidance-www.gocareerguide.comgocareerguide-your on the go career guidance-www.gocareerguide.com
gocareerguide-your on the go career guidance-www.gocareerguide.com
 
ascitconsultancy-scalable-javascript-application-architecture for ascitconsul...
ascitconsultancy-scalable-javascript-application-architecture for ascitconsul...ascitconsultancy-scalable-javascript-application-architecture for ascitconsul...
ascitconsultancy-scalable-javascript-application-architecture for ascitconsul...
 
Ascitconsultancy american history in details-ascitconsultancy.com
Ascitconsultancy american history in details-ascitconsultancy.comAscitconsultancy american history in details-ascitconsultancy.com
Ascitconsultancy american history in details-ascitconsultancy.com
 
99careerbuilder guide for success-99careerbuilder.com
99careerbuilder guide for success-99careerbuilder.com99careerbuilder guide for success-99careerbuilder.com
99careerbuilder guide for success-99careerbuilder.com
 
Askbytes.com-Guide for success-askbytes
Askbytes.com-Guide for success-askbytesAskbytes.com-Guide for success-askbytes
Askbytes.com-Guide for success-askbytes
 
Askbytes habit to ask better-askbytes.com
Askbytes habit to ask better-askbytes.comAskbytes habit to ask better-askbytes.com
Askbytes habit to ask better-askbytes.com
 
API Details For Ascitconsultancyservices.com
API Details For Ascitconsultancyservices.comAPI Details For Ascitconsultancyservices.com
API Details For Ascitconsultancyservices.com
 
Mobile Ecosystem in 2015 by AscITconsultancyservices
Mobile Ecosystem in 2015 by AscITconsultancyservicesMobile Ecosystem in 2015 by AscITconsultancyservices
Mobile Ecosystem in 2015 by AscITconsultancyservices
 
Ecareerplanner- technology and education (www.ecareerplanner.com)
Ecareerplanner- technology and education (www.ecareerplanner.com)Ecareerplanner- technology and education (www.ecareerplanner.com)
Ecareerplanner- technology and education (www.ecareerplanner.com)
 

Recently uploaded

Tari Eason Warriors Come Out To Play T Shirts
Tari Eason Warriors Come Out To Play T ShirtsTari Eason Warriors Come Out To Play T Shirts
Tari Eason Warriors Come Out To Play T Shirtsrahman018755
 
Summary ID-IGF 2016 National Dialogue - English (tata kelola internet / int...
Summary  ID-IGF 2016 National Dialogue  - English (tata kelola internet / int...Summary  ID-IGF 2016 National Dialogue  - English (tata kelola internet / int...
Summary ID-IGF 2016 National Dialogue - English (tata kelola internet / int...ICT Watch - Indonesia
 
Power of Social Media for E-commerce.pdf
Power of Social Media for E-commerce.pdfPower of Social Media for E-commerce.pdf
Power of Social Media for E-commerce.pdfrajats19920
 
IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119APNIC
 
Summary IGF 2013 Bali - English (tata kelola internet / internet governance)
Summary  IGF 2013 Bali - English (tata kelola internet / internet governance)Summary  IGF 2013 Bali - English (tata kelola internet / internet governance)
Summary IGF 2013 Bali - English (tata kelola internet / internet governance)ICT Watch - Indonesia
 
办理澳洲USYD文凭证书学历认证【Q微/1954292140】办理悉尼大学毕业证书真实成绩单GPA修改/办理澳洲大学文凭证书Offer录取通知书/在读证明...
办理澳洲USYD文凭证书学历认证【Q微/1954292140】办理悉尼大学毕业证书真实成绩单GPA修改/办理澳洲大学文凭证书Offer录取通知书/在读证明...办理澳洲USYD文凭证书学历认证【Q微/1954292140】办理悉尼大学毕业证书真实成绩单GPA修改/办理澳洲大学文凭证书Offer录取通知书/在读证明...
办理澳洲USYD文凭证书学历认证【Q微/1954292140】办理悉尼大学毕业证书真实成绩单GPA修改/办理澳洲大学文凭证书Offer录取通知书/在读证明...vmzoxnx5
 

Recently uploaded (6)

Tari Eason Warriors Come Out To Play T Shirts
Tari Eason Warriors Come Out To Play T ShirtsTari Eason Warriors Come Out To Play T Shirts
Tari Eason Warriors Come Out To Play T Shirts
 
Summary ID-IGF 2016 National Dialogue - English (tata kelola internet / int...
Summary  ID-IGF 2016 National Dialogue  - English (tata kelola internet / int...Summary  ID-IGF 2016 National Dialogue  - English (tata kelola internet / int...
Summary ID-IGF 2016 National Dialogue - English (tata kelola internet / int...
 
Power of Social Media for E-commerce.pdf
Power of Social Media for E-commerce.pdfPower of Social Media for E-commerce.pdf
Power of Social Media for E-commerce.pdf
 
IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119
 
Summary IGF 2013 Bali - English (tata kelola internet / internet governance)
Summary  IGF 2013 Bali - English (tata kelola internet / internet governance)Summary  IGF 2013 Bali - English (tata kelola internet / internet governance)
Summary IGF 2013 Bali - English (tata kelola internet / internet governance)
 
办理澳洲USYD文凭证书学历认证【Q微/1954292140】办理悉尼大学毕业证书真实成绩单GPA修改/办理澳洲大学文凭证书Offer录取通知书/在读证明...
办理澳洲USYD文凭证书学历认证【Q微/1954292140】办理悉尼大学毕业证书真实成绩单GPA修改/办理澳洲大学文凭证书Offer录取通知书/在读证明...办理澳洲USYD文凭证书学历认证【Q微/1954292140】办理悉尼大学毕业证书真实成绩单GPA修改/办理澳洲大学文凭证书Offer录取通知书/在读证明...
办理澳洲USYD文凭证书学历认证【Q微/1954292140】办理悉尼大学毕业证书真实成绩单GPA修改/办理澳洲大学文凭证书Offer录取通知书/在读证明...
 

Api details for american syscorp