Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

siriusphp/orm

Open more actions menu

Repository files navigation

Source Code Latest Version Software License Build Status Coverage Status Quality Score

Sirius ORM is a fast and lightweight yet flexible data mapper solution developed with DX in mind. It offers:

  1. Mapping rows to your own entities
  2. Relations and relation aggregates (COUNT/AVERAGE)
  3. Eager-loading & lazy-loading (without increasing the number of queries)
  4. Queries that let you JOIN with relations (not tables)
  5. Deep persistence
  6. Dynamically defined mappers
  7. Speed & low memory usage (no Entity Manager)
  8. 90+% code coverage

Installation

composer require siriusphp/orm

Initialization

use Sirius\Orm\Orm;
use Sirius\Orm\ConnectionLocator;
$connectionLocator = ConnectionLocator::new(
    'mysql:host=localhost;dbname=testdb',
    'username',
    'password'
);
$orm = new Orm($connectionLocator);

Configuration

AKA, registering mappers and relations

$orm->register('pages', MapperConfig::fromArray([
    /**
     * here goes the configuration 
     */
]));

// continue with the rest of mappers

Usage

// find by ID
$page = $orm->find('pages', 1);
// or via the mapper
$page = $orm->get('pages')->find(1);

// query
$pages = $orm->select('pages')
             ->where('status', 'published')
             ->orderBy('date desc')
             ->limit(10)
             ->get();

// manipulate
$page->title = 'Best ORM evah!';
$page->featured_image->path = 'orm_schema.png';

// persist
$orm->save($page);
// or via the mapper
$orm->get('pages')->save($page);

Links

About

Datamapper for PHP build for performance and DX

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.