lumitech/lumenix

基于Laravel的一个轻量级且高效的PHP框架。

安装: 1

依赖项: 0

建议者: 0

安全: 0

类型:项目

v1.0.0 2024-09-25 04:04 UTC

This package is auto-updated.

Last update: 2024-09-25 04:17:39 UTC


README

Lumenix是一个轻量级且高效的PHP框架,专为现代网络应用设计。这是一个个人项目,尚未准备用于生产环境,仅作为练习。

目录表

简介

Lumenix是一个设计用于易于使用和灵活的PHP框架。它提供工具,用于快速开发网络应用,包括路由系统、数据库管理和用于生成组件的CLI。

特性

  • MVC结构
  • ORM(对象关系映射)
  • 用于生成控制器、模型和迁移的CLI
  • 路由系统
  • 支持队列工作

要求

  • PHP 8.0或更高版本
  • MySQL 5.7或更高版本
  • Composer

安装

您可以通过Composer安装Lumenix

composer create-project franciscoandriano/lumenix my-lumenix-app

配置

将.env.example文件复制为.env并根据您的环境调整参数

使用

creación-de-controladores

php lumenix make:controller NombreDelControllador

creación-de-modelos

php lumenix make:model NombreDelModelo

enrutamiento

// register simple route
Route::get('/example', function () {
    return 'Hello, World!';
});
//Register route group
Route::group([
    'prefix' => 'admin',
    'middleware' => [MiddlewaresAuth::class]
], function () {
    Route::get('/home1/:id', [HomeController::class, 'home']);
    Route::get('/home2', [HomeController::class, 'home2']);
});

migraciones

php lumenix make:migration NombreMigracion

以执行迁移

php lumenix migrate

trabajos-en-cola

php lumenix make:job NombreJob

配置QUEUE_TYPE变量为database或file

 $emailData = [];
$job = new SendEmailJob($emailData);
$this->queue->push($job);

orm

User::find($id);
User::all();
User::where('status', 'active')->get()

query-builder

所有记录

$query = (new QueryBuilder('users'))
    ->select(['id', 'name', 'email'])
    ->get();
Consultar con Cláusula WHERE
    $query = (new QueryBuilder('users'))
    ->select()
    ->where('age', '>', 21)
    ->where('status', '=', 'active')
    ->get();
Consultar con JOIN
    $query = (new QueryBuilder('orders'))
    ->select(['orders.id', 'users.name'])
    ->join('users', 'orders.user_id', '=', 'users.id')
    ->where('orders.status', '=', 'pending')
    ->get();

使用ORDER BY、LIMIT和OFFSET进行查询

$query = (new QueryBuilder('products'))
    ->select(['id', 'name', 'price'])
    ->orderBy('price', 'DESC')
    ->limit(10)
    ->offset(20)
    ->get();

使用WHERE和OR WHERE

$query = (new QueryBuilder('users'))
    ->select(['id', 'name', 'email'])
    ->where('age', '>', 21)
    ->orWhere('status', '=', 'active')
    ->get();
Con JOIN:

```php
$query = (new QueryBuilder('orders'))
->select(['orders.id', 'users.name'])
->join('users', 'orders.user_id', '=', 'users.id')
->where('orders.status', '=', 'pending')
->get();

    Con GROUP BY, HAVING, ORDER BY, LIMIT y OFFSET:
$query = (new QueryBuilder('products'))
->select(['id', 'name', 'price'])
->groupBy('category')
->having('price', '>', 100)
->orderBy('price', 'DESC')
->limit(10)
->offset(20)
->get();
```