hubert / avocado
Avocado 是一个爱好者的 PHP 框架,实现了路由和 ORM
v7.1.2
2023-01-22 18:06 UTC
Requires
- php: 8.1.*
- ext-dom: *
- ext-pdo: *
- nette/robot-loader: ^3.4
- symplely/yaml: ^1.0
Requires (Dev)
- phpstan/phpstan: 1.9.14
- phpunit/phpunit: 9.5.18
- dev-main
- v7.1.2
- v7.1.1
- v7.1.0
- v7.0.2
- v7.0.1
- v7.0.0
- v6.0.2
- v6.0.1
- v6.0.0
- v5.4.0
- v5.3.1
- v5.3.0
- v5.2.0
- v5.1.1
- v5.1.0
- v5.0.0
- v4.2.0
- v4.1.1
- v4.1.0
- v4.0.3
- v4.0.1
- v4.0.0
- v3.1.0
- v3.0.0
- v2.3.4
- v2.3.2
- v2.3.1
- 2.2.1
- 2.0.2
- 2.0.1
- 2.0.0
- 1.0.0
- dev-cache
- dev-fix-nullable-configuratons
- dev-filters
- dev-mocked-mvc
- dev-tests-refactor
- dev-json-serializing
- dev-catching-throwables
- dev-yaml-configuration
- dev-class-finder
- dev-dependency-injection
- dev-class-based-controllers
This package is auto-updated.
Last update: 2024-09-30 02:10:35 UTC
README
Avocado 是一个易于学习和使用的 PHP8.1 或更高版本的框架,深受 Spring Boot 启发。目标
- 以简单快捷的方式在 PHP 中创建应用程序。
- 易于扩展新功能。
- 基于 OOP 的应用程序。
- 高抽象级别,尤其是数据库连接只是一个细节。
- 可测试的应用程序。
- 易于配置的应用程序。
- 充分利用 PHP8.0 的属性。
特性
- REST 控制器。
- ORM。
- 在
application.{yaml,json}
文件中配置属性。 - 数据库连接只是一个细节。
- 易于编写集成测试。
- 易于文件上传。
- JSON 序列化和反序列化。
- 许多允许的数据库 - 连接你只需要设置驱动类。
- 中间件。
- 自定义属性(注解)拦截器。
- 解析请求体、参数、查询、文件、属性到变量(也是对象)。
- 完全支持枚举。
- 数据库抽象级别。
- 错误和异常处理。
- 依赖注入。
Avocado 是否适合你?
如果你喜欢 Java 环境(特别是 Spring Boot),OOP,快速开发过程或完全测试的应用程序,Avocado 就是为你准备的。
第一个应用程序
你需要将所有请求重定向到主文件。在 Apache 中,你可以在 .htaccess
文件中这样做
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ /index.php/$1 [L,QSA]
或者在 NGINX 中
server { listen 80 default_server; location / { rewrite ^ /index.php last } }
快速入门
class Message { public function __construct(private string $message){} } #[RestController] class GrettingController { // response will be JSON { "message": "Hello, <name>!" } #[GetMapping("/gretting/:name")] public function greet(#[RequestParam(name: "name", defaulValue: "John")] string $name): Message { return new Message("Hello, " . $name . "!"); } } #[Avocado] class DemoApplication { public static function run(): void { Application::run(__DIR__); } } DemoApplication::run();
未来计划
- 创建一个类似 JPA 仓库的系统。
- 在 Redis 数据库中缓存数据。
许可
Apache2.0 开源