Home

Awesome

Hawkbit Doctrine

Latest Version on Packagist Software License Build Status Total Downloads Coverage Status

Doctrine 2 ORM integration for Hawkbit PSR-7 Micro PHP framework.

Install

Using Composer

Hawkbit Doctrine is available on Packagist and can be installed using Composer. This can be done by running the following command or by updating your composer.json file.

composer require hawkbit/doctrine

composer.json

{
    "require": {
        "hawkbit/doctrine": "~1.0"
    }
}

Be sure to also include your Composer autoload file in your project:

<?php

require __DIR__ . '/vendor/autoload.php';

Downloading .zip file

This project is also available for download as a .zip file on GitHub. Visit the releases page, select the version you want, and click the "Source code (zip)" download button.

Requirements

The following versions of PHP are supported by this version.

Setup

Setup with an existing application configuration (we refer to tests/assets/config.php)

<?php

use \Hawkbit\Application;
use \Hawkbit\Doctrine\DoctrineService;
use \Hawkbit\Doctrine\DoctrineServiceProvider;

$app = new Application(require_once __DIR__ . '/config.php');

$entityFactoryClass = \ContainerInteropDoctrine\EntityManagerFactory::class;

$doctrineService = new DoctrineService([
   DoctrineService::resolveFactoryAlias($entityFactoryClass) => [$entityFactoryClass]
], $app);

$app->register(new DoctrineServiceProvider($doctrineService));

Examples

Full configuration

A full configuration is available on DASPRiD/container-interop-doctrine/example/full-config.php. Refer to container-interop-doctrine Documentation for further instructions on factories.

Doctrine from Hawbit Application

<?php

/** @var \Hawkbit\Doctrine\DoctrineServiceInterface $doctrine */
$doctrine = $app[\Hawkbit\Doctrine\DoctrineServiceInterface::class];

$em = $doctrine->getEntityManager();

// or with from specific connection
$em = $doctrine->getEntityManager('connectionname');

Doctrine in a Hawkbit controller

Access doctrine service in controller. Hawbit is inject classes to controllers by default.

<?php

use \Hawkbit\Doctrine\DoctrineServiceInterface;

class MyController{
    
    /**
     * @var \Hawkbit\Doctrine\DoctrineServiceInterface 
     */
    private $doctrine = null;
    
    public function __construct(DoctrineServiceInterface $doctrine){
        $this->doctrine = $doctrine;
    }
    
    public function index(){
        $em = $this->doctrine->getEntityManager();
        
        // or with from specific connection
        $em = $this->doctrine->getEntityManager('connectionname');
    }
}

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email mjls@web.de instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.