>该站点点系列探索了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”。纤细的自动加载必要的文件。 纤细的构造函数接受配置(例如,
<code class="language-php"><?php require "Slim/Slim.php"; $app = new Slim(); $app->get("/", function () { echo "<h1>Hello Slim World</h1>"; }); $app->run(); ?></code>)。
设置环境(开发/生产),并指定模板目录。 自定义视图处理程序可以替换默认index.php
。示例:MODE
TEMPLATES.PATH
VIEW
路线创建至关重要。 路由将URI映射到基于HTTP方法的回调函数。 Slim优先考虑第一个匹配路线;无与伦比的请求导致404错误。 定义路由后,呼叫MODE
启动应用程序。TEMPLATES.PATH
>
Slim_View
<code class="language-php"><?php $app = new Slim(array( "MODE" => "development", "TEMPLATES.PATH" => "./templates" )); ?></code>>
>让我们创建一个库管理服务。 notorm简化了数据库的交互(需要一个PDO实例)。run()
>
列表书籍:
此端点以JSON格式列出所有书籍:
<code class="language-php"><?php require "NotORM.php"; $pdo = new PDO($dsn, $username, $password); // Replace with your database credentials $db = new NotORM($pdo); ?></code>
手柄获取请求。 >允许在匿名函数中访问外部变量。响应标头设置为
,并将书籍数据编码为JSON。 获取书籍详细信息:<code class="language-php"><?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) ...</code>
get()
>通过ID检索一本书:use
application/json
传递给回调函数。 可选参数使用。 对于无明确回调参数的可选参数,请使用 >和
删除一本书:
结论:post()
添加,put()
更新书籍:<code class="language-php"><?php
require "Slim/Slim.php";
$app = new Slim();
$app->get("/", function () {
echo "<h1>Hello Slim World</h1>";
});
$app->run();
?></code>
$app->request()->post()
>检索帖子并分别放置数据。 对于基于浏览器的PUT请求,请使用隐藏的字段$app->request()->put()
,并在您的表单中使用值“ put”。_METHOD
<code class="language-php"><?php
$app = new Slim(array(
"MODE" => "development",
"TEMPLATES.PATH" => "./templates"
));
?></code>
delete()
map()
>本文展示了使用Slim建立基本的Restful Web服务。 进一步的开发应包括可靠的错误处理和输入验证。 源代码(此处不包括)可以在GitHub上找到(原始文本中未提供链接)。 原始文本的常见问题解答部分被省略,因为它可以通过Slim的文档提供基本信息。
以上是PHP主|用Slim编写一个安静的Web服务的详细内容。更多信息请关注PHP中文网其他相关文章!