diablomedia/phly-restfully

Laminas 模块,为 RESTful 资源提供结构


README

Build codecov Latest Stable Version Total Downloads Psalm Type coverage Psalm level

已弃用

从 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.