lumitech / lumenix
基于Laravel的一个轻量级且高效的PHP框架。
v1.0.0
2024-09-25 04:04 UTC
Requires
- php: ^8.0
- fakerphp/faker: ^1.23
- nesbot/carbon: ^3.2
- phpmailer/phpmailer: ^6.9
- symfony/console: ^7.0
- symfony/dotenv: ^7.0
- symfony/filesystem: ^7.0
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();
```