Source of file PhpClass.php
Size: 3,663 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Di/Definition/Builder/PhpClass.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Di\Definition\Builder; /** * Object containing definitions for a single class */ class PhpClass { /** * @var string */ protected $defaultMethodBuilder = 'Zend\Di\Definition\Builder\InjectionMethod'; /** * @var null|string */ protected $name = null; /** * @var string|\Callable|array */ protected $instantiator = '__construct'; /** * @var InjectionMethod[] */ protected $injectionMethods = array(); /** * @var array */ protected $superTypes = array(); /** * Set name * * @param string $name * @return PhpClass */ public function setName($name) { $this->name = $name; return $this; } /** * Get name * * @return string */ public function getName() { return $this->name; } /** * @param string|\Callable|array $instantiator * @return PhpClass */ public function setInstantiator($instantiator) { $this->instantiator = $instantiator; return $this; } /** * @return array|\Callable|string */ public function getInstantiator() { return $this->instantiator; } /** * @param string $superType * @return PhpClass */ public function addSuperType($superType) { $this->superTypes[] = $superType; return $this; } /** * Get super types * * @return array */ public function getSuperTypes() { return $this->superTypes; } /** * Add injection method * * @param InjectionMethod $injectionMethod * @return PhpClass */ public function addInjectionMethod(InjectionMethod $injectionMethod) { $this->injectionMethods[] = $injectionMethod; return $this; } /** * Create and register an injection method * * Optionally takes the method name. * * This method may be used in lieu of addInjectionMethod() in * order to provide a more fluent interface for building classes with * injection methods. * * @param null|string $name * @return InjectionMethod */ public function createInjectionMethod($name = null) { $builder = $this->defaultMethodBuilder; /* @var $method InjectionMethod */ $method = new $builder(); if (null !== $name) { $method->setName($name); } $this->addInjectionMethod($method); return $method; } /** * Override which class will be used by {@link createInjectionMethod()} * * @param string $class * @return PhpClass */ public function setMethodBuilder($class) { $this->defaultMethodBuilder = $class; return $this; } /** * Determine what class will be used by {@link createInjectionMethod()} * * Mainly to provide the ability to temporarily override the class used. * * @return string */ public function getMethodBuilder() { return $this->defaultMethodBuilder; } /** * @return InjectionMethod[] */ public function getInjectionMethods() { return $this->injectionMethods; } } |