Xây dựng ví dụ get employees old don't use namespace (ok)
Previous=== START Slim Framework ===NextXây dựng ví dụ get, add, update old don't use namespace (ok)
Last updated
Last updated
C:\xampp\htdocs\oec\api\index.php
<?php
require 'Slim/Slim.php';
$app = new Slim();
$app->get('/employees', 'getEmployees');
$app->get('/employees/:id', 'getEmployee');
$app->get('/employees/:id/reports', 'getReports');
$app->get('/employees/search/:query', 'getEmployeesByName');
$app->get('/employees/modifiedsince/:timestamp', 'findByModifiedDate');
$app->run();
function getEmployees() {
if (isset($_GET['name'])) {
return getEmployeesByName($_GET['name']);
} else if (isset($_GET['modifiedSince'])) {
return getModifiedEmployees($_GET['modifiedSince']);
}
$sql =
"select e.id, e.firstName, e.lastName, e.title, count(r.id) reportCount " .
"from employee e left join employee r on r.managerId = e.id " .
"group by e.id order by e.lastName, e.firstName";
try {
$db = getConnection();
$stmt = $db->query($sql);
$employees = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
// Include support for JSONP requests
if (!isset($_GET['callback'])) {
echo json_encode($employees);
} else {
echo $_GET['callback'] . '(' . json_encode($employees) . ');';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
function getEmployee($id) {
$sql =
"select e.id, e.firstName, e.lastName, e.title, e.officePhone, e.cellPhone, e.email, e.managerId, e.twitterId, m.firstName managerFirstName, m.lastName managerLastName, count(r.id) reportCount " .
"from employee e " .
"left join employee r on r.managerId = e.id " .
"left join employee m on e.managerId = m.id " .
"where e.id=:id";
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("id", $id);
$stmt->execute();
$employee = $stmt->fetchObject();
$db = null;
// Include support for JSONP requests
if (!isset($_GET['callback'])) {
echo json_encode($employee);
} else {
echo $_GET['callback'] . '(' . json_encode($employee) . ');';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
function getReports($id) {
$sql =
"select e.id, e.firstName, e.lastName, e.title, count(r.id) reportCount " .
"from employee e left join employee r on r.managerId = e.id " .
"where e.managerId=:id " .
"group by e.id order by e.lastName, e.firstName";
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("id", $id);
$stmt->execute();
$employees = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
// Include support for JSONP requests
if (!isset($_GET['callback'])) {
echo json_encode($employees);
} else {
echo $_GET['callback'] . '(' . json_encode($employees) . ');';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
function getEmployeesByName($name) {
$sql =
"select e.id, e.firstName, e.lastName, e.title, count(r.id) reportCount " .
"from employee e left join employee r on r.managerId = e.id " .
"WHERE UPPER(CONCAT(e.firstName, ' ', e.lastName)) LIKE :name " .
"group by e.id order by e.lastName, e.firstName";
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$name = "%".$name."%";
$stmt->bindParam("name", $name);
$stmt->execute();
$employees = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
// Include support for JSONP requests
if (!isset($_GET['callback'])) {
echo json_encode($employees);
} else {
echo $_GET['callback'] . '(' . json_encode($employees) . ');';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
function getModifiedEmployees($modifiedSince) {
if ($modifiedSince == 'null') {
$modifiedSince = "1000-01-01";
}
$sql = "select * from employee WHERE lastModified > :modifiedSince";
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("modifiedSince", $modifiedSince);
$stmt->execute();
$employees = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
// Include support for JSONP requests
if (!isset($_GET['callback'])) {
echo json_encode($employees);
} else {
echo $_GET['callback'] . '(' . json_encode($employees) . ');';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
function getConnection() {
$dbhost="127.0.0.1";
$dbuser="root";
$dbpass="";
$dbname="directory";
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbh;
}
?>