danieltm / origins
V1.5.3
2024-09-19 18:43 UTC
Requires
- php: ^8.0
README
简介
Origins 是一个用于简化 Web 应用程序开发的 PHP 最小化框架。它提供了一个灵活且可扩展的结构,以高效地构建 Web 应用程序。
安装
要开始使用 Origins 框架,请按照以下简单步骤操作
-
在您的开发环境中克隆 Origins 仓库
git clone https://github.com/DanielTM999/origins.git
-
安装 Composer 依赖
composer require danieltm/origins
-
配置您的 Web 服务器,将请求重定向到框架的
public
目录。
主要要求
PHP 8.0
核心概念
Origins 框架基于一些基本概念构建
-
控制器:带有
Controller
属性的类,包含与 API 端点对应的方法。 -
依赖注入:框架使用依赖注入来管理和自动注入所需的依赖项到类中。
-
路由属性:使用
Get
、Post
、Delete
和Put
属性将控制器方法映射到 API 端点。 -
类自动映射和自动加载:框架使用自己的映射器来加载类和依赖项,无需使用 composer 或其他映射器。
基本用法
要使用 Origins 框架创建 Web 应用程序,请按照以下步骤操作
-
定义您的控制器:创建带有
Controller
属性的控制器类。 -
定义端点:使用
Get
、Post
、Delete
和Put
属性将控制器方法映射到 API 端点。 -
启动框架:创建
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 } } ?>