slim框架_使用Slim微框架创建REST应用程序

slim框架

直到几年前,使用框架开发PHP应用程序还是例外,而不是规则。 如今, CakePHPSymfonyCodeIgniterZend Framework等框架已广泛用于PHP应用程序开发,每个框架都提供了独特的功能来简化和简化应用程序开发。

完整的框架通常是过大的。 考虑考虑对Web应用程序进行原型设计,创建快速且肮脏的CRUD前端或部署基本的REST API。 您可以使用传统框架来完成所有这些任务,但是学习和使用它所花费的时间和精力通常超过了收益。 现在考虑微型框架,这些微型框架可实现快速的Web应用程序开发和原型设计,而无需性能开销和成熟框架的学习曲线。

在本文中,我向您介绍Slim,这是一个PHP微框架,旨在快速开发Web应用程序和API。 不要被这个名字所迷惑:Slim带有一个复杂的URL路由器,并支持页面模板,flash消息,加密的cookie和中间件。 它也非常易于理解和使用,并且附带了出色的文档和热情的开发人员社区。

本文将引导您完成使用Slim构建简单的REST API的过程。 除了说明如何使用Slim的URL路由器实现四种基本的REST方法之外,它还演示了Slim的独特功能如何使添加API身份验证和多格式支持等高级功能变得容易。

了解REST

首先,刷新对REST的理解,也称为代表性状态转移。 REST与SOAP的不同之处在于它基于资源和操作,而不是基于方法和数据类型。 资源只是URL,它引用要在其上执行操作的对象或实体(例如,/ users或/ photos),并且操作是四个HTTP动词之一:

  • GET(检索)
  • POST(创建)
  • PUT(更新)
  • 删除(删除)

为了更好地理解这一点,请考虑一个简单的示例。 假设您有一个文件共享应用程序,并且需要API方法供开发人员将新文件远程添加到应用程序数据存储中,或从应用程序数据存储中检索现有文件。 在REST方法下,您将公开URL端点(例如/ files),并检查用于访问此URL的HTTP方法以了解所需的操作。 例如,您将HTTP数据包POST到/ files以创建一个新文件,或向GET / files发送一个请求以检索可用文件的列表。

这种方法更容易理解,因为它将现有的HTTP动词映射到CRUD操作。 它还消耗更少的资源,因为不需要正式定义请求/响应头的数据类型。

URL请求的典型REST约定及其含义是:

  • GET / items:检索项目列表
  • GET / items / 123:检索项目123
  • POST /项目:创建一个新项目
  • PUT / items / 123:更新项目123
  • 删除/ items / 123:删除项目123

Slim的URL路由器可帮助开发人员“将资源URI映射到特定HTTP请求方法的回调函数”,例如GET,POST,PUT和DELETE。 定义新的REST API非常简单,只需定义这些回调方法并用适当的代码填充它们即可。 这正是您在本文其余部分中将要做的。

创建应用程序存根

在开始实施REST API之前,让我们回顾一些注意事项。 在整篇文章中,我假设您有一个正常的开发环境(Apache,PHP和MySQL),并且您熟悉SQL和XML的基础知识。 我还假定您的Apache Web服务器已配置为支持虚拟主机,URL重写以及PUT和DELETE请求。

REST API旨在与资源一起使用。 在这种情况下,资源是文章,每篇文章都有标题,URL,日期和唯一标识符。 这些资源存储在MySQL数据库中,本文开发的示例REST API允许开发人员使用常规REST约定检索,添加,删除和更新这些文章。 本文的大部分内容假设JSON请求和响应主体。 有关如何处理XML请求和响应的更多信息,请参阅本文后面的支持多响应格式

步骤1:创建应用程序目录结构

切换到Web服务器的文档根目录(在Linux®上通常为/ usr / local / apache / htdocs,在Windows®上通常为c:\ Program Files \ Apache \ htdocs),并为应用程序创建一个新的子目录。 将此目录命名为slim /。

shell> cd /usr/local/apache/htdocs
shell> mkdir slim

本文通篇将此目录称为$ SLIM_ROOT。

步骤2:下载Slim框架

接下来,您需要添加Slim。 如果您使用的是PHP依赖性管理器Composer,只需在$ SLIM_ROOT / composer.json中创建一个文件,内容如下:

{
    "require": {
        "slim/slim": "2.*"
    }
}

使用Composer通过以下命令安装Slim:

shell> php composer.phar install

要加载Slim,请将此行添加到应用程序的“ index.php”文件中:

<?php
require 'vendor/autoload.php';

如果不使用Composer,则可以手动下载Slim框架,并将下载档案中的Slim目录提取到PHP包含路径中的目录中,或者提取到$ SLIM_ROOT / Slim中。

步骤3:初始化示例数据库

下一步是初始化应用程序数据库。 创建一个名为“ articles”的新MySQL表来保存商品记录:

CREATE TABLE IF NOT EXISTS `articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` text NOT NULL,
  `url` text NOT NULL,
  `date` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8

给该表添加一些入门记录:

INSERT INTO `articles` (`id`, `title`, `url`, `date`) VALUES 
(1, 'Search and integrate Google+ activity streams with PHP applications', 
'http://www.ibm.com/developerworks/xml/library/x-googleplusphp/index.html', '2012-07-10');

INSERT INTO `articles` (`id`, `title`, `url`, `date`) VALUES 
(2, 'Getting Started with Zend Server CE', 
'http://devzone.zend.com/1389/getting-started-with-zend-server-ce/', '2009-03-02');

要与该MySQL数据库进行交互,您还应该下载RedBeanPHP,这是一种占用资源少的ORM库。 该库以单个文件形式提供,您可以轻松地将其包含在PHP脚本中。 切记将文件复制到PHP包含路径中的目录或$ SLIM_ROOT / RedBean中。

步骤4:定义一个虚拟主机

为了使访问应用程序更加容易,请定义一个新的虚拟主机并将其设置为工作目录。 建议您执行此可选步骤,特别是当您在拥有多个正在进行的应用程序的开发计算机上工作时,因为它会创建目标部署环境的更紧密的副本。 Slim还带有一个“ .htaccess”文件,使您可以使用漂亮的URL删除“ index.php”前缀。

要为应用程序设置命名的虚拟主机,请打开Apache配置文件(httpd.conf或httpd-vhosts.conf)并向其中添加以下行:

NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
    DocumentRoot "/usr/local/apache/htdocs/slim"
    ServerName example.localhost
</VirtualHost>

这些行定义了一个新的虚拟主机http://example.localhost/,其文档根目录与$ SLIM_ROOT相对应。 重新启动Web服务器以激活这些新设置。 请注意,您可能需要更新网络的本地DNS服务器以告知其有关新主机的信息。

完成此任务后,将浏览器指向http://example.localhost/,您将看到类似图1的内容

图1.默认的Slim应用程序索引页面
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值