public function getPaginator(array $paginatorOptions = array()) { $defaultPaginatorOptions = array('itemCountPerPage' => 10, 'pageRange' => 5, 'pageNumber' => 1); $dataClass = $this->getDataClass(); $count = $dataClass->getCount(); if (!$count) { return $this->paginator = null; } $dbPaginatorOptions = $dataClass->getPaginatorOptions(); $paginatorOptions = array_merge($defaultPaginatorOptions, $dbPaginatorOptions, $paginatorOptions); $count = (int) $count; $diConfig = array('instance' => array('Zend\\Paginator\\Adapter\\DbSelect' => array('parameters' => array('rowCount' => $count, 'select' => $dataClass->getSelect(), 'adapterOrSqlObject' => $dataClass->getSql())), 'Eva\\Paginator\\Paginator' => array('parameters' => array('rowCount' => $count, 'adapter' => 'Zend\\Paginator\\Adapter\\DbSelect')))); foreach ($paginatorOptions as $key => $value) { if (false === in_array($key, array('itemCountPerPage', 'pageNumber', 'pageRange'))) { continue; } $diConfig['instance']['Eva\\Paginator\\Paginator']['parameters'][$key] = $paginatorOptions[$key]; } $di = new \Zend\Di\Di(); $di->configure(new \Zend\Di\Config($diConfig)); $paginator = $di->get('Eva\\Paginator\\Paginator'); return $this->paginator = $paginator; }
<?php namespace MovieApp { class Lister { public $finder; public function setFinder(Finder $finder) { $this->finder = $finder; } } class Finder { } } namespace { // bootstrap include 'zf2bootstrap' . (stream_resolve_include_path('zf2bootstrap.php') ? '.php' : '.dist.php'); $di = new Zend\Di\Di(); $di->configure(new Zend\Di\Configuration(array('definition' => array('class' => array('MovieApp\\Lister' => array('setFinder' => array('required' => true))))))); $lister = $di->get('MovieApp\\Lister'); // expression to test $works = $lister->finder instanceof MovieApp\Finder; // display result echo $works ? 'It works!' : 'It DOES NOT work!'; }
<?php $adapter = (include file_exists('bootstrap.php') ? 'bootstrap.php' : 'bootstrap.dist.php'); $di = new Zend\Di\Di(); $di->configure(new Zend\Di\Configuration(array('instance' => array('Zend\\Db\\Adapter\\Adapter' => array('parameters' => array('driver' => $dbconfig)))))); //var_dump($di->instanceManager()); $db = $di->get('Zend\\Db\\Adapter\\Adapter'); echo $db->platform->getName() . PHP_EOL;
<?php namespace Foo\Bar { class Baz { public $bam; public function setBam(Bam $bam) { $this->bam = $bam; } } class Bam { } } namespace { include 'zf2bootstrap.php'; $di = new Zend\Di\Di(); $di->configure(new Zend\Di\Configuration(array('definition' => array('class' => array('Foo\\Bar\\Baz' => array('setBam' => array('required' => true))))))); $baz = $di->get('Foo\\Bar\\Baz'); // expression to test $works = $baz->bam instanceof Foo\Bar\Bam; // display result echo $works ? 'It works!' : 'It DOES NOT work!'; }
{ public $finder; public function __construct(Finder $finder) { $this->finder = $finder; } } class Finder { public $source; public function __construct(Source $source) { $this->source = $source; } } class Source { } } namespace { // bootstrap include 'zf2bootstrap' . (stream_resolve_include_path('zf2bootstrap.php') ? '.php' : '.dist.php'); $di = new Zend\Di\Di(); $di->configure(new Zend\Di\Configuration(array('instance' => array('MovieApp\\Finder' => array('shared' => false))))); $lister1 = $di->get('MovieApp\\Lister1'); $lister2 = $di->get('MovieApp\\Lister2'); // expression to test $works = $lister1->finder instanceof MovieApp\Finder && $lister1->finder !== $lister2->finder && $lister1->finder->source === $lister2->finder->source; // display result echo ($works ? 'It works!' : 'It DOES NOT work!') . PHP_EOL; }
<?php namespace MovieApp { class Lister { public $finder; public function setFinder(FinderInterface $finder) { $this->finder = $finder; } } class DbFinder implements FinderInterface { } interface FinderInterface { } } namespace { // bootstrap include 'zf2bootstrap' . (stream_resolve_include_path('zf2bootstrap.php') ? '.php' : '.dist.php'); $di = new Zend\Di\Di(); $di->configure(new Zend\Di\Configuration(array('instance' => array('preferences' => array('MovieApp\\FinderInterface' => 'MovieApp\\DbFinder'))))); $lister = $di->get('MovieApp\\Lister'); // expression to test $works = $lister->finder instanceof MovieApp\DbFinder; // display result echo ($works ? 'It works!' : 'It DOES NOT work!') . PHP_EOL; }
class Page { public $blocks; public function addBlock(Block $block) { $this->blocks[] = $block; } } interface Block { } } namespace DifferentNs { class BlockOne implements \Application\Block { } class BlockTwo implements \Application\Block { } } namespace { // bootstrap include 'zf2bootstrap' . (stream_resolve_include_path('zf2bootstrap.php') ? '.php' : '.dist.php'); $di = new Zend\Di\Di(); $di->configure(new Zend\Di\Configuration(array('definition' => array('class' => array('Application\\Page' => array('addBlock' => array('block' => array('type' => 'Application\\Block', 'required' => true))))), 'instance' => array('Application\\Page' => array('injections' => array('DifferentNs\\BlockOne', 'DifferentNs\\BlockTwo')))))); $page = $di->get('Application\\Page'); // expression to test $works = $page->blocks[0] instanceof DifferentNs\BlockOne && $page->blocks[1] instanceof DifferentNs\BlockTwo; // display result echo ($works ? 'It works!' : 'It DOES NOT work!') . PHP_EOL; }
require_once 'library/Zend/Loader/StandardAutoloader.php'; $loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true)); $loader->registerNamespace('SON', 'library/SON'); $loader->register(); $definitionList = new Zend\Di\DefinitionList(array($runtime = new Zend\Di\Definition\RuntimeDefinition())); $di = new Zend\Di\Di($definitionList); //$di->instanceManager()->setParameters('SON\Db\Connection', array( // 'server' => 'localhost', // 'dbname' => 'banco', // 'user' => 'username', // 'password' => 123 //)); $di->instanceManager()->addAlias('conexao1', 'SON\\Db\\Connection', array('server' => 'localhost', 'dbname' => 'banco', 'user' => 'username', 'password' => 123)); $di->instanceManager()->addAlias('conexao2', 'SON\\Db\\Connection', array('server' => 'localhost', 'dbname' => 'banco2', 'user' => 'username', 'password' => 1234)); $conexao1 = $di->get('conexao1'); $conexao2 = $di->get('conexao2'); $di->instanceManager()->addTypePreference('SON\\Db\\Connection', 'conexao1'); $categoria = $di->get('SON\\Categoria', array('db' => 'conexao2')); #$di = new Zend\Di\Di; //$di->configure(new Zend\Di\Config(array( // 'definition' => array( // 'class' => array( // 'SON\Produto' => array( // 'setCategoria' => array('required'=>true) // ) // ) // ) //))); $di->configure(new Zend\Di\Config(array('definition' => array('class' => array('SON\\Produto' => array('addCategoria' => array('categoria' => array('type' => 'SON\\CategoriaInterface', 'required' => true))))), 'instance' => array('SON\\Produto' => array('injections' => array('SON\\Categoria', 'SON\\Category', 'SON\\Categoria')))))); $produto = $di->get('SON\\Produto'); print_r($produto);
class Mapper { public $drivers; public function addDriver(Driver $driver, $name) { $this->drivers[] = array($driver, $name); } } interface Driver { } } namespace DifferentNs { class DriverOne implements \System\Driver { } class DriverTwo implements \System\Driver { } } namespace { // bootstrap include 'zf2bootstrap' . (stream_resolve_include_path('zf2bootstrap.php') ? '.php' : '.dist.php'); $di = new Zend\Di\Di(); $di->configure(new Zend\Di\Configuration(array('definition' => array('class' => array('System\\Mapper' => array('addDriver' => array('driver' => array('type' => 'System\\Driver', 'required' => true), 'name' => array('required' => true))))), 'instance' => array('System\\Mapper' => array('injections' => array('addDriver' => array(array('driver' => 'DifferentNs\\DriverOne', 'name' => 'foo'), array('driver' => 'DifferentNs\\DriverTwo', 'name' => 'bar')))))))); $mapper = $di->get('System\\Mapper'); // expression to test $works = $mapper->drivers[0][0] instanceof DifferentNs\DriverOne && $mapper->drivers[1][0] instanceof DifferentNs\DriverTwo; // display result echo ($works ? 'It works!' : 'It DOES NOT work!') . PHP_EOL; }