lightning / model
Light & fast PHP ORM, using Hydrahon (query builder), Carbon (DateTime extension) and Eloquent's Collection component (Laravel).
Requires
- php: ^7.2 || ^8.0
- clancats/hydrahon: ^1.1.8
- doctrine/inflector: ^1.3
- nesbot/carbon: ^1.36.2 || ^2
- tightenco/collect: ^5.7 || ^9.0
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2026-05-29 13:33:35 UTC
README
Lightning Model is an ORM (Object Relational Mapper) written in PHP.
Why reinventing the wheel ?
I like the Laravel/Eloquent syntax and philosophy, but the performances are very poor when requesting relations from a collection (example : $customers->orders) because it makes one query per customer... Lightning Model makes a single request and hydrates all the entities at once.
I also have the habbit of prefixing all my fields with the table's name to make them unique (examples : customer.cst_id, order.rdr_id, order.rdr_cst_id). This allows to make requests without using the tables names : SELECT * FROM order JOIN customer ON cst_id = rdr_cst_id. Lightning Model handles this natively.
Installation
Lightning Model follows PSR-4 autoloading and can be installed using composer:
$ composer require 'lightning/model'
Running tests
The root user should be able to connect to MySQL without any password.
You should also run those two commands to install the dependencies and the test database :
$ composer install
$ tests/bin/init.sh
After that, you can run the tests using Composer :
$ composer test
Quick Start
Not written yet...
Dependencies
Lightning Model is using :
- Hydrahon (query builder)
- Carbon (DateTime extension)
- The
Collectioncomponent from Laravel/Eloquent
License
The MIT License (MIT). Please see License File for more information.