rocker / server

帮助您在Slim框架(https://github.com/victorjonsson/PHP-Rocker#php-rocker)上编写RESTful Web服务的样板代码

1.3.0 2014-04-30 22:48 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:08:28 UTC


README

又是一个PHP编写RESTful Web服务的框架!这个框架与众不同的地方在于PHP-Rocker是Slim(https://github.com/codeguy/Slim)和优秀的数据库外观的集合。不需要从头开始编写一切,这使得您在编写RESTful API时可以专注于重要的事情,让其他项目处理诸如路由和数据存储等问题。

功能

  • 用户管理
  • CRUD操作 使用PHP-Rocker中的基础类扩展API,添加自己的对象和操作
  • EAV数据模型
  • 静态文件存储 支持图像处理和存储在Amazon S3
  • 内置对象缓存 支持APC和基于文件的缓存
  • 基于接口的 易于扩展和定制
  • 通过控制台管理远程服务器
  • 自动生成文档 从类文件中提取所有信息,这意味着您只需编写一次文档

阅读更多

附加包

系统要求

  • PHP v >= 5.3.2
  • MySQL 数据库层支持多种不同的数据库(oracle、mssql、postgresql...),但PHP-Rocker目前仅与MySQL进行了测试
  • Web服务器(apache/nginx) 如果使用nginx,则需要将.htaccess重写规则移动到服务器的重写配置中

安装

1) 在您的应用程序目录中添加文件composer.json,以下json配置(请注意,您必须允许开发包)

{
    "minimum-stability": "dev",
    "require" : {
        "rocker/server": "1.2.6"
    }
}

2) 在您的应用程序目录中运行composer install。这将安装Slim以及PHP-Rocker所依赖的所有其他包。

$ composer install

3) 在您的应用程序目录中运行vendor/rocker/server/install.php

$ php -f vendor/rocker/server/install.php

- 完成了!

API参考

API参考已移动到其自己的wiki页面

通过更多操作扩展API

在这里您可以了解更多关于如何创建自定义操作

添加自己的对象

在这里您可以了解更多关于如何添加自己的对象

通过命令行管理远程服务器

首先,将控制台程序移动到您的bin目录,以便您可以从任何位置访问它。

$ sudo ln -s /path/to/your/rocker/installation/console /bin/rocker

完成此操作后,添加您的服务器(您将被提示输入服务器地址和用户凭据)

$ rocker server

搜索用户

# Find users with nick containing John
$ rocker users -q 'nick=*John*'

# Find users coming from either France or Germany that is not admin
$ rocker users -q 'country=France|Germany&admin!=1'

# Find users that has a score greater than 80 and that has a description
# containing either "hockey" or "soccer"
$ rocker users -q 'score>=80&description=*hockey*|*soccer*'

加载用户数据

$ rocker users -l john.doe@website.com

您还可以使用控制台程序创建、删除和更新用户。在控制台运行 rocker 获取更多帮助。

关于安全性的说明

PHP-Rocker 默认支持基本认证和 RC4 加密认证。在处理业务/用户数据时,始终应在 SSL 证书上运行您的 Web 服务,尤其是在使用基本认证时。RC4 加密认证的工作原理与基本认证基本相同,不同之处在于用户凭据在客户端加密,在服务器端使用共享密钥解密。如果您想运行 RC4 加密请求,则需要修改 config.php 中的 application.auth 参数。

'application.auth' => array(
    'class' => '\\Rocker\\REST\\Authenticator',
    'mechanism' => 'RC4 realm="your.service.com"',
    'secret' => 'what-ever-hard-to-guess-string-you-want'
)

密钥 还需要提供给与您的 Rocker 服务器通信的客户端。伪代码

String crypted = RC4.encrypt("the-hard-to-guess-secret", "som.user@gmail.com:some-password");
request.addHeader("Authorization", "RC4 " + Base64.encode(crypted));

其他认证包

自动生成文档

文档是从 config.php 中定义的操作类自动生成的。类文档、操作的 URI 和允许的请求方法将被添加到生成的文档中。查看 index.php 了解如何将文档添加到 Slim 的路由系统中,您也可以将其更改为您自己的模板。

Auto-generated documentation

<?php

/**
 * This text will extracted to the documentation, as well as @link declarations
 *
 * @link http://...
 */
class MyOperation extends \Rocker\REST\AbstractOperation {

单元测试和验收测试

要运行 Rocker 的单元测试,请导航到 libs/Test 并运行 phpunit。您还可以使用 dokimon 测试 在您的整个基础设施上运行验收测试

许可证

MIT 许可证

路线图

  • 支持在 Amazon S3 上存储文件
  • 将认证方法编写为 Slim 中间件
  • 使能够使用 PUT 存储blob数据
  • 考虑使用另一种数据模型存储对象(可能支持 NoSQL)
  • 添加对 XML 格式响应的支持
  • 将控制台程序重写为 phar 并将源代码移动到单独的项目

变更日志

1.3.0(未发布)

  • 自动生成文档

1.2.6

  • 客户端现在可以通过在 URI 中添加 .json 或 .xml 来确定服务器响应的内容类型

1.2.0

  • 通用改进和较小的错误修复
  • 简化安装过程

1.1.8

  • 尝试更新一个已经注册的电子邮件地址的用户现在将导致 http 状态
    409 而不是 400
  • 抽象对象工厂现在实现了 InstallableInterface
  • 改进了安装脚本,所有应该在应用程序安装时运行安装的类现在都声明在 config.php 中
  • 添加了用户管理和文件存储的配置选项
  • Access-Allow-Headers 仅在请求方法为 OPTIONS 时发送
  • 改进了在调用 AbstractObjectFactory::metaSearch() 时执行的数据库查询
  • 现在支持 XML 内容类型
  • 改进了显示可用服务器的控制台方法

1.1.7

  • 在 PHP-Rocker\Object\ObjectMetaFactory 中进行了通用改进
  • 修复了导致代码遍历 null 变量的错误
  • 使用 Gregwar/Image 替换了图像处理逻辑
  • 修复了有时导致控制台程序崩溃的错误

1.1.6

  • 添加了对文件存储的支持
  • 添加了图像处理功能