SlideShare uma empresa Scribd logo
1 de 97
Baixar para ler 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
謝謝大家及工作團隊

Mais conteúdo relacionado

Destaque

Tarjetas madre y microprocesadores marielys farias 7mo
Tarjetas madre y microprocesadores marielys farias 7moTarjetas madre y microprocesadores marielys farias 7mo
Tarjetas madre y microprocesadores marielys farias 7moPRIMICIASMSC
 
社會統計單元二查核表
社會統計單元二查核表社會統計單元二查核表
社會統計單元二查核表TTeacherlearn
 
Imaxes regletas
Imaxes regletasImaxes regletas
Imaxes regletasnelaguinho
 
Time For A Change: How clear formate brine drilling fluids are outperforming ...
Time For A Change: How clear formate brine drilling fluids are outperforming ...Time For A Change: How clear formate brine drilling fluids are outperforming ...
Time For A Change: How clear formate brine drilling fluids are outperforming ...John Downs
 
Genre Signifiers - Posters
Genre Signifiers - PostersGenre Signifiers - Posters
Genre Signifiers - Postershaverstockmedia
 
Sebastian zapata Castaño 8°e FOTOS DEL CUADERNO DE LOS CUADROS DE COMPLEMENT...
Sebastian zapata Castaño  8°e FOTOS DEL CUADERNO DE LOS CUADROS DE COMPLEMENT...Sebastian zapata Castaño  8°e FOTOS DEL CUADERNO DE LOS CUADROS DE COMPLEMENT...
Sebastian zapata Castaño 8°e FOTOS DEL CUADERNO DE LOS CUADROS DE COMPLEMENT...Sebastian Zapata Castaño
 
社會統計單元五查核表
社會統計單元五查核表社會統計單元五查核表
社會統計單元五查核表TTeacherlearn
 
1 research presentation
1 research presentation1 research presentation
1 research presentationGhina Hawshar
 
Ben.ryckeboer.presentatie
Ben.ryckeboer.presentatieBen.ryckeboer.presentatie
Ben.ryckeboer.presentatieBen Ryckeboer
 
research presentation
 research presentation research presentation
research presentationGhina Hawshar
 
Certificates of Recognition
Certificates of Recognition Certificates of Recognition
Certificates of Recognition Fady Yanni
 
查核表Ch8 臨終關懷
查核表Ch8 臨終關懷查核表Ch8 臨終關懷
查核表Ch8 臨終關懷TTeacherlearn
 
Historia de redes y internet
Historia de redes y internetHistoria de redes y internet
Historia de redes y internetkrlthl11
 
社會統計單元七查核表
社會統計單元七查核表社會統計單元七查核表
社會統計單元七查核表TTeacherlearn
 
生死學 Ch9 殯葬管理
生死學 Ch9 殯葬管理生死學 Ch9 殯葬管理
生死學 Ch9 殯葬管理TTeacherlearn
 
Maceo ess lozère 26-11-15
Maceo ess lozère 26-11-15Maceo ess lozère 26-11-15
Maceo ess lozère 26-11-15MDECS
 
Guía para la Localización
Guía para la LocalizaciónGuía para la Localización
Guía para la LocalizaciónUEES
 

Destaque (20)

Tarjetas madre y microprocesadores marielys farias 7mo
Tarjetas madre y microprocesadores marielys farias 7moTarjetas madre y microprocesadores marielys farias 7mo
Tarjetas madre y microprocesadores marielys farias 7mo
 
社會統計單元二查核表
社會統計單元二查核表社會統計單元二查核表
社會統計單元二查核表
 
Imaxes regletas
Imaxes regletasImaxes regletas
Imaxes regletas
 
Time For A Change: How clear formate brine drilling fluids are outperforming ...
Time For A Change: How clear formate brine drilling fluids are outperforming ...Time For A Change: How clear formate brine drilling fluids are outperforming ...
Time For A Change: How clear formate brine drilling fluids are outperforming ...
 
Comparatives
ComparativesComparatives
Comparatives
 
Genre Signifiers - Posters
Genre Signifiers - PostersGenre Signifiers - Posters
Genre Signifiers - Posters
 
Sebastian zapata Castaño 8°e FOTOS DEL CUADERNO DE LOS CUADROS DE COMPLEMENT...
Sebastian zapata Castaño  8°e FOTOS DEL CUADERNO DE LOS CUADROS DE COMPLEMENT...Sebastian zapata Castaño  8°e FOTOS DEL CUADERNO DE LOS CUADROS DE COMPLEMENT...
Sebastian zapata Castaño 8°e FOTOS DEL CUADERNO DE LOS CUADROS DE COMPLEMENT...
 
社會統計單元五查核表
社會統計單元五查核表社會統計單元五查核表
社會統計單元五查核表
 
1 research presentation
1 research presentation1 research presentation
1 research presentation
 
Ben.ryckeboer.presentatie
Ben.ryckeboer.presentatieBen.ryckeboer.presentatie
Ben.ryckeboer.presentatie
 
research presentation
 research presentation research presentation
research presentation
 
Certificates of Recognition
Certificates of Recognition Certificates of Recognition
Certificates of Recognition
 
Adviento3
Adviento3Adviento3
Adviento3
 
查核表Ch8 臨終關懷
查核表Ch8 臨終關懷查核表Ch8 臨終關懷
查核表Ch8 臨終關懷
 
Historia de redes y internet
Historia de redes y internetHistoria de redes y internet
Historia de redes y internet
 
社會統計單元七查核表
社會統計單元七查核表社會統計單元七查核表
社會統計單元七查核表
 
生死學 Ch9 殯葬管理
生死學 Ch9 殯葬管理生死學 Ch9 殯葬管理
生死學 Ch9 殯葬管理
 
Maceo ess lozère 26-11-15
Maceo ess lozère 26-11-15Maceo ess lozère 26-11-15
Maceo ess lozère 26-11-15
 
Guía para la Localización
Guía para la LocalizaciónGuía para la Localización
Guía para la Localización
 
1
11
1
 

Semelhante a RESTful API Design & Implementation with CodeIgniter PHP Framework

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
 
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
 
Last 2 Months in PHP - January 2018
Last 2 Months in PHP - January 2018Last 2 Months in PHP - January 2018
Last 2 Months in PHP - January 2018Eric Poe
 

Semelhante a RESTful API Design & Implementation with CodeIgniter PHP Framework (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
 
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
 
Last 2 Months in PHP - January 2018
Last 2 Months in PHP - January 2018Last 2 Months in PHP - January 2018
Last 2 Months in PHP - January 2018
 

Mais de Carmor Bass

Api details for american syscorp
Api details for american syscorpApi details for american syscorp
Api details for american syscorpCarmor 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
 
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
 

Mais de Carmor Bass (11)

Api details for american syscorp
Api details for american syscorpApi details for american syscorp
Api details for american syscorp
 
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
 
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)
 

Último

Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
 

Último (20)

Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
 

RESTful API Design & Implementation with CodeIgniter PHP Framework