danieltm/origins

V1.5.3 2024-09-19 18:43 UTC

This package is auto-updated.

Last update: 2024-09-19 18:42:18 UTC


README

简介

Origins 是一个用于简化 Web 应用程序开发的 PHP 最小化框架。它提供了一个灵活且可扩展的结构,以高效地构建 Web 应用程序。

安装

要开始使用 Origins 框架,请按照以下简单步骤操作

  1. 在您的开发环境中克隆 Origins 仓库

    git clone https://github.com/DanielTM999/origins.git
  2. 安装 Composer 依赖

    composer require danieltm/origins
  3. 配置您的 Web 服务器,将请求重定向到框架的 public 目录。

主要要求

PHP 8.0

核心概念

Origins 框架基于一些基本概念构建

  • 控制器:带有 Controller 属性的类,包含与 API 端点对应的方法。

  • 依赖注入:框架使用依赖注入来管理和自动注入所需的依赖项到类中。

  • 路由属性:使用 GetPostDeletePut 属性将控制器方法映射到 API 端点。

  • 类自动映射和自动加载:框架使用自己的映射器来加载类和依赖项,无需使用 composer 或其他映射器。

基本用法

要使用 Origins 框架创建 Web 应用程序,请按照以下步骤操作

  1. 定义您的控制器:创建带有 Controller 属性的控制器类。

  2. 定义端点:使用 GetPostDeletePut 属性将控制器方法映射到 API 端点。

  3. 启动框架:创建 Origin 实例并调用 run() 方法以启动路由和分发请求。

控制器代码示例

以下是如何创建控制器并映射方法到端点的示例

<?php

use Daniel\Origins\Controller;
use Daniel\Origins\Get;
use Daniel\Origins\Request;

#[Controller]
class UserController
{

    #[Inject]
    private Servico $servico;

    #[Get('/users')]
    public function getAllUsers()
    {
        
    }

    #[Get("/")]
    public function intex(Request $req){
        $headers = $req->getHeaders();
        $body = $req->getBody();
    }   

    #[Get("/number")]
    public function getNumber(){
        echo $this->servico->getNumber();
    }
}

//true se for apenas 1 instacia e false se for por request
#[Dependency(true)]
class Servico{

    public function getNumber() : int{
        return rand();
    }

}

?>

控制器代码示例

以下是如何创建索引的示例

<?php
    require "./vendor/autoload.php";
    use Daniel\Origins\Origin;

    $app = Origin::initialize();
    $app->run();

?>

自定义配置(可选)

如果您需要自定义框架配置,可以扩展该类

  • OnInit.php:此文件包含一个抽象类,其中定义了一个方法,用于在初始化期间配置框架。
<?php

   class MinhaConfig extends OnInit{
        //possivel injetar dependecia na inicalização porem apenas classes configuradas para inicar no mesmo momento
    
        #[Override]
        public function ConfigOnInit() : void{
            //sua consfig
        }
    }

?>