citeq / php-api-wrapper
与 Laravel Eloquent 或 Doctrine 一样处理 API(不再是梦想)
Requires
- php-curl-class/php-curl-class: ^8.3
- psr/cache: ^1.0.0
Requires (Dev)
- mockery/mockery: ^1.4
- phpunit/phpunit: ^9.3
- symfony/var-dumper: ^5.1
Suggests
- api-platform/core: To integrate a DataProvider and support the Paginator of the Api Platform in addition to the support of Symfony.
- barryvdh/laravel-debugbar: To support request tracking in your Laravel app.
- laravel/framework: To integrate Laravel Collection, Pagination and Eloquent relations with your models.
- league/oauth2-client: To support OAuth2 request Transport.
- symfony/symfony: To integrate a ManagerRegistry, a Paginator and support serialization with your entities.
This package is auto-updated.
Last update: 2024-09-12 21:11:01 UTC
README
这是基于 cristal/php-api-wrapper
包的一个分支,扩展了过滤器功能。由于扩展功能仅适用于 Laravel 框架,因此目前在这个分支中提供,尚未回馈。
PHP API Wrapper 是一个基于一些传输和一个智能 API 包装器的智能栈。它通过为 Laravel、Symfony、API Platform 和 独立堆栈 提供桥梁而设计,以便轻松集成到您的项目中。
🚀 使用 Composer 安装
composer require citeq/php-api-wrapper
👀 快速查看
<?php // Configure your API use Cristal\ApiWrapper\Model; use Cristal\ApiWrapper\Transports\Basic; use App\User; use Curl\Curl; $transport = new Basic('username', 'password', 'http://api.example.com/v1/', new Curl); $api = new Api($transport); Model::setApi($api); // Use your model like Eloquent (Usage with Symfony is significantly different) $activedUsers = User::where(['active' => true])->get(); foreach($activedUsers as $user){ $user->active = false; $user->save(); }
📖 选择您的堆栈
👉 无需 Laravel 或 Symfony 即可开始
如果您决定不使用 Laravel 或 Symfony,PHP Api Wrapper 将提供独立的 Builder 和一个很大程度上受 Eloquent 启发的 Model,但确实是独立的。我保证!
👉 使用 Laravel 开始
这是 API 包装器的强大用法。如果您决定使用 Laravel 的 PHP API Wrapper,则集成几乎完美。构建器返回集合,所有模型都可用作 Laravel 路由绑定(这真的令人印象深刻)。而且更棒的是,您可以创建 Eloquent 和 PHP API Wrapper 之间的复杂关系。
👉 使用 Symfony(可选 API Platform)开始
这种实现也非常有趣,Symfony 桥接器为您提供了一个实现 Doctrine RepositoryInterface 的 Repository,它可以填充您的实体。还有一个 Manager 可用,允许您管理存储库及其连接。如果您使用 API Platform,则完全兼容。还注册了一个 API Platform Data Provider。
⚠️ 请注意,此实现目前为只读。帮助我们实现缺少的部分!