SIMPLE PHP SERVICE APP
Kita akan membuat service menggunakan PHP murni tanpa menggunakan framework. Tujuan praktek ini adalah untuk:
1. Memahami cara kerja web service.
2. Mampu membuat simple service menggunakan PHP.
3. Mampu mengakses web service.
Struktur Folder
Buat struktur folder seperti berikut :
Buat file index.php
Masukan code :
<?phpini_set('display_errors', 1);error_reporting(E_ALL);require __DIR__."/core/Bootstrap.php";
File ini untuk memanggil file Bootstrap.php dan menjalankan fungsi - fungsinya ketika dipanggil.
Buat file config/Routes.php
Masukan code :
<?php$routes = ['/users'=>'Users.php','/' =>'Home.php'];
File ini untuk konfigurasi routing / alamat url dimana file ini jika url nya di panggil, maka akan memangil Users.php dan menjalankan fungsi nya.
Buat file controllers/Home.php
Masukan code :
<?php$url =$_SERVER['REQUEST_URI'];$urlArr = explode("index.php", $url);if (count($urlArr)>=2) {$url = $urlArr[1];}// if use php —S localhost;8000if (strpos($url, "/") !== 0) {$url = "/$url";}if ($url == '/' && $_SERVER['REQUEST_METHOD'] =='GET') {header('Content-Type: application/json');echo json_encode(array('service name'=>'PHP Service App','status'=>'Running'));}
File ini sebagai controller dari http dimana didalamnya jika mengakses url "/" maka akan menampilkan response json dengan response bodynya.
Buat file controller/Users.php
Masukan code :
<?php
$url = $_SERVER['REQUEST_URI'];
$urlArr = explode("index.php", $url);
if (count($urlArr) >= 2) {
$url = $urlArr[1];
}
// if use php —S localhost;8000
if (strpos($url, "/") !== 0) {
$url = "/$ur1";
}
// untuk menghandle url /users
if ($url == '/users' && $_SERVER['REQUEST_METHOD'] == 'GET') {
$users = array(
array('id'=>1, 'name' => 'Sumatrana', 'email' => 'sumatrana@gmail.com','address'=>'Padang', 'gender' => 'Laki-laki'),
array('id'=>2, 'name' => 'Jawarianto', 'email' => 'jawarianto@gmail.com', 'address' => 'Cimahi', 'gender' => 'Laki-laki'),
array('id'=>3, 'name' => 'Kalimantanio', 'email' => 'kalimantanio@gmail.com', 'address'=> 'Samarinda', 'gender' => 'Laki-laki'),
array('id'=>4, 'name' => 'Sulawesiani', 'email' => 'sulawesiani@gmail.com', 'address'=> 'Makasar', 'gender' => 'Perempuan'),
array('id'=>5, 'name' => 'Papuani', 'email' => 'papuani@gmail.com', 'address. => Jayapura', 'gender' => 'Perempuan'),
);
header('Content-Type: application/json');
echo json_encode($users);
}
// untuk menghandle url /users/{ID}
if (preg_match("/users\/([0-9])+/", $url, $matches) && $_SERVER['REQUEST_METHOD'] == 'GET') {
$users = array(
'1' => array('id' => 1, 'name' => 'Sumatrana', 'email' => 'sumatrana@gmail.com','address'=>'Padang', 'gender' => 'Laki—laki'),
'2' =>array('id' => 2, 'name' => 'Jawarianto', 'email' => 'jawarianto@gmail.com', 'address'=> 'Cimahi', 'gender' => 'Laki—laki'),
'3' => array('id' => 3, 'name' => 'Kalimantanio', 'email' => 'kalimantanio@gmail.com','address' => 'Samarinda', 'gender' => 'Laki—laki'),
'4' => array('id' => 4, 'name' => 'Sulawesiani', 'email' => 'sulawesiani@gmail.com', 'address' => 'Makasar', 'gender' => 'Perempuan'),
'5' => array('id' => 5, 'name' => 'Papuani', 'email' => 'papuani@gmail.com', 'address'=> 'Jayapura', 'gender' => 'Perempuan'),
);
$user = $users[$matches[1]];
header('Content-Type: application/json');
echo json_encode($user);
}
File ini sebagai controller, jika mengakses url '/users' maka akan menampilkan response list user yang di definisikan, dan jika mengakses url 'users/ID', maka akan menampilkan response user berdasarkan ID nya.
Buat file core/Bootstrap.php
Masukan code :
<?php
require __DIR__.'/Router.php';
require __DIR__.'/../config/Routes.php';
$router = new Router;
$router->setRoutes($routes);
$url = $_SERVER['REQUEST_URI'];
require __DIR__."/../controllers/".$router->getFileName($url);
file ini dijalankan pada saat index.php dipanggil. Di dalamnya memanggil file Router.php dan Routes.php dan mengset new routernya.
Buat File core/Router.php
Masukan code :
<?php
class Router
{
private $routes = [];
public function setRoutes($routes)
{
$this->routes = $routes;
}
public function getFileName($url)
{
foreach ($this->routes as $route =>$file) {
if (strpos($url, $route) !== false) {
return $file;
}
}
}
}
file ini sebuah class untuk fungsi mendaftarkan routes dan fungsi mendapatkan file berdasarkan url yang di panggil.
Jika sudah selesai jalankan aplikasinya.
a. Jika menggunakan XAMPP / WAMP / MAMP simpan project folder di htdocs
b. Pada browser buka localhost/php-service-app/index.php/,
c Jika menggunakan port maka localhost:{port}/php-service-app/index.php
d. Untuk selanjutnya kita akan menggunakan tools dalam mengakses API, tools nya adalah aplikasi Postman
Untuk mengecheck service yang sudah dibuat bisa menggunakan posman https://www.getpostman.com/
Jika suda terinstall lakukan contoh seperti dibawah ini :
Disini saya menggunakan port.localhost:8081/php-service-app/index.php
localhost:8081/php-service-app/index.php/users
localhost:8081/php-service-app/index.php/users/1
Labels:
PHP
0 Komentar untuk "Membuat Service Dengan PHP Murni (Tanpa menggunakan framework)"