lumitech / lumenix
A lightweight and efficient PHP framework based in Laravel.
This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.
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
This package is not auto-updated.
Last update: 2024-11-27 15:12:45 UTC
README
Lumenix is a lightweight and efficient PHP framework designed for modern web applications. This is a personal project, not ready for production use, it's just a practice.
Tabla de Contenidos
Introducción
Lumenix es un framework de PHP diseñado para ser fácil de usar y flexible. Proporciona herramientas para el desarrollo rápido de aplicaciones web, incluyendo un sistema de enrutamiento, manejo de base de datos y una CLI para la generación de componentes.
Características
- Estructura MVC
- ORM (Object-Relational Mapping)
- CLI para generación de controladores, modelos y migraciones
- Sistema de enrutamiento
- Soporte para trabajos en cola
Requisitos
- PHP 8.0 o superior
- MySQL 5.7 o superior
- Composer
Installation
You can install Lumenix via Composer:
composer create-project franciscoandriano/lumenix my-lumenix-app
Configuración
Copia el archivo .env.example a .env y ajusta los parámetros según tu entorno
Uso
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
para ejecutar las migraciones
php lumenix migrate
trabajos-en-cola
php lumenix make:job NombreJob
configurar la variable QUEUE_TYPE opciones database o file
$emailData = [];
$job = new SendEmailJob($emailData);
$this->queue->push($job);
orm
User::find($id);
User::all();
User::where('status', 'active')->get()
query-builder
todos los registros
$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();
Consultar con ORDER BY, LIMIT y OFFSET
$query = (new QueryBuilder('products'))
->select(['id', 'name', 'price'])
->orderBy('price', 'DESC')
->limit(10)
->offset(20)
->get();
Con WHERE y 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();
```