abdulbaset / response-format-trait
一个用于标准化和格式化API和Web响应的PHP包。
Requires
- php: ^8.0
- illuminate/http: ^8.0|^9.0|^10.0
- illuminate/support: ^8.0|^9.0|^10.0
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将下载并安装它,更新您的项目。
用法
- 发布配置文件 您可以使用以下命令发布配置文件或语言文件
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
文件到您的配置目录,允许您自定义包的行为。
- 生成响应
- 第一个例子
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
特性的示例
- 在这里,您可以按需自定义消息和详细信息响应。
然后您将获得如下响应:
- 在这里,您可以更改默认语言以获取特定地区的消息和详细信息。
然后您将获得如下响应:
其他示例,例如404未找到错误
然后您将获得如下响应:
- 如果您想设置动态本地语言,可以创建中间件并在其中设置
config(['response-format.language' => config('app.local', 'en')]);
。请参考以下示例:您将获得如下响应:
- 如果您想检查该包是否支持某种语言,可以使用这个静态方法
Respond::isLanguageSupported($language)
。请参考以下示例:
配置
您可以通过修改 response-format.php
配置文件来自定义该包的行为。可用的选项有
支持的语言:
- 'en': 英语
- 'de': 德语
- 'fr': 法语
- 'ar': 阿拉伯语
- 'es': 西班牙语
- 'it': 意大利语
如果设置为 null,语言将动态确定。
作者
该包由 Abdulbaset R. Sayed 创建 AbdulbasetRedaSayedHF@Gmail.com
贡献
欢迎贡献!如果您遇到任何问题或有改进建议,请随时在 GitHub 上提交问题或拉取请求。
许可证
此包采用 MIT 许可证 - 请参阅 LICENSE 文件以获取详细信息。