>該站點點系列探索了REST原理。 本文展示了使用Slim(由Sinatra(Ruby))啟發的PHP微型框架的Slim構建一個安息的Web服務。 Slim的輕質性質,具有核心組件,例如路由,請求/響應處理和最少的視圖支持,使其非常適合簡單的REST API。
密鑰概念:
Slim是PHP Micro-Framework,非常適合直接的靜止服務,支持PHP 5.2和程序和(5.3)功能編程樣式。post()
put()
delete()
首先下載Slim。 此示例使用5.3樣式。創建:
>在瀏覽器中訪問index.php
顯示“ Hello Slim World”。纖細的自動加載必要的文件。 纖細的構造函數接受配置(例如,
<?php require "Slim/Slim.php"; $app = new Slim(); $app->get("/", function () { echo "<h1>Hello Slim World</h1>"; }); $app->run(); ?>
設置環境(開發/生產),並指定模板目錄。 自定義視圖處理程序可以替換默認index.php
。示例:MODE
TEMPLATES.PATH
VIEW
路線創建至關重要。 路由將URI映射到基於HTTP方法的回調函數。 Slim優先考慮第一個匹配路線;無與倫比的請求導致404錯誤。 定義路由後,呼叫MODE
啟動應用程序。 TEMPLATES.PATH
>
Slim_View
<?php $app = new Slim(array( "MODE" => "development", "TEMPLATES.PATH" => "./templates" )); ?>
>讓我們創建一個庫管理服務。 notorm簡化了數據庫的交互(需要一個PDO實例)。 run()
>
列表書籍:
此端點以JSON格式列出所有書籍:
<?php require "NotORM.php"; $pdo = new PDO($dsn, $username, $password); // Replace with your database credentials $db = new NotORM($pdo); ?>
手柄獲取請求。 >允許在匿名函數中訪問外部變量。響應標頭設置為
,並將書籍數據編碼為JSON。 獲取書籍詳細信息:<?php // ... (previous code) ... $app->get("/books", function () use ($app, $db) { $books = array(); foreach ($db->books() as $book) { $books[] = array( "id" => $book["id"], "title" => $book["title"], "author" => $book["author"], "summary" => $book["summary"] ); } $app->response()->header("Content-Type", "application/json"); echo json_encode($books); }); // ... (rest of the code) ...
get()
>通過ID檢索一本書:use
application/json
傳遞給回調函數。 可選參數使用。 對於無明確回調參數的可選參數,請使用 >和
刪除一本書:
結論: 以上是PHP主|用Slim編寫一個安靜的Web服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!post()
添加,put()
更新書籍:<?php
require "Slim/Slim.php";
$app = new Slim();
$app->get("/", function () {
echo "<h1>Hello Slim World</h1>";
});
$app->run();
?>
$app->request()->post()
>檢索帖子並分別放置數據。 對於基於瀏覽器的PUT請求,請使用隱藏的字段$app->request()->put()
,並在您的表單中使用值“ put”。 _METHOD
<?php
$app = new Slim(array(
"MODE" => "development",
"TEMPLATES.PATH" => "./templates"
));
?>
delete()
map()
>本文展示了使用Slim建立基本的Restful Web服務。 進一步的開發應包括可靠的錯誤處理和輸入驗證。 源代碼(此處不包括)可以在GitHub上找到(原始文本中未提供鏈接)。 原始文本的常見問題解答部分被省略,因為它可以通過Slim的文檔提供基本信息。