phly/phly-restfully

此包已被废弃,不再维护。作者建议使用zfcampus/zf-apigility包。

ZF2 模块,提供 RESTful 资源结构

2.3.1 2016-05-31 14:20 UTC

README

废弃

从 2.3.0 版本开始,我已经将此模块标记为废弃。

该模块很快证明了这个方法是有价值和有用的,并成为 Apigility 的种子。那个项目已经远远超出了这个模块的起源,并添加了许多这个模块从未设法创建的功能,例如内容协商、文件上传处理、实体和集合填充等。

因此,我建议在新的项目中使用 Apigility 而不是 PhlyRestfully,并建议现有项目在可能的情况下迁移到 Apigility。

此模块提供了结构化和代码,用于快速实现使用 JSON 作为传输的 RESTful API。

它允许您创建使用以下标准的 RESTful JSON API

  • HAL,用于创建超媒体链接
  • Problem API,用于报告 API 问题

文档可在 rtfd.org 查看.

升级

如果您之前使用的是 1.0.0 或更早版本(在 PHP Benelux 2013 展示的版本),您需要修改您的应用程序才能使其工作。

  • 首先,术语已经更改,一些类名也发生了变化,以引用“资源”而不是“项目”;这更符合 RESTful 术语。
    • 因此,如果您有任何使用 PhlyRestfully\HalItem 的代码,现在应将其引用为 PhlyRestfully\HalResource。同样,在该类中,您现在将从 resource 属性而不是 item 属性访问实际资源对象。(这只会影响 1.0.0 之后的内容)。
    • 如果您想为单个资源创建链接,请使用 HalLinksforResource 方法,而不是 forItem 方法。
    • InvalidItemException 已重命名为 InvalidResourceException
  • 一些项目已从 RestfulJsonModel 移动到 RestfulJsonRenderer
    • 填充器
    • 显示异常回溯的标志;实际上,您可以使用 view_manager.display_exceptions 配置设置来设置此行为。
  • 现在,所有来自 ResourceController 的结果都推送到视图模型中的 payload 变量。
    • 此外,ApiProblemHalResourceHalCollection 都是第一类对象,并用作 payload 值。
  • Links 插件重命名为 HalLinks,现在它也可以作为视图助手使用。

许可证

此模块使用 BSD 2-Clause 许可证进行许可

Copyright (c) 2013, Matthew Weier O'Phinney
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.