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.

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Type:project

pkg:composer/lumitech/lumenix

v1.0.0 2024-11-12 16:34 UTC

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();
```