hubert/avocado

Avocado 是一个爱好者的 PHP 框架,实现了路由和 ORM

安装: 230

依赖: 3

建议者: 0

安全: 0

星标: 5

关注者: 1

分支: 0

开放问题: 1

类型:框架

v7.1.2 2023-01-22 18:06 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 开源