abdulbaset/response-format-trait

一个用于标准化和格式化API和Web响应的PHP包。

1.1.2 2024-06-06 22:43 UTC

This package is auto-updated.

Last update: 2024-09-06 23:36:28 UTC


README

Response-Format-Trait

这个PHP包提供了一种简单且一致的方式来格式化API和Web响应。它包含一组预定义的HTTP状态码和详细消息,支持API和Web响应格式化。该包旨在易于集成到任何PHP Laravel项目中,特别关注Laravel应用程序。

功能

  • 标准化的API和Web响应格式化。
  • 预定义的HTTP状态码和详细消息。
  • 易于集成到Laravel项目中。

安装

使用 Composer 安装此包

您可以通过Composer安装此包

composer require abdulbaset/response-format-trait

要更新您的Laravel项目中名为 abdulbaset/response-format-trait 的包,您可以使用Composer的update命令。以下是操作步骤

composer update abdulbaset/response-format-trait

在您的Laravel项目目录中运行update命令后,Composer将检查 abdulbaset/response-format-trait 包及其依赖项的更新。如果可用新版本,Composer将下载并安装它,更新您的项目。

用法

  1. 发布配置文件 您可以使用以下命令发布配置文件或语言文件
php artisan vendor:publish --provider="Abdulbaset\ResponseFormatTrait\Providers\ResponseFormatTraitServiceProvider" --tag="config"
php artisan vendor:publish --provider="Abdulbaset\ResponseFormatTrait\Providers\ResponseFormatTraitServiceProvider" --tag="lang"

此命令将复制 response-format.php 文件到您的配置目录,允许您自定义包的行为。

  1. 生成响应
  • 第一个例子
use Abdulbaset\ResponseFormatTrait\Respond;

class YourController extends Controller
{
    use Respond;

    public function someMethod()
    {
        // Example usage:
        return $this->formatApi(200, 'Success', 'Resource created successfully', $data);
    }
}
  • 第二个例子 这将生成一个包含提供的状态码、消息、详细信息以及可选数据的JSON响应。
use Abdulbaset\ResponseFormatTrait\Respond;

class YourController extends Controller
{
    public function someMethod()
    {
        // Example usage:
        return  Respond::formatApi(200);
    }
}
  • 检查是否支持给定语言
use Abdulbaset\ResponseFormatTrait\Respond;

class YourController extends Controller
{
    public function someMethod()
    {
        if (Respond::isLanguageSupported('en')) {
            // English language is supported
            // Perform actions accordingly
        } else {
            // English language is not supported
            // Handle unsupported language scenario
        }
    }
}

此方法验证Respond特性是否支持给定的语言代码。它检查提供的语言代码是否存在于预定义的支持语言列表中。如果语言代码在列表中找到,则方法返回true,表示支持该语言。否则,返回false。

示例

以下是您如何在控制器中使用 Respond 特性的示例

  1. 在这里,您可以按需自定义消息和详细信息响应。 截图 1 然后您将获得如下响应: 截图 1
  2. 在这里,您可以更改默认语言以获取特定地区的消息和详细信息。 截图 1 然后您将获得如下响应: 截图 1 其他示例,例如404未找到错误 截图 1 然后您将获得如下响应: 截图 1
  3. 如果您想设置动态本地语言,可以创建中间件并在其中设置 config(['response-format.language' => config('app.local', 'en')]);。请参考以下示例:截图 1 您将获得如下响应:截图 1
  4. 如果您想检查该包是否支持某种语言,可以使用这个静态方法 Respond::isLanguageSupported($language)。请参考以下示例:截图 1

配置

您可以通过修改 response-format.php 配置文件来自定义该包的行为。可用的选项有

支持的语言:

  • 'en': 英语
  • 'de': 德语
  • 'fr': 法语
  • 'ar': 阿拉伯语
  • 'es': 西班牙语
  • 'it': 意大利语

如果设置为 null,语言将动态确定。

作者

该包由 Abdulbaset R. Sayed 创建 AbdulbasetRedaSayedHF@Gmail.com

贡献

欢迎贡献!如果您遇到任何问题或有改进建议,请随时在 GitHub 上提交问题或拉取请求。

许可证

此包采用 MIT 许可证 - 请参阅 LICENSE 文件以获取详细信息。