PHP code example of net_bazzline / php_component_locator_generator
1. Go to this page and download the library: Download net_bazzline/php_component_locator_generator library. Choose the download type require. 2. Extract the ZIP file and open the index.php. 3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
net_bazzline / php_component_locator_generator example snippets
/**
* @author Net\Bazzline\Component\Locator
* @since 2014-06-07
*/
namespace Application\Service;
use My\OtherInterface as MyInterface;
use Application\Locator\BaseLocator as BaseLocator;
/**
* Class FromArrayConfigurationFileLocator
*
* @package Application\Service
*/
class FromArrayConfigurationFileLocator extends BaseLocator implements \My\Full\QualifiedInterface, MyInterface
{
/**
* @var $factoryInstancePool
*/
private $factoryInstancePool = array();
/**
* @var $sharedInstancePool
*/
private $sharedInstancePool = array();
/**
* @return \Application\Model\ExampleUniqueInvokableInstance
*/
public function getExampleUniqueInvokableInstance()
{
return new \Application\Model\ExampleUniqueInvokableInstance();
}
/**
* @return \Application\Factory\ExampleUniqueFactorizedInstanceFactory
*/
public function getExampleUniqueFactorizedInstance()
{
return $this->fetchFromFactoryInstancePool('\Application\Factory\ExampleUniqueFactorizedInstanceFactory')->create();
}
/**
* @return \Application\Model\ExampleSharedInvokableInstance
*/
public function getExampleSharedInvokableInstance()
{
return $this->fetchFromSharedInstancePool('\Application\Model\ExampleSharedInvokableInstance');
}
/**
* @return \Application\Factory\ExampleSharedFactorizedInstanceFactory
*/
public function getExampleSharedFactorizedInstance()
{
$className = '\Application\Factory\ExampleSharedFactorizedInstanceFactory';
if ($this->isNotInSharedInstancePool($className)) {
$factoryClassName = '\Application\Factory\ExampleSharedFactorizedInstanceFactory';
$factory = $this->fetchFromFactoryInstancePool($factoryClassName);
$this->addToSharedInstancePool($className, $factory->create());
}
return $this->fetchFromSharedInstancePool($className);
}
//... code for internal methods
}