aphiria / aphiria
Aphiria 框架
v1.0.0-alpha9
2023-09-24 17:24 UTC
Requires
- php: ^8.2
- ext-ctype: *
- ext-fileinfo: *
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- monolog/monolog: ~2.6
- psr/container: ^2.0
- psr/http-factory: ^1.0
- psr/http-message: ^2.0
- psr/log: ^3.0
- symfony/dotenv: ^6.1
- symfony/property-access: ^6.1
- symfony/serializer: ^6.1
- symfony/yaml: ^6.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.6
- mockery/mockery: ^1.5
- nyholm/psr7: ^1.5
- phpunit/phpunit: ^10.1
- psalm/plugin-mockery: ^1.1
- vimeo/psalm: ^5.1
This package is auto-updated.
Last update: 2024-09-18 17:46:06 UTC
README
注意:此框架尚不稳定。
简介
Aphiria 是一组小型、解耦的 PHP 库,组成 REST API 框架。它简化了内容协商,不会渗入你的代码,允许你编写易于表达的代码。Aphiria 还提供以下功能:
- 自动内容协商 你的 POPOs
- PHP 中速度最快、功能最全面的路由器之一
- 一种模块化方式构建你的应用程序,从可重用组件开始
- 可扩展的身份验证方案
- 基于策略的授权控制系统
- 带有绑定器的 DI 容器,简化了应用程序的配置
- 用于你的 POPOs 的模型验证器
- 支持 路由 和 验证 属性
// Define some controller endpoints class UserController extends Controller { public function __construct(private IUserService $users) {} #[Post('/users')] public function createUser(User $user): IResponse { $this->users->create($user); return $this->created("/users/{$user->id}", $user); } #[Get('/users/:id')] #[AuthorizeRoles('admin')] public function getUserById(int $id): User { return $this->users->getById($id); } } // Bind your dependency $container->bindInstance(IUserService::class, new UserService()); // Run an integration test $postResponse = $this->post('/users', new User('Dave')); $user = $this->readResponseBodyAs(User::class, $postResponse); $admin = (new PrincipalBuilder('example.com'))->withRoles('admin') ->build(); $getResponse = $this->actingAs($admin, fn () => $this->get("/users/$user->id")); $this->assertParsedBodyEquals($user, $getResponse);
安装
通过 Composer 创建 Aphiria 应用
composer create-project aphiria/app --prefer-dist --stability dev
有关更多详细信息,请参阅 文档。
文档
完整文档可在 Aphiria 网站 上找到。
需求
- PHP >= 8.3
贡献
我们感谢对 Aphiria 的任何和所有贡献。请阅读 文档 了解如何贡献。
社区
如果您对 Aphiria 有任何一般性的问题或评论,请加入我们的 GitHub 讨论。
目录结构
Aphiria 采用单仓库组织。每个库都包含在 src/{library} 中,并包含 src 和 tests 目录。
许可
此软件受 MIT 许可证许可。请参阅 LICENSE 了解更多信息。
作者
Aphiria 由 David Young 创建和主要编写。