dlunamontilla / dlunire
DLUnire具有模板、模型、控制器和路由系统。此外,还包含用于读取`.env.type`文件的语法分析器,这些文件作为具有静态类型的环境变量。
Requires
- dlunamontilla/dltools: ^0.1.25
- dompdf/dompdf: ^2.0
- dev-master
- v0.1.26
- v0.1.25
- v0.1.24
- v0.1.23
- v0.1.22
- v0.1.21
- v0.1.20
- v0.1.19
- v0.1.18
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- v0.0.31
- v0.0.30
- v0.0.29
- v0.0.28
- v0.0.27
- v0.0.26
- v0.0.25
- v0.0.24
- v0.0.23
- v0.0.22
- v0.0.21
- v0.0.20
- v0.0.17
- v0.0.16
- v0.0.15
- v0.0.14
- v0.0.13
- v0.0.12
- v0.0.10
- v0.0.9
- v0.0.8
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
This package is auto-updated.
Last update: 2024-08-31 18:49:39 UTC
README
重要:文档尚未完成。尽可能更新有关该工具功能的文档。实际上,它具有类似于Laravel的模板引擎,并包含指令。
您可以通过以下链接获取该框架 在此处 或在终端中输入以下命令
composer create-project dlunamontilla/dlunire tu-app在使用此工具之前,您需要安装一个用于Visual Studio Code的扩展来获取具有静态类型的变量环境的高亮显示。您需要创建的变量环境文件名为
.env.type
。安装变量环境语法高亮显示
前往Visual Studio Code的扩展安装程序,搜索
DL Typed Environment
,如果找不到,请点击此链接下载扩展。SASS安装
要编写
SCSS
代码,您需要安装SASS,通过以下命令npm -g install sass
目录 | 结构
Raíz /
|- /public/ → Directorio de ejecución de la aplicación. Ten en cuenta que es el directorio donde corre el proyecto.
|- /app
|- /Models → Directorio para crear modelos.
|- /Auth → Para definir el sistema de autenticación.
|- /Constants → Definir constantes globales. Requiere el uso de `require` ni `include`.
|- /Controllers → Directorio de controladores.
|- /Helpers → Creación de funciones globales personalizadas.
|- /Interfaces → Definición de interfaces.
|- /routes → Directorio de definición de rutas. No se requiere utilizar `include` ni `require`
|- /resoures → Directorio para definir las plantillas con sintaxis similares a Laravel.
|- /tests → Directorio para las pruebas automatizadas.
|- /dlunire → Funcionalidad propias de `DLUnire`
安装
要使用此工具创建应用程序,您需要编写以下命令
composer create-project dlunamontilla/dlunire tu-app
然后,在上一步中,只需运行它即可
composer run dev
应用程序执行目录
应用程序执行目录是public/
,但您可以更改其名称,但请确保它始终指向您用作应用程序执行目录的目录。
如果更改名称,也必须更改
"scripts": { "dev": "php -S localhost:3000 -t public/" }
这个
"scripts": { "dev": "php -S localhost:3000 -t nuevo-directorio-de-ejecucion/" }
然而,始终建议保留相同的名称。
当前支持的HTTP方法
此微型框架支持的HTTP方法有:GET
、POST
、PUT
、PATCH
和DELETE
路由定义
您可以使用三种方式定义路由,但在定义路由之前,您必须了解路由的定义位置。
您可以在位于应用程序根目录的/routes
目录中的任何文件中定义路由。
这里有三种定义方法
-
将一个字符串作为第二个参数传递
use DLRoute\Requests\DLRoute; DLRoute::get('/', "DLUnire\\Controllers\\TestController@method");
这样,将指向位于
app/Controllers/TestController.php
路径的控制器,同时执行method
方法。 -
将一个
callback
作为第二个参数传递use DLRoute\Requests\DLRoute; DLRoute::get("/", function() { return view('vista'); });
您也可以在路由中传递参数
use DLRoute\Requests\DLRoute; DLRoute::get("/user/{id}", function(object $param) { return view('vista', [ "param" => $param ]); });
-
第三种方法是传递一个数组作为第二个参数
use DLRoute\Requests\DLRoute; DLRoute::get("/user/{id}", [TestController::class, 'method'])
这种方法不仅更优雅、更强大。在定义路由的第一种和第三种方法中,都可以传递参数,并在定义控制器时自动捕获用户请求。
还可以简单地上传文件,并包括类型过滤。
控制器定义
让我们看看如何定义一个控制器,为了做到这一点,我们必须编写以下几行
namespace DLUnire\Controllers; use Framework\Config\Controller; final class TestController extends Controller { public function method(object $params): string { return view('vista', [ "variable1" => "Valor de la variable 1", "variable2" => "Valor de la variable 2" ]); } }
请注意,$param
参数是可选的。您不需要定义它。
您定义的每个控制器都应位于/app/Controllers
目录中,最好是这个目录。定义在该路径中的控制器是否位于子目录中无关紧要。
在$param
中定义的参数是在类似这样的路径中定义的
/ruta/{param1}/{param2}{paramN} # Estos parámetros se convierten a esto de forma automática: $param->param1; $param->param2; $param->paramN;
从控制器捕获值
您可以从请求控制器中捕获值,而无需以这种方式编写$_GET
、$_POST
或$_REQUEST
namespace DLUnire\Controllers; use Framework\Config\Controller; final class TestController extends Controller { public function method(object $param): string { /* * Valores de la petición * * @var array $values */ $values = $this->get_values(); return view('vista'); } }
$values
的内容是一个关联数组,其中键是表单字段的名称或JSON,如果发送了JSON,则是字段的内容,显然是表单字段的值
用户输入验证
如果您想接收用户输入,例如电子邮件、UUID
字符串或其他格式,可以编写以下几行
namespace DLUnire\Controllers; use Framework\Config\Controller; final class TestController extends Controller { public function method(object $param): string { /** * Correo electrónico * * @var string|null $email */ $email = $this->get_email('email'); /** * Identificador único universal * * @var string |null $uuid */ $uuid = $this->get_uuid('uuid'); return view('vista', [ "email" => $email, "uuid" => $uuid ]); } }
创建模型
要创建模型,可以在位于app/Models
的文件中编写以下几行
namespace DLUnire\Models; use DLTools\Database\Model; final class Tabla extends Model {}
不需要定义其他内容,除非您想添加自定义功能。
当在模型中定义一个名为Tabla
的类时,DLUnire
将能够映射表名,例如,如果类名为Tabla
,则它将自动指向tabla
,如果表名有前缀,则必须在环境变量中使用静态类型指示它(我们稍后再讨论)。
如果要让您的Tabla
类指向另一个表,只需按以下方式定义它
namespace DLUnire\Models; use DLTools\Database\Model; final class Tabla extends Model { protected static ?string $table = "otra_tabla"; }
就是这样。您不需要做更多的事情。
我如何使用模型与数据库交互?
要使用您刚刚创建的模型与数据库交互,只需调用其可用的方法,具体取决于您所处的上下文,例如,您将获取用户列表。
要获取用户列表,请确保您的类是PascalCase
,并且名称与用户表相匹配,例如
namespace DLUnire\Models; use DLTools\Database\Model; class Users extends Model {}
然后,以这种方式查询用户列表
$users = Users::get();
此外,您也可以以这种方式查询带分页的用户列表
/** * Número de páginas * * @var int $page */ $page = 1; /** * Registros por página * * @var integer $rows */ $rows = 100; $users = Users::paginate($page, $rows);
继续
到目前为止,就到这里。这个教程还有很多内容要做,因为项目相当庞大。因为这个项目相当庞大。