2017 © Pedro Peláez
 

library app-di

Application micro-framework using php-di/php-di package

image

skobka/app-di

Application micro-framework using php-di/php-di package

  • Tuesday, June 28, 2016
  • by skobka
  • Repository
  • 1 Watchers
  • 0 Stars
  • 11 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Install

composer create-project -s dev skobka/app-di-app my_app

Usage

Directory tree

config/ 
-- bootstrap.php
-- containers.php
-- parameters.yml
-- parameters.yml.dis
src/ 
-- Application.php
app.php

File examples

bootstrap.php

use skobka\common\configuration\Builder;
use Symfony\Component\Yaml\Yaml;

$parameters = Yaml::parse(
    file_get_contents(__DIR__.'/parameters.yml'),
    Yaml::PARSE_OBJECT_FOR_MAP
);

$containers = include __DIR__ . '/containers.php';

$parameters->containers = $containers;

return Builder::build($parameters);

containers.php

return [
    PDO::class => \DI\object()->constructor(
        $parameters->pdo->dsn,
        $parameters->pdo->user,
        $parameters->pdo->password,
        []
    ),
];

parameters.yml & parameters.yml.dist

class: \skobka\appDi\configuration\BaseConfiguration
pdo:
  class: \skobka\appDi\configuration\BasePdoConfiguration
  dsn: mysql:host=localhost;dbname=test
  user: testUser
  password: testPassword

Application.php


use Interop\Container\ContainerInterface; use skobka\common\interfaces\ApplicationInterface; use skobka\common\interfaces\ContainerisedInterface; /** * Class Application */ class Application implements ApplicationInterface, ContainerisedInterface { /** * @var ContainerInterface */ protected $container; /** * Start an application instance * @return void */ public function start() { //TODO: create logic } /** * Set container to the current object * @param \Interop\Container\ContainerInterface $container * @return void */ public function setContainer(ContainerInterface $container) { $this->container = $container; } }

app.php


use DI\ContainerBuilder; use skobka\common\configuration\interfaces\ConfigurationInterface; use skobka\common\configuration\interfaces\ContainerDefinitionInterface; use skobka\common\interfaces\ApplicationInterface; use skobka\common\interfaces\ContainerisedInterface; use uroweb\push\Application; include __DIR__."/vendor/autoload.php"; /* @var $conf ConfigurationInterface|ContainerDefinitionInterface */ $conf = include __DIR__."/config/bootstrap.php"; $build = new ContainerBuilder(); $build->addDefinitions($conf->getDefinitions()); $container = $build->build(); /* @var $appInstance ApplicationInterface|ContainerisedInterface */ $appInstance = $container->get(Application::class); $appInstance->setContainer($container); $appInstance->start();

The Versions

28/06 2016

dev-master

9999999-dev

Application micro-framework using php-di/php-di package

  Sources   Download

MIT

The Requires

 

by Soshnikov Artem