From 18a96a31fe780f743da5740acc66fab821c401ca Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Sun, 17 Jun 2012 03:36:23 +0200 Subject: [PATCH 01/15] Adding minor todo to remind about moving some code to servicelocator namespace --- src/Di.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Di.php b/src/Di.php index f7b9a893..b3eb3996 100644 --- a/src/Di.php +++ b/src/Di.php @@ -300,6 +300,7 @@ protected function handleInjectDependencies($instance, $injectionMethods, $param $methodParams = $definitions->getMethodParameters($type, $typeInjectionMethod); if ($methodParams) { foreach ($methodParams as $methodParam) { + // @todo override in ServiceLocator sub-namespace $objectToInjectClass = $objectToInject instanceof ServiceLocator\GeneratorInstance ? $objectToInject->getClass() : get_class($objectToInject); if ($objectToInjectClass == $methodParam[1] || $this->isSubclassOf($objectToInjectClass, $methodParam[1])) { if ($this->resolveAndCallInjectionMethodForInstance($instance, $typeInjectionMethod, array($methodParam[0] => $objectToInject), $instanceAlias, true, $type)) { From 2239a27d3df05d50b2ca67f8657f53da681dfd1a Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Sun, 17 Jun 2012 07:13:49 +0200 Subject: [PATCH 02/15] Enabling tests for code generator again, since it has been updated --- test/ServiceLocator/GeneratorTest.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/test/ServiceLocator/GeneratorTest.php b/test/ServiceLocator/GeneratorTest.php index 3cb02e34..6d18f5bc 100644 --- a/test/ServiceLocator/GeneratorTest.php +++ b/test/ServiceLocator/GeneratorTest.php @@ -19,7 +19,6 @@ class GeneratorTest extends TestCase public function setUp() { - $this->markTestIncomplete('Generator must be refactored to current di.'); $this->tmpFile = false; $this->di = new Di; } @@ -164,11 +163,11 @@ public function testCreatesContainerClassWithCasesForEachService() } $expected = array( 'composed', - 'ZendTest\Di\TestAsset\ComposedClass', + 'ZendTest\Di\TestAsset\ComposedClass', 'inspect', - 'ZendTest\Di\TestAsset\InspectedClass', + 'ZendTest\Di\TestAsset\InspectedClass', 'struct', - 'ZendTest\Di\TestAsset\Struct', + 'ZendTest\Di\TestAsset\Struct', ); $this->assertEquals(count($expected), count($services), var_export($services, 1)); foreach ($expected as $service) { @@ -206,7 +205,7 @@ public function testCreatesContainerClassWithMethodsForEachServiceAndAlias() $expected = array( 'get', 'getZendTestDiTestAssetComposedClass', - 'getComposed', + 'getComposed', 'getZendTestDiTestAssetInspectedClass', 'getInspect', 'getZendTestDiTestAssetStruct', @@ -224,7 +223,7 @@ public function testAllowsRetrievingClassFileCodeGenerationObject() $builder = new ContainerGenerator($this->di); $builder->setContainerClass('Application'); $codegen = $builder->getCodeGenerator(); - $this->assertInstanceOf('Zend\CodeGenerator\Php\PhpFile', $codegen); + $this->assertInstanceOf('Zend\Code\Generator\FileGenerator', $codegen); } public function testCanSpecifyNamespaceForGeneratedPhpClassfile() From 17a0f73472d6f7419a752d798f36d2146dadb5f2 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Tue, 19 Jun 2012 20:09:04 +0200 Subject: [PATCH 03/15] Fixing DependencyInjectorProxy to avoid executing resolveAndCallInjectionMethodForInstance on non-proxy instancesAlso, allowing override of usage of get_class in Zend\Di\Di. This allows more flexibility when extending it --- src/Di.php | 21 ++++++++++++++----- .../DependencyInjectorProxy.php | 10 ++++++++- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/Di.php b/src/Di.php index b3eb3996..83d6aa7d 100644 --- a/src/Di.php +++ b/src/Di.php @@ -229,7 +229,7 @@ public function newInstance($name, array $params = array(), $isShared = true) public function injectDependencies($instance, array $params = array()) { $definitions = $this->definitions(); - $class = get_class($instance); + $class = $this->getClass($instance); $injectionMethods = array( $class => ($definitions->hasClass($class)) ? $definitions->getMethods($class) : array() ); @@ -300,8 +300,7 @@ protected function handleInjectDependencies($instance, $injectionMethods, $param $methodParams = $definitions->getMethodParameters($type, $typeInjectionMethod); if ($methodParams) { foreach ($methodParams as $methodParam) { - // @todo override in ServiceLocator sub-namespace - $objectToInjectClass = $objectToInject instanceof ServiceLocator\GeneratorInstance ? $objectToInject->getClass() : get_class($objectToInject); + $objectToInjectClass = $this->getClass($objectToInject); if ($objectToInjectClass == $methodParam[1] || $this->isSubclassOf($objectToInjectClass, $methodParam[1])) { if ($this->resolveAndCallInjectionMethodForInstance($instance, $typeInjectionMethod, array($methodParam[0] => $objectToInject), $instanceAlias, true, $type)) { $calledMethods[$typeInjectionMethod] = true; @@ -377,7 +376,7 @@ protected function createInstanceViaCallback($callback, $params, $alias) } if (is_array($callback)) { - $class = (is_object($callback[0])) ? get_class($callback[0]) : $callback[0]; + $class = (is_object($callback[0])) ? $this->getClass($callback[0]) : $callback[0]; $method = $callback[1]; } elseif (is_string($callback) && strpos($callback, '::') !== false) { list($class, $method) = explode('::', $callback, 2); @@ -404,7 +403,7 @@ protected function createInstanceViaCallback($callback, $params, $alias) */ protected function resolveAndCallInjectionMethodForInstance($instance, $method, $params, $alias, $methodIsRequired, $methodClass = null) { - $methodClass = ($methodClass) ?: get_class($instance); + $methodClass = ($methodClass) ?: $this->getClass($instance); $callParameters = $this->resolveMethodParameters($methodClass, $method, $params, $alias, $methodIsRequired); if ($callParameters == false) { return false; @@ -659,6 +658,18 @@ protected function resolveMethodParameters($class, $method, array $callTimeUserP return $resolvedParams; // return ordered list of parameters } + /** + * Utility method used to retrieve the class of a particular instance. This is here to allow extending classes to + * override how class names are resolved + * + * @param Object $instance + * @return string + */ + protected function getClass($instance) + { + return get_class($instance); + } + /** * @see https://bugs.php.net/bug.php?id=53727 * diff --git a/src/ServiceLocator/DependencyInjectorProxy.php b/src/ServiceLocator/DependencyInjectorProxy.php index 832678a5..fb00fa83 100644 --- a/src/ServiceLocator/DependencyInjectorProxy.php +++ b/src/ServiceLocator/DependencyInjectorProxy.php @@ -122,7 +122,7 @@ public function handleInjectionMethodForObject($class, $method, $params, $alias, protected function resolveAndCallInjectionMethodForInstance($instance, $method, $params, $alias, $methodIsRequired, $methodClass = null) { if (!$instance instanceof GeneratorInstance) { - parent::resolveAndCallInjectionMethodForInstance($instance, $method, $params, $alias, $methodIsRequired, $methodClass); + return parent::resolveAndCallInjectionMethodForInstance($instance, $method, $params, $alias, $methodIsRequired, $methodClass); } /* @var $instance GeneratorInstance */ @@ -136,4 +136,12 @@ protected function resolveAndCallInjectionMethodForInstance($instance, $method, )); } } + + /** + * {@inheritDoc} + */ + protected function getClass($instance) + { + return $instance instanceof GeneratorInstance ? $instance->getClass() : get_class($instance); + } } From 23c0f1424ca93de85c34fd07bfe2cc01fa72175a Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Tue, 19 Jun 2012 23:03:50 +0200 Subject: [PATCH 04/15] Documenting code for GeneratorInstance, allowing string callbacks in DependencyInjectorProxy, fixing instance name when an instance is generated via callback --- .../DependencyInjectorProxy.php | 16 ++++++++++--- src/ServiceLocator/GeneratorInstance.php | 23 ++++++++++++++----- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/ServiceLocator/DependencyInjectorProxy.php b/src/ServiceLocator/DependencyInjectorProxy.php index fb00fa83..e518c8a9 100644 --- a/src/ServiceLocator/DependencyInjectorProxy.php +++ b/src/ServiceLocator/DependencyInjectorProxy.php @@ -43,6 +43,12 @@ public function newInstance($name, array $params = array(), $isShared = true) if ($instance instanceof GeneratorInstance) { /* @var $instance GeneratorInstance */ $instance->setShared($isShared); + + // When a callback is used, we don't know instance the class name. + // That's why we assume $name as the instance alias + if (null === $instance->getName()) { + $instance->setAlias($name); + } } return $instance; @@ -82,14 +88,18 @@ public function createInstanceViaConstructor($class, $params, $alias = null) */ public function createInstanceViaCallback($callback, $params, $alias) { + if (is_string($callback)) { + $callback = explode('::', $callback); + } + if (!is_callable($callback)) { throw new Exception\InvalidCallbackException('An invalid constructor callback was provided'); } - // @todo add support for string callbacks? - if (!is_array($callback) || is_object($callback[0])) { - throw new Exception\InvalidCallbackException('For purposes of service locator generation, constructor callbacks must refer to static methods only'); + throw new Exception\InvalidCallbackException( + 'For purposes of service locator generation, constructor callbacks must refer to static methods only' + ); } $class = $callback[0]; diff --git a/src/ServiceLocator/GeneratorInstance.php b/src/ServiceLocator/GeneratorInstance.php index c984d377..3e68fac1 100644 --- a/src/ServiceLocator/GeneratorInstance.php +++ b/src/ServiceLocator/GeneratorInstance.php @@ -5,7 +5,7 @@ class GeneratorInstance { /** - * @var string + * @var string|null */ protected $class; @@ -49,7 +49,9 @@ public function __construct($class, $alias, $constructor, array $params) } /** - * @return string instance or class name + * Retrieves the best available name for this instance (instance alias first then class name) + * + * @return string|null */ public function getName() { @@ -57,7 +59,9 @@ public function getName() } /** - * @return string + * Class of the instance. Null if class is unclear (such as when the instance is produced by a callback) + * + * @return string|null */ public function getClass() { @@ -65,6 +69,8 @@ public function getClass() } /** + * Alias for the instance (if any) + * * @return string|null */ public function getAlias() @@ -102,7 +108,7 @@ public function setAlias($alias) /** * Get instantiator * - * @return mixed constructor method or callable for the instance + * @return mixed constructor method name or callable responsible for generating instance */ public function getConstructor() { @@ -110,7 +116,8 @@ public function getConstructor() } /** - * Get params + * Parameters passed to the instantiator as an ordered list of parameters. Each parameter that refers to another + * instance fetched recursively is a GeneratorInstance itself * * @return array */ @@ -144,7 +151,9 @@ public function addMethod($method) } /** - * Retrieves an ordered list of methods called on the instance + * Retrieves a list of methods that are called on the instance in their call order. Each returned element has form + * array('method' => 'methodName', 'params' => array( ... ordered list of call parameters ... ), where every call + * parameter that is a recursively fetched instance is a GeneratorInstance itself * * @return array */ @@ -162,6 +171,8 @@ public function setShared($shared) } /** + * Retrieves whether the instance is shared or not + * * @return bool */ public function isShared() From 0f16e86626510c11a5c98f9543d41386a055621e Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Thu, 5 Jul 2012 21:26:18 +0200 Subject: [PATCH 05/15] Cleaning up documentations and marking utility method as internal to warn potential users --- src/Di.php | 3 +++ .../DependencyInjectorProxy.php | 20 +++++++++++++++---- src/ServiceLocator/Generator.php | 1 - src/ServiceLocator/GeneratorInstance.php | 3 +++ 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/Di.php b/src/Di.php index 83d6aa7d..3cf867ff 100644 --- a/src/Di.php +++ b/src/Di.php @@ -662,6 +662,9 @@ protected function resolveMethodParameters($class, $method, array $callTimeUserP * Utility method used to retrieve the class of a particular instance. This is here to allow extending classes to * override how class names are resolved * + * @internal this method is used by the ServiceLocator\DependencyInjectorProxy class to interact with instances + * and is a hack to be used internally until a major refactor does not split the `resolveMethodParameters`. Do not + * rely on its functionality. * @param Object $instance * @return string */ diff --git a/src/ServiceLocator/DependencyInjectorProxy.php b/src/ServiceLocator/DependencyInjectorProxy.php index e518c8a9..15d0fc31 100644 --- a/src/ServiceLocator/DependencyInjectorProxy.php +++ b/src/ServiceLocator/DependencyInjectorProxy.php @@ -5,6 +5,9 @@ use Zend\Di\Di; use Zend\Di\Exception; +/** + * Proxy used to analyze how instances are created by a given Di. + */ class DependencyInjectorProxy extends Di { /** @@ -81,8 +84,9 @@ public function createInstanceViaConstructor($class, $params, $alias = null) /** * Override instance creation via callback * - * @param callback $callback - * @param null|array $params + * @param callback $callback + * @param null|array $params + * @param null|string $alias * @return GeneratorInstance * @throws Exception\InvalidCallbackException */ @@ -139,12 +143,15 @@ protected function resolveAndCallInjectionMethodForInstance($instance, $method, $methodClass = $instance->getClass(); $callParameters = $this->resolveMethodParameters($methodClass, $method, $params, $alias, $methodIsRequired); - if ($callParameters !== false) { + if ($callParameters === false) { $instance->addMethod(array( 'method' => $method, 'params' => $callParameters, )); + return true; } + + return false; } /** @@ -152,6 +159,11 @@ protected function resolveAndCallInjectionMethodForInstance($instance, $method, */ protected function getClass($instance) { - return $instance instanceof GeneratorInstance ? $instance->getClass() : get_class($instance); + if ($instance instanceof GeneratorInstance) { + /* @var $instance GeneratorInstance */ + return $instance->getClass(); + } + + return parent::getClass($instance); } } diff --git a/src/ServiceLocator/Generator.php b/src/ServiceLocator/Generator.php index c27813aa..f953127e 100644 --- a/src/ServiceLocator/Generator.php +++ b/src/ServiceLocator/Generator.php @@ -112,7 +112,6 @@ public function getCodeGenerator($filename = null) } // Create instantiation code - $creation = ''; $constructor = $meta->getConstructor(); if ('__construct' != $constructor) { // Constructor callback diff --git a/src/ServiceLocator/GeneratorInstance.php b/src/ServiceLocator/GeneratorInstance.php index 3e68fac1..94fbed3a 100644 --- a/src/ServiceLocator/GeneratorInstance.php +++ b/src/ServiceLocator/GeneratorInstance.php @@ -2,6 +2,9 @@ namespace Zend\Di\ServiceLocator; +/** + * Container for methods and parameters used by by Di to create a particular instance + */ class GeneratorInstance { /** From 2529f3fd578a97ea86f8a8b879459143336b7aa1 Mon Sep 17 00:00:00 2001 From: Maks3w Date: Mon, 9 Jul 2012 16:34:21 +0200 Subject: [PATCH 06/15] [CS][test] Remove @copyright & @license for fl in $(find . -name "*.php"); do mv $fl $fl.old; sed '/@copyright/d' $fl.old > $fl; rm -f $fl.old; done; for fl in $(find . -name "*.php"); do mv $fl $fl.old; sed '/@license/d' $fl.old > $fl; rm -f $fl.old; done; --- test/TestAsset/SharedInstance/Lister.php | 2 -- test/TestAsset/SharedInstance/Movie.php | 2 -- test/TestAsset/SharedInstance/SharedLister.php | 2 -- test/TestAsset/SharedInstance/Venue.php | 2 -- test/_files/sample.php | 2 +- 5 files changed, 1 insertion(+), 9 deletions(-) diff --git a/test/TestAsset/SharedInstance/Lister.php b/test/TestAsset/SharedInstance/Lister.php index 3c61a441..3f60d772 100644 --- a/test/TestAsset/SharedInstance/Lister.php +++ b/test/TestAsset/SharedInstance/Lister.php @@ -15,8 +15,6 @@ * @category Zend * @package Zend_Di * @subpackage UnitTest - * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace ZendTest\Di\TestAsset\SharedInstance; diff --git a/test/TestAsset/SharedInstance/Movie.php b/test/TestAsset/SharedInstance/Movie.php index 0964cf33..5953f778 100644 --- a/test/TestAsset/SharedInstance/Movie.php +++ b/test/TestAsset/SharedInstance/Movie.php @@ -15,8 +15,6 @@ * @category Zend * @package Zend_Di * @subpackage UnitTest - * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace ZendTest\Di\TestAsset\SharedInstance; diff --git a/test/TestAsset/SharedInstance/SharedLister.php b/test/TestAsset/SharedInstance/SharedLister.php index bbe6d017..03f0f63f 100644 --- a/test/TestAsset/SharedInstance/SharedLister.php +++ b/test/TestAsset/SharedInstance/SharedLister.php @@ -15,8 +15,6 @@ * @category Zend * @package Zend_Di * @subpackage UnitTest - * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace ZendTest\Di\TestAsset\SharedInstance; diff --git a/test/TestAsset/SharedInstance/Venue.php b/test/TestAsset/SharedInstance/Venue.php index e92a26ac..960d91d9 100644 --- a/test/TestAsset/SharedInstance/Venue.php +++ b/test/TestAsset/SharedInstance/Venue.php @@ -15,8 +15,6 @@ * @category Zend * @package Zend_Di * @subpackage UnitTest - * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace ZendTest\Di\TestAsset\SharedInstance; diff --git a/test/_files/sample.php b/test/_files/sample.php index 5f6e79e6..a670f604 100644 --- a/test/_files/sample.php +++ b/test/_files/sample.php @@ -7,4 +7,4 @@ ), ), ), -); \ No newline at end of file +); From aad45800aaec7824d237f8c8165bd51b9acbc43e Mon Sep 17 00:00:00 2001 From: Maks3w Date: Mon, 9 Jul 2012 16:41:27 +0200 Subject: [PATCH 07/15] [CS][Tests] Set File Header http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards#CodingStandards-Files The following script replaces the content between PHP open tag and namespace declaration. for COMPONENT in $(ls -d *) do for FILE in $(find $COMPONENT -name "*.php") do BLOCK="\/\*\*\n \* Zend Framework \(http:\/\/framework\.zend\.com\/\)\n \*\n \* \@link http:\/\/github\.com\/zendframework\/zf2 for the canonical source repository\n \* \@copyright Copyright \(c\) 2005-2012 Zend Technologies USA Inc\. \(http:\/\/www\.zend\.com\)\n \* \@license http:\/\/framework\.zend\.com\/license\/new-bsd New BSD License\n \* \@package Zend_$COMPONENT\n \*\/" perl -0777 -i -pe "s/(<\?php(\s*.*)*\nn)/ Date: Mon, 9 Jul 2012 16:46:59 -0500 Subject: [PATCH 08/15] [zen-49] Correct import statements across framework - Ran a script that would create multiple import statements out of multi-line import statements, and which would sort all import statements in alphabetic order. Script is at https://gist.github.com/3079222 and was run by dropping into the library/Zend folder and typing (in zsh) "for file in **/*.php;do php /path/to/replace-uses.php $file; done" --- src/Definition/CompilerDefinition.php | 4 ++-- src/Definition/RuntimeDefinition.php | 2 +- src/ServiceLocator/Generator.php | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Definition/CompilerDefinition.php b/src/Definition/CompilerDefinition.php index ae391bee..07b38711 100644 --- a/src/Definition/CompilerDefinition.php +++ b/src/Definition/CompilerDefinition.php @@ -12,11 +12,11 @@ use Zend\Code\Annotation\AnnotationCollection; use Zend\Code\Annotation\AnnotationManager; +use Zend\Code\Reflection; use Zend\Code\Scanner\AggregateDirectoryScanner; -use Zend\Code\Scanner\DirectoryScanner; use Zend\Code\Scanner\DerivedClassScanner; +use Zend\Code\Scanner\DirectoryScanner; use Zend\Code\Scanner\FileScanner; -use Zend\Code\Reflection; use Zend\Di\Definition\Annotation; class CompilerDefinition implements DefinitionInterface diff --git a/src/Definition/RuntimeDefinition.php b/src/Definition/RuntimeDefinition.php index 4e4fc071..7df58e94 100644 --- a/src/Definition/RuntimeDefinition.php +++ b/src/Definition/RuntimeDefinition.php @@ -10,10 +10,10 @@ namespace Zend\Di\Definition; -use Zend\Di\Definition\Annotation; use Zend\Code\Annotation\AnnotationCollection; use Zend\Code\Annotation\AnnotationManager; use Zend\Code\Reflection; +use Zend\Di\Definition\Annotation; class RuntimeDefinition implements DefinitionInterface { diff --git a/src/ServiceLocator/Generator.php b/src/ServiceLocator/Generator.php index 4f59ff2f..2daf0350 100644 --- a/src/ServiceLocator/Generator.php +++ b/src/ServiceLocator/Generator.php @@ -10,11 +10,11 @@ namespace Zend\Di\ServiceLocator; -use Zend\Di\Di; -use Zend\Code\Generator\FileGenerator; use Zend\Code\Generator\ClassGenerator; +use Zend\Code\Generator\FileGenerator; use Zend\Code\Generator\MethodGenerator; use Zend\Code\Generator\ParameterGenerator; +use Zend\Di\Di; use Zend\Di\Exception; /** From a86f552aec6e48786a896488bc622f2ba4d6dc68 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Tue, 10 Jul 2012 01:44:24 +0200 Subject: [PATCH 09/15] Fixing failing test case and validating patch --- src/ServiceLocator/DependencyInjectorProxy.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ServiceLocator/DependencyInjectorProxy.php b/src/ServiceLocator/DependencyInjectorProxy.php index 15d0fc31..6d00dcd9 100644 --- a/src/ServiceLocator/DependencyInjectorProxy.php +++ b/src/ServiceLocator/DependencyInjectorProxy.php @@ -143,7 +143,7 @@ protected function resolveAndCallInjectionMethodForInstance($instance, $method, $methodClass = $instance->getClass(); $callParameters = $this->resolveMethodParameters($methodClass, $method, $params, $alias, $methodIsRequired); - if ($callParameters === false) { + if ($callParameters !== false) { $instance->addMethod(array( 'method' => $method, 'params' => $callParameters, From d0c1a7e2b27aa3acc815cdaa383c46409c5d8b1e Mon Sep 17 00:00:00 2001 From: Maks3w Date: Wed, 11 Jul 2012 22:09:11 +0200 Subject: [PATCH 10/15] [zen-46] Replace use statements in documentation and tests --- test/Definition/ArrayDefinitionTest.php | 4 ++-- test/Definition/RuntimeDefinitionTest.php | 4 ++-- test/InstanceManagerTest.php | 4 ++-- test/ServiceLocatorTest.php | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/test/Definition/ArrayDefinitionTest.php b/test/Definition/ArrayDefinitionTest.php index f43e2c69..3e32bc43 100644 --- a/test/Definition/ArrayDefinitionTest.php +++ b/test/Definition/ArrayDefinitionTest.php @@ -10,8 +10,8 @@ namespace ZendTest\Di\Definition; -use Zend\Di\Definition\ArrayDefinition, - PHPUnit_Framework_TestCase as TestCase; +use Zend\Di\Definition\ArrayDefinition; +use PHPUnit_Framework_TestCase as TestCase; class ArrayDefinitionTest extends TestCase { diff --git a/test/Definition/RuntimeDefinitionTest.php b/test/Definition/RuntimeDefinitionTest.php index 336f5bbd..6fefb699 100644 --- a/test/Definition/RuntimeDefinitionTest.php +++ b/test/Definition/RuntimeDefinitionTest.php @@ -10,8 +10,8 @@ namespace ZendTest\Di\Definition; -use Zend\Di\Definition\RuntimeDefinition, - PHPUnit_Framework_TestCase as TestCase; +use Zend\Di\Definition\RuntimeDefinition; +use PHPUnit_Framework_TestCase as TestCase; class RuntimeDefinitionTest extends TestCase { diff --git a/test/InstanceManagerTest.php b/test/InstanceManagerTest.php index 5a07e29b..079450aa 100644 --- a/test/InstanceManagerTest.php +++ b/test/InstanceManagerTest.php @@ -10,8 +10,8 @@ namespace ZendTest\Di; -use Zend\Di\InstanceManager, - PHPUnit_Framework_TestCase as TestCase; +use Zend\Di\InstanceManager; +use PHPUnit_Framework_TestCase as TestCase; class InstanceManagerTest extends TestCase { diff --git a/test/ServiceLocatorTest.php b/test/ServiceLocatorTest.php index b854682e..c3eac273 100644 --- a/test/ServiceLocatorTest.php +++ b/test/ServiceLocatorTest.php @@ -10,8 +10,8 @@ namespace ZendTest\Di; -use Zend\Di\ServiceLocator, - PHPUnit_Framework_TestCase as TestCase; +use Zend\Di\ServiceLocator; +use PHPUnit_Framework_TestCase as TestCase; class ServiceLocatorTest extends TestCase { From 9f76d612a4ca3266ef44a079c9d5d30c47927f25 Mon Sep 17 00:00:00 2001 From: Matthew Weier O'Phinney Date: Wed, 11 Jul 2012 17:26:04 -0500 Subject: [PATCH 11/15] Remove Zend\Stdlib\SubClass The main reason for this class was to work around changes in PHP between versions 5.3.3 and 5.3.7 regarding how is_subclass_of() works. In the earlier versions, it was buggy. In 5.3.7 and up, the bugs are fixed, and the solution is very fast. There are very few places in the framework where an is_subclass_of() test makes sense, and those are typically only with classes responsible for creating other classes -- factories, primarily. As such, the number of places where this will be of use is minimal, and can be maintained. The main goal is to have a consistent, performant way to do the check when required, and one which will work with case sensitive contexts. The solution by @prolic in zendframework/zf2#1807 is good; we just don't need to abstract this, particularly as we'll be able to remove this entirely in ZF3. Additionally, abstracting it gives additional dependencies for those components needing it, and in cases like autoloaders, DI, and the service manager, the extra dependency is undesirable as these should stand alone. The code has been duplicated into each class requiring the lookup (I put the check into AbstractPluginManager, as it's not unlikely other plugin managers may need this). --- src/Di.php | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/Di.php b/src/Di.php index 4add3387..b757897e 100644 --- a/src/Di.php +++ b/src/Di.php @@ -11,7 +11,7 @@ namespace Zend\Di; use Closure; -use Zend\Stdlib\SubClass; +use ReflectionClass; class Di implements DependencyInjectionInterface { @@ -310,7 +310,7 @@ protected function handleInjectDependencies($instance, $injectionMethods, $param if ($methodParams) { foreach ($methodParams as $methodParam) { $objectToInjectClass = $this->getClass($objectToInject); - if ($objectToInjectClass == $methodParam[1] || SubClass::isSubclassOf($objectToInjectClass, $methodParam[1])) { + if ($objectToInjectClass == $methodParam[1] || self::isSubclassOf($objectToInjectClass, $methodParam[1])) { if ($this->resolveAndCallInjectionMethodForInstance($instance, $typeInjectionMethod, array($methodParam[0] => $objectToInject), $instanceAlias, true, $type)) { $calledMethods[$typeInjectionMethod] = true; } @@ -583,7 +583,7 @@ protected function resolveMethodParameters($class, $method, array $callTimeUserP } $pInstanceClass = ($this->instanceManager->hasAlias($pInstance)) ? $this->instanceManager->getClassFromAlias($pInstance) : $pInstance; - if ($pInstanceClass === $type || SubClass::isSubclassOf($pInstanceClass, $type)) { + if ($pInstanceClass === $type || self::isSubclassOf($pInstanceClass, $type)) { $computedParams['required'][$fqParamPos] = array($pInstance, $pInstanceClass); continue 2; } @@ -600,7 +600,7 @@ protected function resolveMethodParameters($class, $method, array $callTimeUserP } $pInstanceClass = ($this->instanceManager->hasAlias($pInstance)) ? $this->instanceManager->getClassFromAlias($pInstance) : $pInstance; - if ($pInstanceClass === $type || SubClass::isSubclassOf($pInstanceClass, $type)) { + if ($pInstanceClass === $type || self::isSubclassOf($pInstanceClass, $type)) { $computedParams['required'][$fqParamPos] = array($pInstance, $pInstanceClass); continue 2; } @@ -682,4 +682,27 @@ protected function getClass($instance) return get_class($instance); } + /** + * Checks if the object has this class as one of its parents + * + * @see https://bugs.php.net/bug.php?id=53727 + * @see https://github.com/zendframework/zf2/pull/1807 + * + * @param string $className + * @param string $type + */ + protected static function isSubclassOf($className, $type) + { + if (version_compare(PHP_VERSION, '5.3.7', '>=')) { + return is_subclass_of($className, $type); + } + if (is_subclass_of($className, $type)) { + return true; + } + if (!interface_exists($type)) { + return false; + } + $r = new ReflectionClass($className); + return $r->implementsInterface($type); + } } From 1f50979065da32c554b57249dc1b33f8c772e545 Mon Sep 17 00:00:00 2001 From: Maks3w Date: Thu, 12 Jul 2012 21:11:36 +0200 Subject: [PATCH 12/15] [PSR-2] fixers=braces,elseif,short_tag,php_closing_tag,trailing_spaces,linefeed Applied php-cs-fixer --fixers=braces,elseif,short_tag,php_closing_tag,trailing_spaces,linefeed --- src/Configuration.php | 10 ++--- src/Definition/ArrayDefinition.php | 46 +++++++++++----------- src/Definition/Builder/InjectionMethod.php | 12 +++--- src/Definition/Builder/PhpClass.php | 18 ++++----- src/Definition/BuilderDefinition.php | 12 +++--- src/Definition/ClassDefinition.php | 2 +- src/DefinitionList.php | 6 +-- src/DependencyInjectionInterface.php | 2 +- src/Display/Console.php | 2 +- src/InstanceManager.php | 44 ++++++++++----------- src/LocatorInterface.php | 2 +- src/ServiceLocator.php | 24 +++++------ test/ConfigurationTest.php | 22 +++++------ test/Definition/ArrayDefinitionTest.php | 30 +++++++------- test/Definition/BuilderDefinitionTest.php | 26 ++++++------ test/Definition/CompilerDefinitionTest.php | 12 +++--- test/InstanceManagerTest.php | 12 +++--- test/TestAsset/BasicClass.php | 2 +- test/TestAsset/CircularClasses/A.php | 2 +- test/TestAsset/CircularClasses/C.php | 2 +- test/TestAsset/CircularClasses/D.php | 2 +- test/TestAsset/CircularClasses/E.php | 2 +- test/TestAsset/CircularClasses/X.php | 2 +- test/TestAsset/CompilerClasses/B.php | 2 +- test/TestAsset/CompilerClasses/C.php | 2 +- test/TestAsset/InheritanceClasses/A.php | 2 +- test/TestAsset/PreferredImplClasses/D.php | 2 +- test/_files/config.yml | 4 +- test/_files/definition-array.php | 20 +++++----- 29 files changed, 163 insertions(+), 163 deletions(-) diff --git a/src/Configuration.php b/src/Configuration.php index b788c3b0..520aca30 100644 --- a/src/Configuration.php +++ b/src/Configuration.php @@ -19,7 +19,7 @@ class Configuration * @var array */ protected $data = array(); - + /** * Constructor * @@ -55,7 +55,7 @@ public function configure(Di $di) if (isset($this->data['instance'])) { $this->configureInstance($di, $this->data['instance']); } - + } public function configureDefinition(Di $di, $definition) @@ -136,11 +136,11 @@ public function configureDefinition(Di $di, $definition) } } - + public function configureInstance(Di $di, $instanceData) { $im = $di->instanceManager(); - + foreach ($instanceData as $target => $data) { switch (strtolower($target)) { case 'aliases': @@ -183,5 +183,5 @@ public function configureInstance(Di $di, $instanceData) } - + } diff --git a/src/Definition/ArrayDefinition.php b/src/Definition/ArrayDefinition.php index 3f3c8bae..cf0a7067 100644 --- a/src/Definition/ArrayDefinition.php +++ b/src/Definition/ArrayDefinition.php @@ -12,9 +12,9 @@ class ArrayDefinition implements DefinitionInterface { - + protected $dataArray = array(); - + public function __construct(Array $dataArray) { foreach ($dataArray as $class => $value) { @@ -23,79 +23,79 @@ public function __construct(Array $dataArray) } $this->dataArray = $dataArray; } - + public function getClasses() { return array_keys($this->dataArray); } - + public function hasClass($class) { return array_key_exists($class, $this->dataArray); } - + public function getClassSupertypes($class) { if (!isset($this->dataArray[$class])) { return array(); } - + if (!isset($this->dataArray[$class]['supertypes'])) { return array(); } - + return $this->dataArray[$class]['supertypes']; } - + public function getInstantiator($class) { if (!isset($this->dataArray[$class])) { return null; } - + if (!isset($this->dataArray[$class]['instantiator'])) { return '__construct'; } - + return $this->dataArray[$class]['instantiator']; } - + public function hasMethods($class) { if (!isset($this->dataArray[$class])) { return array(); } - + if (!isset($this->dataArray[$class]['methods'])) { return array(); } - + return (count($this->dataArray[$class]['methods']) > 0); } - + public function hasMethod($class, $method) { if (!isset($this->dataArray[$class])) { return false; } - + if (!isset($this->dataArray[$class]['methods'])) { return false; } - + return array_key_exists($method, $this->dataArray[$class]['methods']); } - + public function getMethods($class) { if (!isset($this->dataArray[$class])) { return array(); } - + if (!isset($this->dataArray[$class]['methods'])) { return array(); } - + return $this->dataArray[$class]['methods']; } @@ -114,18 +114,18 @@ public function getMethodParameters($class, $method) if (!isset($this->dataArray[$class])) { return array(); } - + if (!isset($this->dataArray[$class]['parameters'])) { return array(); } - + if (!isset($this->dataArray[$class]['parameters'][$method])) { return array(); } - + return $this->dataArray[$class]['parameters'][$method]; } - + public function toArray() { return $this->dataArray; diff --git a/src/Definition/Builder/InjectionMethod.php b/src/Definition/Builder/InjectionMethod.php index c8525175..7643fcde 100644 --- a/src/Definition/Builder/InjectionMethod.php +++ b/src/Definition/Builder/InjectionMethod.php @@ -13,21 +13,21 @@ class InjectionMethod { const PARAMETER_POSTION_NEXT = 'next'; - + protected $name = null; protected $parameters = array(); - + public function setName($name) { $this->name = $name; return $this; } - + public function getName() { return $this->name; } - + public function addParameter($name, $class = null, $isRequired = null) { $this->parameters[] = array( @@ -37,10 +37,10 @@ public function addParameter($name, $class = null, $isRequired = null) ); return $this; } - + public function getParameters() { return $this->parameters; } - + } diff --git a/src/Definition/Builder/PhpClass.php b/src/Definition/Builder/PhpClass.php index f8ea9f8c..117b1ac2 100644 --- a/src/Definition/Builder/PhpClass.php +++ b/src/Definition/Builder/PhpClass.php @@ -39,13 +39,13 @@ public function getName() { return $this->name; } - + public function setInstantiator($instantiator) { $this->instantiator = $instantiator; return $this; } - + public function getInstantiator() { return $this->instantiator; @@ -84,11 +84,11 @@ public function addInjectionMethod(InjectionMethod $injectionMethod) * * Optionally takes the method name. * - * This method may be used in lieu of addInjectionMethod() in + * 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 + * + * @param null|string $name * @return InjectionMethod */ public function createInjectionMethod($name = null) @@ -104,8 +104,8 @@ public function createInjectionMethod($name = null) /** * Override which class will be used by {@link createInjectionMethod()} - * - * @param string $class + * + * @param string $class * @return PhpClass */ public function setMethodBuilder($class) @@ -118,14 +118,14 @@ public function setMethodBuilder($class) * 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; } - + public function getInjectionMethods() { return $this->injectionMethods; diff --git a/src/Definition/BuilderDefinition.php b/src/Definition/BuilderDefinition.php index a1b6c076..a5ac9a04 100644 --- a/src/Definition/BuilderDefinition.php +++ b/src/Definition/BuilderDefinition.php @@ -57,7 +57,7 @@ public function createClassesFromArray(array $builderData) $class->addInjectionMethod($injectionMethod); } break; - + } } $this->addClass($class); @@ -80,7 +80,7 @@ public function addClass(Builder\PhpClass $phpClass) * Create a class builder object using default class builder class * * This method is a factory that can be used in place of addClass(). - * + * * @param null|string $name Optional name of class to assign * @return Builder\PhpClass */ @@ -98,8 +98,8 @@ public function createClass($name = null) /** * Set the class to use with {@link createClass()} - * - * @param string $class + * + * @param string $class * @return BuilderDefinition */ public function setClassBuilder($class) @@ -111,9 +111,9 @@ public function setClassBuilder($class) /** * Get the class used for {@link createClass()} * - * This is primarily to allow developers to temporarily override + * This is primarily to allow developers to temporarily override * the builder strategy. - * + * * @return string */ public function getClassBuilder() diff --git a/src/Definition/ClassDefinition.php b/src/Definition/ClassDefinition.php index 498edea9..7126d357 100644 --- a/src/Definition/ClassDefinition.php +++ b/src/Definition/ClassDefinition.php @@ -75,7 +75,7 @@ public function addMethodParameter($method, $parameterName, array $parameterInfo $this->methodParameters[$method][$fqName] = array( $parameterName, $type, $required ); - + return $this; } diff --git a/src/DefinitionList.php b/src/DefinitionList.php index a5a5b389..692fb46a 100644 --- a/src/DefinitionList.php +++ b/src/DefinitionList.php @@ -119,7 +119,7 @@ public function hasClass($class) } return false; } - + public function getClassSupertypes($class) { $supertypes = array(); @@ -130,7 +130,7 @@ public function getClassSupertypes($class) // @todo remove duplicates? return $supertypes; } - + public function getInstantiator($class) { /** @var $definition Definition\DefinitionInterface */ @@ -228,5 +228,5 @@ public function getMethodParameters($class, $method) } return array(); } - + } diff --git a/src/DependencyInjectionInterface.php b/src/DependencyInjectionInterface.php index f2820305..fcce4655 100644 --- a/src/DependencyInjectionInterface.php +++ b/src/DependencyInjectionInterface.php @@ -17,7 +17,7 @@ interface DependencyInjectionInterface extends LocatorInterface * * Forces retrieval of a discrete instance of the given class, using the * constructor parameters provided. - * + * * @param mixed $name Class name or service alias * @param array $params Parameters to pass to the constructor * @return object|null diff --git a/src/Display/Console.php b/src/Display/Console.php index 8426b551..4f3bd1a1 100644 --- a/src/Display/Console.php +++ b/src/Display/Console.php @@ -108,7 +108,7 @@ public function render() } echo PHP_EOL . ' Configurations:' . PHP_EOL; - + foreach ($configuredTypes as $type) { $info = $this->di->instanceManager()->getConfiguration($type); echo ' ' . $type . PHP_EOL; diff --git a/src/InstanceManager.php b/src/InstanceManager.php index b23b8da9..25be8ec8 100644 --- a/src/InstanceManager.php +++ b/src/InstanceManager.php @@ -23,19 +23,19 @@ class InstanceManager /* implements InstanceManagerInterface */ * @var array */ protected $sharedInstancesWithParams = array('hashShort' => array(), 'hashLong' => array()); - + /** * Array of class aliases * @var array key: alias, value: class */ protected $aliases = array(); - + /** * The template to use for housing configuration information - * @var array + * @var array */ protected $configurationTemplate = array( - /** + /** * alias|class => alias|class * interface|abstract => alias|class|object * name => value @@ -56,13 +56,13 @@ class InstanceManager /* implements InstanceManagerInterface */ * @var array */ protected $configurations = array(); - + /** * An array of globally preferred implementations for interfaces/abstracts * @var array */ protected $typePreferences = array(); - + /** * Does this instance manager have this shared instance * @return bool @@ -71,7 +71,7 @@ public function hasSharedInstance($classOrAlias) { return isset($this->sharedInstances[$classOrAlias]); } - + /** * getSharedInstance() */ @@ -130,8 +130,8 @@ public function addSharedInstanceWithParameters($instance, $classOrAlias, array ksort($params); $hashKey = $this->createHashForKeys($classOrAlias, array_keys($params)); $hashValue = $this->createHashForValues($classOrAlias, $params); - - if (!isset($this->sharedInstancesWithParams[$hashKey]) + + if (!isset($this->sharedInstancesWithParams[$hashKey]) || !is_array($this->sharedInstancesWithParams[$hashKey])) { $this->sharedInstancesWithParams[$hashKey] = array(); } @@ -139,13 +139,13 @@ public function addSharedInstanceWithParameters($instance, $classOrAlias, array $this->sharedInstancesWithParams['hashShort'][$hashKey] = true; $this->sharedInstancesWithParams['hashLong'][$hashKey . '/' . $hashValue] = $instance; } - + public function getSharedInstanceWithParameters($classOrAlias, array $params, $fastHashFromHasLookup = null) { if ($fastHashFromHasLookup) { return $this->sharedInstancesWithParams['hashLong'][$fastHashFromHasLookup]; } - + ksort($params); $hashKey = $this->createHashForKeys($classOrAlias, array_keys($params)); if (isset($this->sharedInstancesWithParams['hashShort'][$hashKey])) { @@ -177,7 +177,7 @@ public function getAliases() { return $this->aliases; } - + /** * getClassFromAlias() * @@ -202,7 +202,7 @@ public function getClassFromAlias($alias) } return $alias; } - + protected function getBaseAlias($alias) { if (!$this->hasAlias($alias)) { @@ -217,12 +217,12 @@ protected function getBaseAlias($alias) if ($r > 100) { throw new Exception\RuntimeException( sprintf('Possible infinite recursion in DI alias! Max recursion of 100 levels reached at alias "%s".', $alias) - ); + ); } } return $lastAlias; } - + /** * Add alias * @@ -262,7 +262,7 @@ public function hasConfiguration($aliasOrClass) } return true; } - + public function setConfiguration($aliasOrClass, array $configuration, $append = false) { $key = ($this->hasAlias($aliasOrClass)) ? 'alias:' . $this->getBaseAlias($aliasOrClass) : $aliasOrClass; @@ -297,16 +297,16 @@ public function getConfiguration($aliasOrClass) { $key = ($this->hasAlias($aliasOrClass)) ? 'alias:' . $this->getBaseAlias($aliasOrClass) : $aliasOrClass; if (isset($this->configurations[$key])) { - return $this->configurations[$key]; + return $this->configurations[$key]; } else { return $this->configurationTemplate; } } - + /** * setParameters() is a convenience method for: * setConfiguration($type, array('parameters' => array(...)), true); - * + * * @param string $type Alias or Class * @param array $parameters Multi-dim array of parameters and their values * @return void @@ -315,11 +315,11 @@ public function setParameters($aliasOrClass, array $parameters) { $this->setConfiguration($aliasOrClass, array('parameters' => $parameters), true); } - + /** * setInjections() is a convenience method for: * setConfiguration($type, array('injections' => array(...)), true); - * + * * @param string $type Alias or Class * @param array $methods Multi-dim array of methods and their parameters * @return void @@ -421,7 +421,7 @@ protected function createHashForKeys($classOrAlias, $paramKeys) { return $classOrAlias . ':' . implode('|', $paramKeys); } - + protected function createHashForValues($classOrAlias, $paramValues) { $hashValue = ''; diff --git a/src/LocatorInterface.php b/src/LocatorInterface.php index de8b1742..42742eed 100644 --- a/src/LocatorInterface.php +++ b/src/LocatorInterface.php @@ -14,7 +14,7 @@ interface LocatorInterface { /** * Retrieve a class instance - * + * * @param string $name Class name or service name * @param null|array $params Parameters to be used when instantiating a new instance of $name * @return object|null diff --git a/src/ServiceLocator.php b/src/ServiceLocator.php index 3f33b5ac..1ebd73ff 100644 --- a/src/ServiceLocator.php +++ b/src/ServiceLocator.php @@ -17,7 +17,7 @@ class ServiceLocator implements ServiceLocatorInterface /** * Map of service names to methods * - * As an example, you might define a getter method "getFoo", and map it to + * As an example, you might define a getter method "getFoo", and map it to * the service name "foo": * * @@ -26,25 +26,25 @@ class ServiceLocator implements ServiceLocatorInterface * * When encountered, the return value of that method will be used. * - * Methods mapped in this way may expect a single, array argument, the + * Methods mapped in this way may expect a single, array argument, the * $params passed to {@link get()}, if any. - * + * * @var array */ protected $map = array(); /** * Registered services and cached values - * + * * @var array */ protected $services = array(); /** * Register a service with the locator - * - * @param string $name - * @param mixed $service + * + * @param string $name + * @param mixed $service * @return ServiceLocator */ public function set($name, $service) @@ -56,19 +56,19 @@ public function set($name, $service) /** * Retrieve a registered service * - * Tests first if a value is registered for the service, and, if so, + * Tests first if a value is registered for the service, and, if so, * returns it. * * If the value returned is a non-object callback or closure, the return - * value is retrieved, stored, and returned. Parameters passed to the method + * value is retrieved, stored, and returned. Parameters passed to the method * are passed to the callback, but only on the first retrieval. * * If the service requested matches a method in the method map, the return * value of that method is returned. Parameters are passed to the matching * method. - * - * @param string $name - * @param array $params + * + * @param string $name + * @param array $params * @return mixed */ public function get($name, array $params = array()) diff --git a/test/ConfigurationTest.php b/test/ConfigurationTest.php index 1d1ce5cd..b0f136fe 100644 --- a/test/ConfigurationTest.php +++ b/test/ConfigurationTest.php @@ -25,31 +25,31 @@ public function testConfigurationCanConfigureInstanceManagerWithIniFile() $di->configure($config); $im = $di->instanceManager(); - + $this->assertTrue($im->hasAlias('my-repository')); $this->assertEquals('My\RepositoryA', $im->getClassFromAlias('my-repository')); - + $this->assertTrue($im->hasAlias('my-mapper')); $this->assertEquals('My\Mapper', $im->getClassFromAlias('my-mapper')); - + $this->assertTrue($im->hasAlias('my-dbAdapter')); $this->assertEquals('My\DbAdapter', $im->getClassFromAlias('my-dbAdapter')); - + $this->assertTrue($im->hasTypePreferences('my-repository')); $this->assertContains('my-mapper', $im->getTypePreferences('my-repository')); - + $this->assertTrue($im->hasTypePreferences('my-mapper')); $this->assertContains('my-dbAdapter', $im->getTypePreferences('my-mapper')); $this->assertTrue($im->hasConfiguration('My\DbAdapter')); $expected = array('parameters' => array('username' => 'readonly', 'password' => 'mypassword'), 'injections' => array(), 'shared' => true); $this->assertEquals($expected, $im->getConfiguration('My\DbAdapter')); - + $this->assertTrue($im->hasConfiguration('my-dbAdapter')); $expected = array('parameters' => array('username' => 'readwrite'), 'injections' => array(), 'shared' => true); $this->assertEquals($expected, $im->getConfiguration('my-dbAdapter')); } - + public function testConfigurationCanConfigureBuilderDefinitionFromIni() { $this->markTestIncomplete('Builder not updated to new DI yet'); @@ -57,28 +57,28 @@ public function testConfigurationCanConfigureBuilderDefinitionFromIni() $config = new Configuration($ini->di); $di = new Di($config); $definition = $di->getDefinition(); - + $this->assertTrue($definition->hasClass('My\DbAdapter')); $this->assertEquals('__construct', $definition->getInstantiator('My\DbAdapter')); $this->assertEquals( array('username' => null, 'password' => null), $definition->getInjectionMethodParameters('My\DbAdapter', '__construct') ); - + $this->assertTrue($definition->hasClass('My\Mapper')); $this->assertEquals('__construct', $definition->getInstantiator('My\Mapper')); $this->assertEquals( array('dbAdapter' => 'My\DbAdapter'), $definition->getInjectionMethodParameters('My\Mapper', '__construct') ); - + $this->assertTrue($definition->hasClass('My\Repository')); $this->assertEquals('__construct', $definition->getInstantiator('My\Repository')); $this->assertEquals( array('mapper' => 'My\Mapper'), $definition->getInjectionMethodParameters('My\Repository', '__construct') ); - + } public function testConfigurationCanConfigureRuntimeDefinitionDefaultFromIni() diff --git a/test/Definition/ArrayDefinitionTest.php b/test/Definition/ArrayDefinitionTest.php index 3e32bc43..be5528d2 100644 --- a/test/Definition/ArrayDefinitionTest.php +++ b/test/Definition/ArrayDefinitionTest.php @@ -15,17 +15,17 @@ class ArrayDefinitionTest extends TestCase { - + /** * @var ArrayDefinition */ protected $definition = null; - + public function setup() { $this->definition = new ArrayDefinition(include __DIR__ . '/../_files/definition-array.php'); } - + public function testArrayDefinitionHasClasses() { $this->assertTrue($this->definition->hasClass('My\DbAdapter')); @@ -35,7 +35,7 @@ public function testArrayDefinitionHasClasses() $this->assertTrue($this->definition->hasClass('My\RepositoryB')); $this->assertFalse($this->definition->hasClass('My\Foo')); } - + public function testArrayDefinitionCanGetClassses() { $list = array( @@ -45,38 +45,38 @@ public function testArrayDefinitionCanGetClassses() 'My\RepositoryA', 'My\RepositoryB' ); - + $classes = $this->definition->getClasses(); - + foreach ($list as $class) { $this->assertContains($class, $classes); } - + } - + public function testArrayDefinitionCanGetClassSupertypes() { $this->assertEquals(array(), $this->definition->getClassSupertypes('My\EntityA')); $this->assertContains('My\RepositoryA', $this->definition->getClassSupertypes('My\RepositoryB')); } - - + + public function testArrayDefinitionCanGetInstantiator() { $this->assertEquals('__construct', $this->definition->getInstantiator('My\RepositoryA')); $this->assertNull($this->definition->getInstantiator('My\Foo')); } - + public function testArrayDefinitionHasInjectionMethods() { $this->markTestIncomplete(); } - + public function testArrayDefinitionHasInjectionMethod() { $this->markTestIncomplete(); } - + public function testArrayDefinitionGetInjectionMethods() { $this->markTestIncomplete(); @@ -87,6 +87,6 @@ public function testArrayDefinitionGetInjectionMethodParameters() $this->markTestIncomplete(); } - - + + } diff --git a/test/Definition/BuilderDefinitionTest.php b/test/Definition/BuilderDefinitionTest.php index afed0866..45acce5f 100644 --- a/test/Definition/BuilderDefinitionTest.php +++ b/test/Definition/BuilderDefinitionTest.php @@ -17,28 +17,28 @@ class BuilderDefinitionTest extends TestCase { - + public function testBuilderImplementsDefinition() { $builder = new BuilderDefinition(); $this->assertInstanceOf('Zend\Di\Definition\DefinitionInterface', $builder); } - + public function testBuilderCanBuildClassWithMethods() { $class = new Builder\PhpClass(); $class->setName('Foo'); $class->addSuperType('Parent'); - + $injectionMethod = new Builder\InjectionMethod(); $injectionMethod->setName('injectBar'); $injectionMethod->addParameter('bar', 'Bar'); - + $class->addInjectionMethod($injectionMethod); - + $definition = new BuilderDefinition(); $definition->addClass($class); - + $this->assertTrue($definition->hasClass('Foo')); $this->assertEquals('__construct', $definition->getInstantiator('Foo')); $this->assertContains('Parent', $definition->getClassSupertypes('Foo')); @@ -50,17 +50,17 @@ public function testBuilderCanBuildClassWithMethods() $definition->getMethodParameters('Foo', 'injectBar') ); } - + public function testBuilderCanBuildFromArray() { $ini = ConfigFactory::fromFile(__DIR__ . '/../_files/sample.ini'); $iniAsArray = $ini['section-b']; $definitionArray = $iniAsArray['di']['definitions'][1]; unset($definitionArray['class']); - + $definition = new BuilderDefinition(); $definition->createClassesFromArray($definitionArray); - + $this->assertTrue($definition->hasClass('My\DbAdapter')); $this->assertEquals('__construct', $definition->getInstantiator('My\DbAdapter')); $this->assertEquals( @@ -70,21 +70,21 @@ public function testBuilderCanBuildFromArray() ), $definition->getMethodParameters('My\DbAdapter', '__construct') ); - + $this->assertTrue($definition->hasClass('My\Mapper')); $this->assertEquals('__construct', $definition->getInstantiator('My\Mapper')); $this->assertEquals( array('My\Mapper::__construct:0' => array('dbAdapter', 'My\DbAdapter', true)), $definition->getMethodParameters('My\Mapper', '__construct') ); - + $this->assertTrue($definition->hasClass('My\Repository')); $this->assertEquals('__construct', $definition->getInstantiator('My\Repository')); $this->assertEquals( array('My\Repository::__construct:0' => array('mapper', 'My\Mapper', true)), $definition->getMethodParameters('My\Repository', '__construct') ); - + } public function testCanCreateClassFromFluentInterface() @@ -94,7 +94,7 @@ public function testCanCreateClassFromFluentInterface() $this->assertTrue($builder->hasClass('Foo')); } - + public function testCanCreateInjectionMethodsAndPopulateFromFluentInterface() { $builder = new BuilderDefinition(); diff --git a/test/Definition/CompilerDefinitionTest.php b/test/Definition/CompilerDefinitionTest.php index c3a7a179..27a18833 100644 --- a/test/Definition/CompilerDefinitionTest.php +++ b/test/Definition/CompilerDefinitionTest.php @@ -24,7 +24,7 @@ public function testCompilerCompilesAgainstConstructorInjectionAssets() $definition->compile(); $this->assertTrue($definition->hasClass('ZendTest\Di\TestAsset\CompilerClasses\A')); - + $assertClasses = array( 'ZendTest\Di\TestAsset\CompilerClasses\A', 'ZendTest\Di\TestAsset\CompilerClasses\B', @@ -38,14 +38,14 @@ public function testCompilerCompilesAgainstConstructorInjectionAssets() // @todo this needs to be resolved, not the short name // $this->assertContains('ZendTest\Di\TestAsset\CompilerClasses\C', $definition->getClassSupertypes('ZendTest\Di\TestAsset\CompilerClasses\D')); - + $this->assertEquals('__construct', $definition->getInstantiator('ZendTest\Di\TestAsset\CompilerClasses\A')); $this->assertTrue($definition->hasMethods('ZendTest\Di\TestAsset\CompilerClasses\C')); - + $this->assertArrayHasKey('setB', $definition->getMethods('ZendTest\Di\TestAsset\CompilerClasses\C')); $this->assertTrue($definition->hasMethod('ZendTest\Di\TestAsset\CompilerClasses\C', 'setB')); - + $this->assertEquals( array('ZendTest\Di\TestAsset\CompilerClasses\C::setB:0' => array('b', 'ZendTest\Di\TestAsset\CompilerClasses\B', true)), $definition->getMethodParameters('ZendTest\Di\TestAsset\CompilerClasses\C', 'setB') @@ -64,7 +64,7 @@ public function testCompilerSupertypes() $this->assertContains('ZendTest\Di\TestAsset\CompilerClasses\C', $definition->getClassSupertypes('ZendTest\Di\TestAsset\CompilerClasses\E')); $this->assertContains('ZendTest\Di\TestAsset\CompilerClasses\D', $definition->getClassSupertypes('ZendTest\Di\TestAsset\CompilerClasses\E')); } - + public function testCompilerDirectoryScannerAndFileScanner() { $definition = new CompilerDefinition; @@ -75,7 +75,7 @@ public function testCompilerDirectoryScannerAndFileScanner() $this->assertContains('ZendTest\Di\TestAsset\CompilerClasses\C', $definition->getClassSupertypes('ZendTest\Di\TestAsset\CompilerClasses\E')); $this->assertContains('ZendTest\Di\TestAsset\CompilerClasses\D', $definition->getClassSupertypes('ZendTest\Di\TestAsset\CompilerClasses\E')); } - + public function testCompilerFileScanner() { $definition = new CompilerDefinition; diff --git a/test/InstanceManagerTest.php b/test/InstanceManagerTest.php index 079450aa..970732b3 100644 --- a/test/InstanceManagerTest.php +++ b/test/InstanceManagerTest.php @@ -15,27 +15,27 @@ class InstanceManagerTest extends TestCase { - + public function testInstanceManagerCanPersistInstances() { $im = new InstanceManager(); $obj = new TestAsset\BasicClass(); $im->addSharedInstance($obj, 'ZendTest\Di\TestAsset\BasicClass'); $this->assertTrue($im->hasSharedInstance('ZendTest\Di\TestAsset\BasicClass')); - $this->assertSame($obj, $im->getSharedInstance('ZendTest\Di\TestAsset\BasicClass')); + $this->assertSame($obj, $im->getSharedInstance('ZendTest\Di\TestAsset\BasicClass')); } - + public function testInstanceManagerCanPersistInstancesWithParameters() { $im = new InstanceManager(); $obj1 = new TestAsset\BasicClass(); $obj2 = new TestAsset\BasicClass(); $obj3 = new TestAsset\BasicClass(); - + $im->addSharedInstance($obj1, 'foo'); $im->addSharedInstanceWithParameters($obj2, 'foo', array('foo' => 'bar')); $im->addSharedInstanceWithParameters($obj3, 'foo', array('foo' => 'baz')); - + $this->assertSame($obj1, $im->getSharedInstance('foo')); $this->assertSame($obj2, $im->getSharedInstanceWithParameters('foo', array('foo' => 'bar'))); $this->assertSame($obj3, $im->getSharedInstanceWithParameters('foo', array('foo' => 'baz'))); @@ -80,7 +80,7 @@ public function testInstanceManagerResolvesRecursiveAliasesForConfiguration() $config['injections'] = array(); $config['shared'] = true; - + $this->assertEquals($config, $im->getConfiguration('foo-alias')); } diff --git a/test/TestAsset/BasicClass.php b/test/TestAsset/BasicClass.php index 93da3441..d9923478 100644 --- a/test/TestAsset/BasicClass.php +++ b/test/TestAsset/BasicClass.php @@ -12,5 +12,5 @@ class BasicClass { - + } diff --git a/test/TestAsset/CircularClasses/A.php b/test/TestAsset/CircularClasses/A.php index 8ad527ca..2bb95291 100644 --- a/test/TestAsset/CircularClasses/A.php +++ b/test/TestAsset/CircularClasses/A.php @@ -14,6 +14,6 @@ class A { public function __construct(B $b) { - + } } diff --git a/test/TestAsset/CircularClasses/C.php b/test/TestAsset/CircularClasses/C.php index 43c1391c..6e1631e5 100644 --- a/test/TestAsset/CircularClasses/C.php +++ b/test/TestAsset/CircularClasses/C.php @@ -14,6 +14,6 @@ class C { public function __construct(D $d) { - + } } diff --git a/test/TestAsset/CircularClasses/D.php b/test/TestAsset/CircularClasses/D.php index 6a3974ff..61170047 100644 --- a/test/TestAsset/CircularClasses/D.php +++ b/test/TestAsset/CircularClasses/D.php @@ -14,6 +14,6 @@ class D { public function __construct(E $e) { - + } } diff --git a/test/TestAsset/CircularClasses/E.php b/test/TestAsset/CircularClasses/E.php index 71e5bb00..d0e11917 100644 --- a/test/TestAsset/CircularClasses/E.php +++ b/test/TestAsset/CircularClasses/E.php @@ -14,6 +14,6 @@ class E { public function __construct(C $c) { - + } } diff --git a/test/TestAsset/CircularClasses/X.php b/test/TestAsset/CircularClasses/X.php index 7934b370..ff9c0e67 100644 --- a/test/TestAsset/CircularClasses/X.php +++ b/test/TestAsset/CircularClasses/X.php @@ -14,6 +14,6 @@ class X { public function __construct(X $x) { - + } } diff --git a/test/TestAsset/CompilerClasses/B.php b/test/TestAsset/CompilerClasses/B.php index a96bc5c0..79f74e1f 100644 --- a/test/TestAsset/CompilerClasses/B.php +++ b/test/TestAsset/CompilerClasses/B.php @@ -14,6 +14,6 @@ class B { public function __construct(B $b) { - + } } diff --git a/test/TestAsset/CompilerClasses/C.php b/test/TestAsset/CompilerClasses/C.php index 9afd7a7a..b6b9a680 100644 --- a/test/TestAsset/CompilerClasses/C.php +++ b/test/TestAsset/CompilerClasses/C.php @@ -14,6 +14,6 @@ class C { public function setB(B $b) { - + } } diff --git a/test/TestAsset/InheritanceClasses/A.php b/test/TestAsset/InheritanceClasses/A.php index 418bdf13..e65cd54b 100644 --- a/test/TestAsset/InheritanceClasses/A.php +++ b/test/TestAsset/InheritanceClasses/A.php @@ -13,7 +13,7 @@ class A { public $test; - + public function setTest($test) { $this->test = $test; diff --git a/test/TestAsset/PreferredImplClasses/D.php b/test/TestAsset/PreferredImplClasses/D.php index a9b11e1d..792335e9 100644 --- a/test/TestAsset/PreferredImplClasses/D.php +++ b/test/TestAsset/PreferredImplClasses/D.php @@ -12,5 +12,5 @@ class D extends C { - + } diff --git a/test/_files/config.yml b/test/_files/config.yml index 880ef3ff..8cc57d6f 100644 --- a/test/_files/config.yml +++ b/test/_files/config.yml @@ -27,7 +27,7 @@ testing: setObject: name: setObject params: - - + - __reference: params - class: ZendTest\Di\TestAsset\InspectedClass @@ -39,4 +39,4 @@ testing: params: ZendTest\Di\TestAsset\DummyParams injected: ZendTest\Di\TestAsset\InjectedMethod inspected: ZendTest\Di\TestAsset\InspectedClass - + diff --git a/test/_files/definition-array.php b/test/_files/definition-array.php index 7f724aed..4557e750 100644 --- a/test/_files/definition-array.php +++ b/test/_files/definition-array.php @@ -1,20 +1,20 @@ + 'My\\DbAdapter' => array ( - 'superTypes' => + 'superTypes' => array ( ), 'instantiator' => '__construct', 'methods' => array ( - '__construct' => + '__construct' => array ( 'username' => NULL, 'password' => NULL, ), ), ), - 'My\\EntityA' => + 'My\\EntityA' => array ( 'supertypes' => array ( @@ -24,7 +24,7 @@ array ( ), ), - 'My\\Mapper' => + 'My\\Mapper' => array ( 'supertypes' => array ( @@ -33,27 +33,27 @@ 'instantiator' => '__construct', 'methods' => array ( - 'setDbAdapter' => + 'setDbAdapter' => array ( 'dbAdapter' => 'My\\DbAdapter', ), ), ), - 'My\\RepositoryA' => + 'My\\RepositoryA' => array ( 'superTypes' => array ( ), 'instantiator' => '__construct', - 'injectionMethods' => + 'injectionMethods' => array ( - 'setMapper' => + 'setMapper' => array ( 'mapper' => 'My\\Mapper', ), ), ), - 'My\\RepositoryB' => + 'My\\RepositoryB' => array ( 'superTypes' => array ( From dcb8e268c4adb82681708e1abe5b0db88558e420 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 13 Jul 2012 02:32:56 +0200 Subject: [PATCH 13/15] Second cleanup pass - adding missing method and class level comments --- src/Configuration.php | 18 +++++-- src/Definition/Annotation/Inject.php | 7 ++- src/Definition/Annotation/Instantiator.php | 7 ++- src/Definition/ArrayDefinition.php | 38 +++++++++++++-- src/Definition/Builder/InjectionMethod.php | 23 +++++++++ src/Definition/Builder/PhpClass.php | 34 +++++++++++++ src/Definition/BuilderDefinition.php | 15 +++++- src/Definition/ClassDefinition.php | 33 ++++++++++++- src/Definition/CompilerDefinition.php | 24 ++++++++-- src/Definition/DefinitionInterface.php | 2 +- src/Definition/RuntimeDefinition.php | 19 ++++++-- src/DefinitionList.php | 49 +++++++++++-------- src/Di.php | 25 +++++++--- src/Display/Console.php | 15 +++++- src/InstanceManager.php | 56 ++++++++++++++++++++-- src/ServiceLocator.php | 6 +-- src/ServiceLocatorInterface.php | 8 ++++ 17 files changed, 320 insertions(+), 59 deletions(-) diff --git a/src/Configuration.php b/src/Configuration.php index 9bc23ea5..32c2fc19 100644 --- a/src/Configuration.php +++ b/src/Configuration.php @@ -66,6 +66,10 @@ public function configure(Di $di) } + /** + * @param Di $di + * @param array $definition + */ public function configureDefinition(Di $di, $definition) { foreach ($definition as $definitionType => $definitionData) { @@ -89,9 +93,11 @@ public function configureDefinition(Di $di, $definition) $definitions = new DefinitionList($definitions); $di->setDefinitionList($definitions); } elseif (isset($definitionData['use_annotations']) && $definitionData['use_annotations']) { - $di->definitions()->getDefinitionByType('\Zend\Di\Definition\RuntimeDefinition') - ->getIntrospectionStrategy() - ->setUseAnnotations(true); + /* @var $runtimeDefinition Definition\RuntimeDefinition */ + $runtimeDefinition = $di + ->definitions() + ->getDefinitionByType('\Zend\Di\Definition\RuntimeDefinition'); + $runtimeDefinition->getIntrospectionStrategy()->setUseAnnotations(true); } break; case 'class': @@ -145,6 +151,12 @@ public function configureDefinition(Di $di, $definition) } + /** + * Configures a given Di instance + * + * @param Di $di + * @param $instanceData + */ public function configureInstance(Di $di, $instanceData) { $im = $di->instanceManager(); diff --git a/src/Definition/Annotation/Inject.php b/src/Definition/Annotation/Inject.php index 69ecfec7..46a0131e 100644 --- a/src/Definition/Annotation/Inject.php +++ b/src/Definition/Annotation/Inject.php @@ -20,9 +20,14 @@ */ class Inject implements AnnotationInterface { - + /** + * @var mixed + */ protected $content = null; + /** + * {@inheritDoc} + */ public function initialize($content) { $this->content = $content; diff --git a/src/Definition/Annotation/Instantiator.php b/src/Definition/Annotation/Instantiator.php index 10c04133..2de9f205 100644 --- a/src/Definition/Annotation/Instantiator.php +++ b/src/Definition/Annotation/Instantiator.php @@ -20,9 +20,14 @@ */ class Instantiator implements AnnotationInterface { - + /** + * @var mixed + */ protected $content = null; + /** + * {@inheritDoc} + */ public function initialize($content) { $this->content = $content; diff --git a/src/Definition/ArrayDefinition.php b/src/Definition/ArrayDefinition.php index 02db2c10..48a53c59 100644 --- a/src/Definition/ArrayDefinition.php +++ b/src/Definition/ArrayDefinition.php @@ -18,9 +18,14 @@ */ class ArrayDefinition implements DefinitionInterface { - + /** + * @var array + */ protected $dataArray = array(); + /** + * @param array $dataArray + */ public function __construct(array $dataArray) { foreach ($dataArray as $class => $value) { @@ -30,16 +35,25 @@ public function __construct(array $dataArray) $this->dataArray = $dataArray; } + /** + * {@inheritDoc} + */ public function getClasses() { return array_keys($this->dataArray); } + /** + * {@inheritDoc} + */ public function hasClass($class) { return array_key_exists($class, $this->dataArray); } + /** + * {@inheritDoc} + */ public function getClassSupertypes($class) { if (!isset($this->dataArray[$class])) { @@ -53,6 +67,9 @@ public function getClassSupertypes($class) return $this->dataArray[$class]['supertypes']; } + /** + * {@inheritDoc} + */ public function getInstantiator($class) { if (!isset($this->dataArray[$class])) { @@ -66,6 +83,9 @@ public function getInstantiator($class) return $this->dataArray[$class]['instantiator']; } + /** + * {@inheritDoc} + */ public function hasMethods($class) { if (!isset($this->dataArray[$class])) { @@ -79,6 +99,9 @@ public function hasMethods($class) return (count($this->dataArray[$class]['methods']) > 0); } + /** + * {@inheritDoc} + */ public function hasMethod($class, $method) { if (!isset($this->dataArray[$class])) { @@ -92,6 +115,9 @@ public function hasMethod($class, $method) return array_key_exists($method, $this->dataArray[$class]['methods']); } + /** + * {@inheritDoc} + */ public function getMethods($class) { if (!isset($this->dataArray[$class])) { @@ -106,15 +132,16 @@ public function getMethods($class) } /** - * @param $class - * @param $method - * @return bool + * {@inheritDoc} */ public function hasMethodParameters($class, $method) { return isset($this->dataArray[$class]['parameters'][$method]); } + /** + * {@inheritDoc} + */ public function getMethodParameters($class, $method) { if (!isset($this->dataArray[$class])) { @@ -132,6 +159,9 @@ public function getMethodParameters($class, $method) return $this->dataArray[$class]['parameters'][$method]; } + /** + * @return array + */ public function toArray() { return $this->dataArray; diff --git a/src/Definition/Builder/InjectionMethod.php b/src/Definition/Builder/InjectionMethod.php index eb89c4fa..42626074 100644 --- a/src/Definition/Builder/InjectionMethod.php +++ b/src/Definition/Builder/InjectionMethod.php @@ -20,9 +20,20 @@ class InjectionMethod { const PARAMETER_POSTION_NEXT = 'next'; + /** + * @var string|null + */ protected $name = null; + + /** + * @var array + */ protected $parameters = array(); + /** + * @param string|null $name + * @return self + */ public function setName($name) { $this->name = $name; @@ -30,11 +41,20 @@ public function setName($name) return $this; } + /** + * @return null|string + */ public function getName() { return $this->name; } + /** + * @param string $name + * @param string|null $class + * @param mixed|null $isRequired + * @return InjectionMethod + */ public function addParameter($name, $class = null, $isRequired = null) { $this->parameters[] = array( @@ -46,6 +66,9 @@ public function addParameter($name, $class = null, $isRequired = null) return $this; } + /** + * @return array + */ public function getParameters() { return $this->parameters; diff --git a/src/Definition/Builder/PhpClass.php b/src/Definition/Builder/PhpClass.php index 812afe00..b5c69737 100644 --- a/src/Definition/Builder/PhpClass.php +++ b/src/Definition/Builder/PhpClass.php @@ -18,10 +18,29 @@ */ 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(); /** @@ -47,6 +66,10 @@ public function getName() return $this->name; } + /** + * @param string|\Callable|array $instantiator + * @return PhpClass + */ public function setInstantiator($instantiator) { $this->instantiator = $instantiator; @@ -54,11 +77,18 @@ public function setInstantiator($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; @@ -104,6 +134,7 @@ public function addInjectionMethod(InjectionMethod $injectionMethod) public function createInjectionMethod($name = null) { $builder = $this->defaultMethodBuilder; + /* @var $method InjectionMethod */ $method = new $builder(); if (null !== $name) { $method->setName($name); @@ -138,6 +169,9 @@ public function getMethodBuilder() return $this->defaultMethodBuilder; } + /** + * @return InjectionMethod[] + */ public function getInjectionMethods() { return $this->injectionMethods; diff --git a/src/Definition/BuilderDefinition.php b/src/Definition/BuilderDefinition.php index 1c65849e..f69ba0f1 100644 --- a/src/Definition/BuilderDefinition.php +++ b/src/Definition/BuilderDefinition.php @@ -26,7 +26,7 @@ class BuilderDefinition implements DefinitionInterface protected $defaultClassBuilder = 'Zend\Di\Definition\Builder\PhpClass'; /** - * @var array + * @var Builder\PhpClass[] */ protected $classes = array(); @@ -94,7 +94,9 @@ public function addClass(Builder\PhpClass $phpClass) public function createClass($name = null) { $builderClass = $this->defaultClassBuilder; + /* @var $class Builder\PhpClass */ $class = new $builderClass(); + if (null !== $name) { $class->setName($name); } @@ -131,11 +133,13 @@ public function getClassBuilder() } /** - * @return array + * @return string[] */ public function getClasses() { $classNames = array(); + + /* @var $class Builder\PhpClass */ foreach ($this->classes as $class) { $classNames[] = $class->getName(); } @@ -234,6 +238,7 @@ public function getMethods($class) $methods = $class->getInjectionMethods(); $methodNames = array(); + /* @var $methodObj Builder\InjectionMethod */ foreach ($methods as $methodObj) { $methodNames[] = $methodObj->getName(); } @@ -254,6 +259,8 @@ public function hasMethod($class, $method) throw new Exception\RuntimeException('Cannot find class object in this builder definition.'); } $methods = $class->getInjectionMethods(); + + /* @var $methodObj Builder\InjectionMethod */ foreach ($methods as $methodObj) { if ($methodObj->getName() === $method) { return true; @@ -275,6 +282,7 @@ public function hasMethodParameters($class, $method) return false; } $methods = $class->getInjectionMethods(); + /* @var $methodObj Builder\InjectionMethod */ foreach ($methods as $methodObj) { if ($methodObj->getName() === $method) { $method = $methodObj; @@ -284,6 +292,7 @@ public function hasMethodParameters($class, $method) return false; } + /* @var $method Builder\InjectionMethod */ return (count($method->getParameters()) > 0); } @@ -300,6 +309,7 @@ public function getMethodParameters($class, $method) throw new Exception\RuntimeException('Cannot find class object in this builder definition.'); } $methods = $class->getInjectionMethods(); + /* @var $methodObj Builder\InjectionMethod */ foreach ($methods as $methodObj) { if ($methodObj->getName() === $method) { $method = $methodObj; @@ -309,6 +319,7 @@ public function getMethodParameters($class, $method) throw new Exception\RuntimeException('Cannot find method object for method ' . $method . ' in this builder definition.'); } $methodParameters = array(); + /* @var $method Builder\InjectionMethod */ foreach ($method->getParameters() as $name => $info) { $methodParameters[$class->getName() . '::' . $method->getName() . ':' . $name] = $info; } diff --git a/src/Definition/ClassDefinition.php b/src/Definition/ClassDefinition.php index 9bc85024..c08c7910 100644 --- a/src/Definition/ClassDefinition.php +++ b/src/Definition/ClassDefinition.php @@ -18,18 +18,43 @@ */ class ClassDefinition implements DefinitionInterface, PartialMarker { - + /** + * @var null|string + */ protected $class = null; + + /** + * @var string[] + */ protected $supertypes = array(); + + /** + * @var null|\Callable|array|string + */ protected $instantiator = null; + + /** + * @var bool[] + */ protected $methods = array(); + + /** + * @var array + */ protected $methodParameters = array(); + /** + * @param string $class + */ public function __construct($class) { $this->class = $class; } + /** + * @param null|\Callable|array|string $instantiator + * @return self + */ public function setInstantiator($instantiator) { $this->instantiator = $instantiator; @@ -37,6 +62,10 @@ public function setInstantiator($instantiator) return $this; } + /** + * @param string[] $supertypes + * @return self + */ public function setSupertypes(array $supertypes) { $this->supertypes = $supertypes; @@ -47,7 +76,7 @@ public function setSupertypes(array $supertypes) /** * @param string $method * @param bool|null $isRequired - * @return ClassDefinition + * @return self */ public function addMethod($method, $isRequired = null) { diff --git a/src/Definition/CompilerDefinition.php b/src/Definition/CompilerDefinition.php index 2685364d..2ad2212a 100644 --- a/src/Definition/CompilerDefinition.php +++ b/src/Definition/CompilerDefinition.php @@ -60,6 +60,9 @@ public function setIntrospectionStrategy(IntrospectionStrategy $introspectionStr $this->introspectionStrategy = $introspectionStrategy; } + /** + * @param bool $allowReflectionExceptions + */ public function setAllowReflectionExceptions($allowReflectionExceptions = true) { $this->allowReflectionExceptions = (bool) $allowReflectionExceptions; @@ -124,6 +127,9 @@ public function compile() } } + /** + * @return ArrayDefinition + */ public function toArrayDefinition() { return new ArrayDefinition( @@ -131,6 +137,10 @@ public function toArrayDefinition() ); } + /** + * @param string $class + * @throws \ReflectionException + */ protected function processClass($class) { $strategy = $this->introspectionStrategy; // localize for readability @@ -168,6 +178,7 @@ protected function processClass($class) } } + /* @var $rTarget \Zend\Code\Reflection\ClassReflection */ $rTarget = $rClass; $supertypes = array(); do { @@ -261,6 +272,11 @@ protected function processClass($class) } } + /** + * @param array $def + * @param \Zend\Code\Reflection\ClassReflection $rClass + * @param \Zend\Code\Reflection\MethodReflection $rMethod + */ protected function processParams(&$def, Reflection\ClassReflection $rClass, Reflection\MethodReflection $rMethod) { if (count($rMethod->getParameters()) === 0) { @@ -447,7 +463,7 @@ protected function processParams(&$def, Reflection\ClassReflection $rClass, Refl /** * Return nothing * - * @return array + * @return string[] */ public function getClasses() { @@ -469,7 +485,7 @@ public function hasClass($class) * Return the supertypes for this class * * @param string $class - * @return array of types + * @return string[] of types */ public function getClassSupertypes($class) { @@ -484,7 +500,7 @@ public function getClassSupertypes($class) * Get the instantiator * * @param string $class - * @return string|\Callable + * @return array|\Callable|string */ public function getInstantiator($class) { @@ -530,7 +546,7 @@ public function hasMethod($class, $method) * Return an array of the injection methods * * @param string $class - * @return array + * @return string[] */ public function getMethods($class) { diff --git a/src/Definition/DefinitionInterface.php b/src/Definition/DefinitionInterface.php index 33c2f4ef..470f6e66 100644 --- a/src/Definition/DefinitionInterface.php +++ b/src/Definition/DefinitionInterface.php @@ -89,7 +89,7 @@ public function hasMethodParameters($class, $method); * @abstract * @param $class * @param $method - * @return array[] + * @return array */ public function getMethodParameters($class, $method); } diff --git a/src/Definition/RuntimeDefinition.php b/src/Definition/RuntimeDefinition.php index c5c2a4bf..56bbdfa1 100644 --- a/src/Definition/RuntimeDefinition.php +++ b/src/Definition/RuntimeDefinition.php @@ -88,6 +88,9 @@ public function setExplicitClasses(array $explicitClasses) $this->classes = $explicitClasses; } + /** + * @param string $class + */ public function forceLoadClass($class) { $this->processClass($class); @@ -96,7 +99,7 @@ public function forceLoadClass($class) /** * Retrieves registered classes names * - * @return array + * @return string[] */ public function getClasses() { @@ -122,7 +125,7 @@ public function hasClass($class) * Return the supertypes for this class * * @param string $class - * @return array of types + * @return string[] of types */ public function getClassSupertypes($class) { @@ -137,7 +140,7 @@ public function getClassSupertypes($class) * Get the instantiator * * @param string $class - * @return string|\Callable + * @return array|\Callable|string */ public function getInstantiator($class) { @@ -183,7 +186,7 @@ public function hasMethod($class, $method) * Return an array of the injection methods * * @param string $class - * @return array + * @return string[] */ public function getMethods($class) { @@ -231,6 +234,9 @@ public function getMethodParameters($class, $method) return $this->classes[$class]['parameters'][$method]; } + /** + * @param string $class + */ protected function processClass($class) { $strategy = $this->introspectionStrategy; // localize for readability @@ -344,6 +350,11 @@ protected function processClass($class) } } + /** + * @param array $def + * @param \Zend\Code\Reflection\ClassReflection $rClass + * @param \Zend\Code\Reflection\MethodReflection $rMethod + */ protected function processParams(&$def, Reflection\ClassReflection $rClass, Reflection\MethodReflection $rMethod) { if (count($rMethod->getParameters()) === 0) { diff --git a/src/DefinitionList.php b/src/DefinitionList.php index 5bf07ea8..589050e1 100644 --- a/src/DefinitionList.php +++ b/src/DefinitionList.php @@ -20,7 +20,9 @@ */ class DefinitionList extends SplDoublyLinkedList implements Definition\DefinitionInterface { - + /** + * @param Definition\DefinitionInterface[] $definitions + */ public function __construct($definitions) { if (!is_array($definitions)) { @@ -80,6 +82,10 @@ public function getDefinitionByType($type) return false; } + /** + * @param string $class + * @return bool|Definition\DefinitionInterface + */ public function getDefinitionForClass($class) { /** @var $definition Definition\DefinitionInterface */ @@ -92,15 +98,17 @@ public function getDefinitionForClass($class) return false; } + /** + * @param string $class + * @return bool|Definition\DefinitionInterface + */ public function forClass($class) { return $this->getDefinitionForClass($class); } /** - * Get classes - * - * @return array + * {@inheritDoc} */ public function getClasses() { @@ -114,10 +122,7 @@ public function getClasses() } /** - * Check for class - * - * @param string $class - * @return bool + * {@inheritDoc} */ public function hasClass($class) { @@ -131,6 +136,9 @@ public function hasClass($class) return false; } + /** + * {@inheritDoc} + */ public function getClassSupertypes($class) { $supertypes = array(); @@ -142,6 +150,9 @@ public function getClassSupertypes($class) return $supertypes; } + /** + * {@inheritDoc} + */ public function getInstantiator($class) { /** @var $definition Definition\DefinitionInterface */ @@ -160,10 +171,7 @@ public function getInstantiator($class) } /** - * Check for methods - * - * @param string $class - * @return bool + * {@inheritDoc} */ public function hasMethods($class) { @@ -182,11 +190,7 @@ public function hasMethods($class) } /** - * Check for method - * - * @param string $class - * @param string $method - * @return bool + * {@inheritDoc} */ public function hasMethod($class, $method) { @@ -205,10 +209,7 @@ public function hasMethod($class, $method) } /** - * Get methods - * - * @param string $class - * @return array| + * {@inheritDoc} */ public function getMethods($class) { @@ -227,6 +228,9 @@ public function getMethods($class) return $methods; } + /** + * {@inheritDoc} + */ public function hasMethodParameters($class, $method) { $methodParameters = $this->getMethodParameters($class, $method); @@ -234,6 +238,9 @@ public function hasMethodParameters($class, $method) return ($methodParameters !== array()); } + /** + * {@inheritDoc} + */ public function getMethodParameters($class, $method) { /** @var $definition Definition\DefinitionInterface */ diff --git a/src/Di.php b/src/Di.php index 3199576f..bceda462 100644 --- a/src/Di.php +++ b/src/Di.php @@ -79,8 +79,8 @@ public function configure(Configuration $config) } /** - * @param DefinitionList $definition - * @return Di + * @param DefinitionList $definitions + * @return self */ public function setDefinitionList(DefinitionList $definitions) { @@ -267,6 +267,15 @@ public function injectDependencies($instance, array $params = array()) $this->handleInjectDependencies($instance, $injectionMethods, $params, $class, null, null); } + /** + * @param object $instance + * @param array $injectionMethods + * @param array $params + * @param string|null $instanceClass + * @param string|null$instanceAlias + * @param string $requestedName + * @throws Exception\RuntimeException + */ protected function handleInjectDependencies($instance, $injectionMethods, $params, $instanceClass, $instanceAlias, $requestedName) { // localize dependencies @@ -417,10 +426,12 @@ protected function createInstanceViaCallback($callback, $params, $alias) * This parameter will handle any injection methods and resolution of * dependencies for such methods * - * @param object $object - * @param string $method - * @param array $params - * @param string $alias + * @param object $instance + * @param string $method + * @param array $params + * @param string $alias + * @param bool $methodIsRequired + * @param string|null $methodClass * @return bool */ protected function resolveAndCallInjectionMethodForInstance($instance, $method, $params, $alias, $methodIsRequired, $methodClass = null) @@ -707,7 +718,7 @@ protected function getClass($instance) * @see https://github.com/zendframework/zf2/pull/1807 * * @param string $className - * @param string $type + * @param $type * @return bool */ protected static function isSubclassOf($className, $type) diff --git a/src/Display/Console.php b/src/Display/Console.php index 315a71c6..ea19ecf8 100644 --- a/src/Display/Console.php +++ b/src/Display/Console.php @@ -27,7 +27,7 @@ class Console protected $di = null; /** - * @var array + * @var string[] */ protected $runtimeClasses = array(); @@ -55,6 +55,9 @@ public function __construct(Di $di = null) $this->di = ($di) ?: new Di; } + /** + * @param string[] $runtimeClasses + */ public function addRuntimeClasses(array $runtimeClasses) { foreach ($runtimeClasses as $runtimeClass) { @@ -62,6 +65,9 @@ public function addRuntimeClasses(array $runtimeClasses) } } + /** + * @param string $runtimeClass + */ public function addRuntimeClass($runtimeClass) { $this->runtimeClasses[] = $runtimeClass; @@ -134,6 +140,9 @@ public function render() } + /** + * @param object $definition + */ protected function renderDefinition($definition) { echo ' Definition Type: ' . get_class($definition) . PHP_EOL; @@ -151,6 +160,10 @@ protected function renderDefinition($definition) } } + /** + * @param \Zend\Di\Definition\DefinitionInterface $definition + * @param string $class + */ protected function renderClassDefinition($definition, $class) { echo PHP_EOL . ' Parameters For Class: ' . $class . PHP_EOL; diff --git a/src/InstanceManager.php b/src/InstanceManager.php index 69a2431e..e4b14770 100644 --- a/src/InstanceManager.php +++ b/src/InstanceManager.php @@ -71,6 +71,7 @@ class InstanceManager /* implements InstanceManagerInterface */ /** * Does this instance manager have this shared instance + * @param string $classOrAlias * @return bool */ public function hasSharedInstance($classOrAlias) @@ -147,6 +148,14 @@ public function addSharedInstanceWithParameters($instance, $classOrAlias, array $this->sharedInstancesWithParams['hashLong'][$hashKey . '/' . $hashValue] = $instance; } + /** + * Retrieves an instance by its name and the parameters stored at its instantiation + * + * @param string $classOrAlias + * @param array $params + * @param bool|null $fastHashFromHasLookup + * @return object|bool false if no instance was found + */ public function getSharedInstanceWithParameters($classOrAlias, array $params, $fastHashFromHasLookup = null) { if ($fastHashFromHasLookup) { @@ -212,6 +221,11 @@ public function getClassFromAlias($alias) return $alias; } + /** + * @param string $alias + * @return string|bool + * @throws Exception\RuntimeException + */ protected function getBaseAlias($alias) { if (!$this->hasAlias($alias)) { @@ -274,6 +288,13 @@ public function hasConfiguration($aliasOrClass) return true; } + /** + * Sets configuration for a single alias/class + * + * @param string $aliasOrClass + * @param array $configuration + * @param bool $append + */ public function setConfiguration($aliasOrClass, array $configuration, $append = false) { $key = ($this->hasAlias($aliasOrClass)) ? 'alias:' . $this->getBaseAlias($aliasOrClass) : $aliasOrClass; @@ -305,6 +326,10 @@ public function getClasses() return $classes; } + /** + * @param string $aliasOrClass + * @return array + */ public function getConfiguration($aliasOrClass) { $key = ($this->hasAlias($aliasOrClass)) ? 'alias:' . $this->getBaseAlias($aliasOrClass) : $aliasOrClass; @@ -319,7 +344,7 @@ public function getConfiguration($aliasOrClass) * setParameters() is a convenience method for: * setConfiguration($type, array('parameters' => array(...)), true); * - * @param string $type Alias or Class + * @param string $aliasOrClass Alias or Class * @param array $parameters Multi-dim array of parameters and their values * @return void */ @@ -332,8 +357,8 @@ public function setParameters($aliasOrClass, array $parameters) * setInjections() is a convenience method for: * setConfiguration($type, array('injections' => array(...)), true); * - * @param string $type Alias or Class - * @param array $methods Multi-dim array of methods and their parameters + * @param string $aliasOrClass Alias or Class + * @param array $injections Multi-dim array of methods and their parameters * @return void */ public function setInjections($aliasOrClass, array $injections) @@ -411,6 +436,14 @@ public function unsetTypePreferences($interfaceOrAbstract) unset($this->typePreferences[$key]); } + /** + * Adds a type preference. A type preference is a redirection to a preferred alias or type when an abstract type + * $interfaceOrAbstract is requested + * + * @param string $interfaceOrAbstract + * @param string $preferredImplementation + * @return self + */ public function addTypePreference($interfaceOrAbstract, $preferredImplementation) { $key = ($this->hasAlias($interfaceOrAbstract)) ? 'alias:' . $interfaceOrAbstract : $interfaceOrAbstract; @@ -422,6 +455,13 @@ public function addTypePreference($interfaceOrAbstract, $preferredImplementation return $this; } + /** + * Removes a previously set type preference + * + * @param string $interfaceOrAbstract + * @param string $preferredType + * @return bool|self + */ public function removeTypePreference($interfaceOrAbstract, $preferredType) { $key = ($this->hasAlias($interfaceOrAbstract)) ? 'alias:' . $interfaceOrAbstract : $interfaceOrAbstract; @@ -433,11 +473,21 @@ public function removeTypePreference($interfaceOrAbstract, $preferredType) return $this; } + /** + * @param string $classOrAlias + * @param string[] $paramKeys + * @return string + */ protected function createHashForKeys($classOrAlias, $paramKeys) { return $classOrAlias . ':' . implode('|', $paramKeys); } + /** + * @param string $classOrAlias + * @param array $paramValues + * @return string + */ protected function createHashForValues($classOrAlias, $paramValues) { $hashValue = ''; diff --git a/src/ServiceLocator.php b/src/ServiceLocator.php index 6e490481..2d94527b 100644 --- a/src/ServiceLocator.php +++ b/src/ServiceLocator.php @@ -47,11 +47,7 @@ class ServiceLocator implements ServiceLocatorInterface protected $services = array(); /** - * Register a service with the locator - * - * @param string $name - * @param mixed $service - * @return ServiceLocator + * {@inheritDoc} */ public function set($name, $service) { diff --git a/src/ServiceLocatorInterface.php b/src/ServiceLocatorInterface.php index 2dbc4cd9..53594538 100644 --- a/src/ServiceLocatorInterface.php +++ b/src/ServiceLocatorInterface.php @@ -16,5 +16,13 @@ */ interface ServiceLocatorInterface extends LocatorInterface { + /** + * Register a service with the locator + * + * @abstract + * @param string $name + * @param mixed $service + * @return ServiceLocatorInterface + */ public function set($name, $service); } From 8804296908ef4c69ba24368ca15757cba66da65c Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 13 Jul 2012 02:55:18 +0200 Subject: [PATCH 14/15] Removing duplicate docs and fixing typos/type compatibilities --- src/Definition/Builder/InjectionMethod.php | 2 - src/Definition/BuilderDefinition.php | 29 +++------ src/Definition/ClassDefinition.php | 41 +++---------- src/Definition/CompilerDefinition.php | 61 ++++++------------- src/Definition/DefinitionInterface.php | 14 ++++- src/Definition/RuntimeDefinition.php | 57 ++++------------- src/DefinitionList.php | 2 +- src/InstanceManager.php | 6 +- .../DependencyInjectorProxy.php | 27 +++----- src/ServiceLocator/Generator.php | 8 ++- src/ServiceLocator/GeneratorInstance.php | 3 + 11 files changed, 82 insertions(+), 168 deletions(-) diff --git a/src/Definition/Builder/InjectionMethod.php b/src/Definition/Builder/InjectionMethod.php index 42626074..47822605 100644 --- a/src/Definition/Builder/InjectionMethod.php +++ b/src/Definition/Builder/InjectionMethod.php @@ -18,8 +18,6 @@ */ class InjectionMethod { - const PARAMETER_POSTION_NEXT = 'next'; - /** * @var string|null */ diff --git a/src/Definition/BuilderDefinition.php b/src/Definition/BuilderDefinition.php index f69ba0f1..efbf3f38 100644 --- a/src/Definition/BuilderDefinition.php +++ b/src/Definition/BuilderDefinition.php @@ -133,7 +133,7 @@ public function getClassBuilder() } /** - * @return string[] + * {@inheritDoc} */ public function getClasses() { @@ -148,8 +148,7 @@ public function getClasses() } /** - * @param string $class - * @return bool + * {@inheritDoc} */ public function hasClass($class) { @@ -178,9 +177,8 @@ protected function getClass($name) } /** - * @param string $class + * {@inheritDoc} * @throws \Zend\Di\Exception\RuntimeException - * @return array|\string[] */ public function getClassSupertypes($class) { @@ -194,9 +192,8 @@ public function getClassSupertypes($class) } /** - * @param string $class + * {@inheritDoc} * @throws \Zend\Di\Exception\RuntimeException - * @return array|string */ public function getInstantiator($class) { @@ -209,9 +206,8 @@ public function getInstantiator($class) } /** - * @param string $class + * {@inheritDoc} * @throws \Zend\Di\Exception\RuntimeException - * @return bool */ public function hasMethods($class) { @@ -225,9 +221,8 @@ public function hasMethods($class) } /** - * @param string $class + * {@inheritDoc} * @throws \Zend\Di\Exception\RuntimeException - * @return array|string[] */ public function getMethods($class) { @@ -247,10 +242,8 @@ public function getMethods($class) } /** - * @param string $class - * @param string $method + * {@inheritDoc} * @throws \Zend\Di\Exception\RuntimeException - * @return bool */ public function hasMethod($class, $method) { @@ -271,9 +264,7 @@ public function hasMethod($class, $method) } /** - * @param string $class - * @param string $method - * @return bool + * {@inheritDoc} */ public function hasMethodParameters($class, $method) { @@ -297,10 +288,8 @@ public function hasMethodParameters($class, $method) } /** - * @param string $class - * @param string $method + * {@inheritDoc} * @throws \Zend\Di\Exception\RuntimeException - * @return array|\array[] */ public function getMethodParameters($class, $method) { diff --git a/src/Definition/ClassDefinition.php b/src/Definition/ClassDefinition.php index c08c7910..ed6d4912 100644 --- a/src/Definition/ClassDefinition.php +++ b/src/Definition/ClassDefinition.php @@ -116,7 +116,7 @@ public function addMethodParameter($method, $parameterName, array $parameterInfo } /** - * @return string[] + * {@inheritDoc} */ public function getClasses() { @@ -124,8 +124,7 @@ public function getClasses() } /** - * @param string $class - * @return bool + * {@inheritDoc} */ public function hasClass($class) { @@ -133,8 +132,7 @@ public function hasClass($class) } /** - * @param string $class - * @return string[] + * {@inheritDoc} */ public function getClassSupertypes($class) { @@ -142,8 +140,7 @@ public function getClassSupertypes($class) } /** - * @param string $class - * @return string|array + * {@inheritDoc} */ public function getInstantiator($class) { @@ -151,8 +148,7 @@ public function getInstantiator($class) } /** - * @param string $class - * @return bool + * {@inheritDoc} */ public function hasMethods($class) { @@ -160,8 +156,7 @@ public function hasMethods($class) } /** - * @param string $class - * @return string[] + * {@inheritDoc} */ public function getMethods($class) { @@ -169,9 +164,7 @@ public function getMethods($class) } /** - * @param string $class - * @param string $method - * @return bool + * {@inheritDoc} */ public function hasMethod($class, $method) { @@ -183,9 +176,7 @@ public function hasMethod($class, $method) } /** - * @param string $class - * @param string $method - * @return bool + * {@inheritDoc} */ public function hasMethodParameters($class, $method) { @@ -193,21 +184,7 @@ public function hasMethodParameters($class, $method) } /** - * getMethodParameters() return information about a methods parameters. - * - * Should return an ordered named array of parameters for a given method. - * Each value should be an array, of length 4 with the following information: - * - * array( - * 0, // string|null: Type Name (if it exists) - * 1, // bool: whether this param is required - * 2, // string: fully qualified path to this parameter - * ); - * - * - * @param $class - * @param $method - * @return array[] + * {@inheritDoc} */ public function getMethodParameters($class, $method) { diff --git a/src/Definition/CompilerDefinition.php b/src/Definition/CompilerDefinition.php index 2ad2212a..91800c70 100644 --- a/src/Definition/CompilerDefinition.php +++ b/src/Definition/CompilerDefinition.php @@ -119,9 +119,7 @@ public function addCodeScannerFile(FileScanner $fileScanner) */ public function compile() { - /* - * @var $classScanner \Zend\Code\Scanner\DerivedClassScanner - */ + /* @var $classScanner \Zend\Code\Scanner\DerivedClassScanner */ foreach ($this->directoryScanner->getClassNames() as $class) { $this->processClass($class); } @@ -174,7 +172,7 @@ protected function processClass($class) if (($annotations instanceof AnnotationCollection) && $annotations->hasAnnotation('Zend\Di\Definition\Annotation\Instantiator') ) { - // @todo Instnatiator support in annotations + // @todo Instantiator support in annotations } } @@ -260,7 +258,8 @@ protected function processClass($class) preg_match($interfaceInjectorPattern, $rIface->getName(), $matches); if ($matches) { foreach ($rIface->getMethods() as $rMethod) { - if ($rMethod->getName() === '__construct') { // ctor not allowed in ifaces + if ($rMethod->getName() === '__construct') { + // constructor not allowed in interfaces continue; } $def['methods'][$rMethod->getName()] = true; @@ -395,7 +394,8 @@ protected function processParams(&$def, Reflection\ClassReflection $rClass, Refl // preg_match($interfaceInjectorPattern, $sInterface->getName(), $matches); // if ($matches) { // foreach ($sInterface->getMethods(true) as $sMethod) { -// if ($sMethod->getName() === '__construct') { // ctor not allowed in ifaces +// if ($sMethod->getName() === '__construct') { + // constructor not allowed in interfaces // continue; // } // $def['methods'][$sMethod->getName()] = true; @@ -461,9 +461,7 @@ protected function processParams(&$def, Reflection\ClassReflection $rClass, Refl // } /** - * Return nothing - * - * @return string[] + * {@inheritDoc} */ public function getClasses() { @@ -471,10 +469,7 @@ public function getClasses() } /** - * Return whether the class exists - * - * @param string $class - * @return bool + * {@inheritDoc} */ public function hasClass($class) { @@ -482,10 +477,7 @@ public function hasClass($class) } /** - * Return the supertypes for this class - * - * @param string $class - * @return string[] of types + * {@inheritDoc} */ public function getClassSupertypes($class) { @@ -497,10 +489,7 @@ public function getClassSupertypes($class) } /** - * Get the instantiator - * - * @param string $class - * @return array|\Callable|string + * {@inheritDoc} */ public function getInstantiator($class) { @@ -512,10 +501,7 @@ public function getInstantiator($class) } /** - * Return if there are injection methods - * - * @param string $class - * @return bool + * {@inheritDoc} */ public function hasMethods($class) { @@ -527,11 +513,7 @@ public function hasMethods($class) } /** - * Return injection methods - * - * @param string $class - * @param string $method - * @return bool + * {@inheritDoc} */ public function hasMethod($class, $method) { @@ -543,10 +525,7 @@ public function hasMethod($class, $method) } /** - * Return an array of the injection methods - * - * @param string $class - * @return string[] + * {@inheritDoc} */ public function getMethods($class) { @@ -557,6 +536,9 @@ public function getMethods($class) return $this->classes[$class]['methods']; } + /** + * {@inheritDoc} + */ public function hasMethodParameters($class, $method) { if (!isset($this->classes[$class])) { @@ -567,16 +549,7 @@ public function hasMethodParameters($class, $method) } /** - * Return the parameters for a method - * - * 3 item array: - * #1 - Class name, string if it exists, else null - * #2 - Optional?, boolean - * #3 - Instantiable, boolean if class exists, otherwise null - * - * @param string $class - * @param string $method - * @return array + * {@inheritDoc} */ public function getMethodParameters($class, $method) { diff --git a/src/Definition/DefinitionInterface.php b/src/Definition/DefinitionInterface.php index 470f6e66..4697444c 100644 --- a/src/Definition/DefinitionInterface.php +++ b/src/Definition/DefinitionInterface.php @@ -17,12 +17,16 @@ interface DefinitionInterface { /** + * Retrieves classes in this definition + * * @abstract * @return string[] */ public function getClasses(); /** + * Return whether the class exists in this definition + * * @abstract * @param string $class * @return bool @@ -30,6 +34,8 @@ public function getClasses(); public function hasClass($class); /** + * Return the supertypes for this class + * * @abstract * @param string $class * @return string[] @@ -44,6 +50,8 @@ public function getClassSupertypes($class); public function getInstantiator($class); /** + * Return if there are injection methods + * * @abstract * @param string $class * @return bool @@ -51,6 +59,8 @@ public function getInstantiator($class); public function hasMethods($class); /** + * Return an array of the injection methods for a given class + * * @abstract * @param string $class * @return string[] @@ -87,8 +97,8 @@ public function hasMethodParameters($class, $method); * * * @abstract - * @param $class - * @param $method + * @param string $class + * @param string $method * @return array */ public function getMethodParameters($class, $method); diff --git a/src/Definition/RuntimeDefinition.php b/src/Definition/RuntimeDefinition.php index 56bbdfa1..fac21b58 100644 --- a/src/Definition/RuntimeDefinition.php +++ b/src/Definition/RuntimeDefinition.php @@ -97,9 +97,7 @@ public function forceLoadClass($class) } /** - * Retrieves registered classes names - * - * @return string[] + * {@inheritDoc} */ public function getClasses() { @@ -107,10 +105,7 @@ public function getClasses() } /** - * Return whether the class exists - * - * @param string $class - * @return bool + * {@inheritDoc} */ public function hasClass($class) { @@ -122,10 +117,7 @@ public function hasClass($class) } /** - * Return the supertypes for this class - * - * @param string $class - * @return string[] of types + * {@inheritDoc} */ public function getClassSupertypes($class) { @@ -137,10 +129,7 @@ public function getClassSupertypes($class) } /** - * Get the instantiator - * - * @param string $class - * @return array|\Callable|string + * {@inheritDoc} */ public function getInstantiator($class) { @@ -152,10 +141,7 @@ public function getInstantiator($class) } /** - * Return if there are injection methods - * - * @param string $class - * @return bool + * {@inheritDoc} */ public function hasMethods($class) { @@ -167,11 +153,7 @@ public function hasMethods($class) } /** - * Return injection methods - * - * @param string $class - * @param string $method - * @return bool + * {@inheritDoc} */ public function hasMethod($class, $method) { @@ -183,10 +165,7 @@ public function hasMethod($class, $method) } /** - * Return an array of the injection methods - * - * @param string $class - * @return string[] + * {@inheritDoc} */ public function getMethods($class) { @@ -198,11 +177,7 @@ public function getMethods($class) } /** - * Check if method has parameters - * - * @param string $class - * @param string $method - * @return bool + * {@inheritDoc} */ public function hasMethodParameters($class, $method) { @@ -214,16 +189,7 @@ public function hasMethodParameters($class, $method) } /** - * Return the parameters for a method - * - * 3 item array: - * #1 - Class name, string if it exists, else null - * #2 - Optional?, boolean - * #3 - Instantiable, boolean if class exists, otherwise null - * - * @param string $class - * @param string $method - * @return array + * {@inheritDoc} */ public function getMethodParameters($class, $method) { @@ -262,7 +228,7 @@ protected function processClass($class) if (($annotations instanceof AnnotationCollection) && $annotations->hasAnnotation('Zend\Di\Definition\Annotation\Instantiator')) { - // @todo Instnatiator support in annotations + // @todo Instantiator support in annotations } } @@ -338,7 +304,8 @@ protected function processClass($class) preg_match($interfaceInjectorPattern, $rIface->getName(), $matches); if ($matches) { foreach ($rIface->getMethods() as $rMethod) { - if ($rMethod->getName() === '__construct') { // ctor not allowed in ifaces + if ($rMethod->getName() === '__construct') { + // constructor not allowed in interfaces continue; } $def['methods'][$rMethod->getName()] = true; diff --git a/src/DefinitionList.php b/src/DefinitionList.php index 589050e1..c7578c3e 100644 --- a/src/DefinitionList.php +++ b/src/DefinitionList.php @@ -21,7 +21,7 @@ class DefinitionList extends SplDoublyLinkedList implements Definition\DefinitionInterface { /** - * @param Definition\DefinitionInterface[] $definitions + * @param Definition\DefinitionInterface|Definition\DefinitionInterface[] $definitions */ public function __construct($definitions) { diff --git a/src/InstanceManager.php b/src/InstanceManager.php index e4b14770..eda43908 100644 --- a/src/InstanceManager.php +++ b/src/InstanceManager.php @@ -108,17 +108,17 @@ public function addSharedInstance($instance, $classOrAlias) * * @param string $classOrAlias * @param array $params - * @param bool $returnFashHashLookupKey + * @param bool $returnFastHashLookupKey * @return bool|string */ - public function hasSharedInstanceWithParameters($classOrAlias, array $params, $returnFashHashLookupKey = false) + public function hasSharedInstanceWithParameters($classOrAlias, array $params, $returnFastHashLookupKey = false) { ksort($params); $hashKey = $this->createHashForKeys($classOrAlias, array_keys($params)); if (isset($this->sharedInstancesWithParams['hashShort'][$hashKey])) { $hashValue = $this->createHashForValues($classOrAlias, $params); if (isset($this->sharedInstancesWithParams['hashLong'][$hashKey . '/' . $hashValue])) { - return ($returnFashHashLookupKey) ? $hashKey . '/' . $hashValue : true; + return ($returnFastHashLookupKey) ? $hashKey . '/' . $hashValue : true; } } diff --git a/src/ServiceLocator/DependencyInjectorProxy.php b/src/ServiceLocator/DependencyInjectorProxy.php index 1bc318b1..c6056170 100644 --- a/src/ServiceLocator/DependencyInjectorProxy.php +++ b/src/ServiceLocator/DependencyInjectorProxy.php @@ -14,7 +14,11 @@ use Zend\Di\Exception; /** - * Proxy used to analyze how instances are created by a given Di. + * Proxy used to analyze how instances are created by a given Di. Overrides Zend\Di\Di to produce artifacts that + * represent the process used to instantiate a particular instance + * + * @category Zend + * @package Zend_Di */ class DependencyInjectorProxy extends Di { @@ -34,18 +38,17 @@ public function __construct(Di $di) } /** - * Override, as we want it to use the functionality defined in the proxy - * - * @param string $name - * @param array $params + * {@inheritDoc} * @return GeneratorInstance */ public function get($name, array $params = array()) { return parent::get($name, $params); } + /** * {@inheritDoc} + * @return GeneratorInstance */ public function newInstance($name, array $params = array(), $isShared = true) { @@ -66,13 +69,7 @@ public function newInstance($name, array $params = array(), $isShared = true) } /** - * Override createInstanceViaConstructor method from injector - * - * Returns code generation artifacts. - * - * @param string $class - * @param null|array $params - * @param null|string $alias + * {@inheritDoc} * @return GeneratorInstance */ public function createInstanceViaConstructor($class, $params, $alias = null) @@ -90,11 +87,7 @@ public function createInstanceViaConstructor($class, $params, $alias = null) } /** - * Override instance creation via callback - * - * @param callback $callback - * @param null|array $params - * @param null|string $alias + * {@inheritDoc} * @throws \Zend\Di\Exception\InvalidCallbackException * @return GeneratorInstance */ diff --git a/src/ServiceLocator/Generator.php b/src/ServiceLocator/Generator.php index 679950a2..cad4ef60 100644 --- a/src/ServiceLocator/Generator.php +++ b/src/ServiceLocator/Generator.php @@ -18,7 +18,11 @@ use Zend\Di\Exception; /** - * @todo refactor to use new Definition interface + * Generator that creates the body of a service locator that can emulate the logic of the given Zend\Di\Di instance + * without class definitions + * + * @category Zend + * @package Zend_Di */ class Generator { @@ -68,7 +72,7 @@ public function setNamespace($namespace) } /** - * Construct, configure, and return a PHP classfile code generation object + * Construct, configure, and return a PHP class file code generation object * * Creates a Zend\CodeGenerator\Php\PhpFile object that has * created the specified class and service locator methods. diff --git a/src/ServiceLocator/GeneratorInstance.php b/src/ServiceLocator/GeneratorInstance.php index 1aa872e6..ef5e64ca 100644 --- a/src/ServiceLocator/GeneratorInstance.php +++ b/src/ServiceLocator/GeneratorInstance.php @@ -12,6 +12,9 @@ /** * Container for methods and parameters used by by Di to create a particular instance + * + * @category Zend + * @package Zend_Di */ class GeneratorInstance { From d664dde986f0c45a1996fd85c42b1be53b5587aa Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 13 Jul 2012 02:58:59 +0200 Subject: [PATCH 15/15] Additional pass with CS fixer --- src/Configuration.php | 2 +- src/Definition/Builder/InjectionMethod.php | 8 ++--- src/Definition/Builder/PhpClass.php | 4 +-- src/Definition/BuilderDefinition.php | 3 +- src/Definition/ClassDefinition.php | 8 ++--- src/Definition/CompilerDefinition.php | 4 +-- src/Definition/DefinitionInterface.php | 4 +-- src/Definition/RuntimeDefinition.php | 4 +-- src/DefinitionList.php | 4 +-- src/Di.php | 24 ++++++------- src/Display/Console.php | 2 +- src/InstanceManager.php | 40 +++++++++++----------- src/ServiceLocator/Generator.php | 2 +- src/ServiceLocatorInterface.php | 4 +-- 14 files changed, 57 insertions(+), 56 deletions(-) diff --git a/src/Configuration.php b/src/Configuration.php index 32c2fc19..a7457b3b 100644 --- a/src/Configuration.php +++ b/src/Configuration.php @@ -67,7 +67,7 @@ public function configure(Di $di) } /** - * @param Di $di + * @param Di $di * @param array $definition */ public function configureDefinition(Di $di, $definition) diff --git a/src/Definition/Builder/InjectionMethod.php b/src/Definition/Builder/InjectionMethod.php index 47822605..e52f9e99 100644 --- a/src/Definition/Builder/InjectionMethod.php +++ b/src/Definition/Builder/InjectionMethod.php @@ -29,7 +29,7 @@ class InjectionMethod protected $parameters = array(); /** - * @param string|null $name + * @param string|null $name * @return self */ public function setName($name) @@ -48,9 +48,9 @@ public function getName() } /** - * @param string $name - * @param string|null $class - * @param mixed|null $isRequired + * @param string $name + * @param string|null $class + * @param mixed|null $isRequired * @return InjectionMethod */ public function addParameter($name, $class = null, $isRequired = null) diff --git a/src/Definition/Builder/PhpClass.php b/src/Definition/Builder/PhpClass.php index b5c69737..f9f1b865 100644 --- a/src/Definition/Builder/PhpClass.php +++ b/src/Definition/Builder/PhpClass.php @@ -67,7 +67,7 @@ public function getName() } /** - * @param string|\Callable|array $instantiator + * @param string|\Callable|array $instantiator * @return PhpClass */ public function setInstantiator($instantiator) @@ -86,7 +86,7 @@ public function getInstantiator() } /** - * @param string $superType + * @param string $superType * @return PhpClass */ public function addSuperType($superType) diff --git a/src/Definition/BuilderDefinition.php b/src/Definition/BuilderDefinition.php index efbf3f38..fb9ee2d4 100644 --- a/src/Definition/BuilderDefinition.php +++ b/src/Definition/BuilderDefinition.php @@ -162,7 +162,7 @@ public function hasClass($class) } /** - * @param string $name + * @param string $name * @return bool|Builder\PhpClass */ protected function getClass($name) @@ -284,6 +284,7 @@ public function hasMethodParameters($class, $method) } /* @var $method Builder\InjectionMethod */ + return (count($method->getParameters()) > 0); } diff --git a/src/Definition/ClassDefinition.php b/src/Definition/ClassDefinition.php index ed6d4912..9249d931 100644 --- a/src/Definition/ClassDefinition.php +++ b/src/Definition/ClassDefinition.php @@ -52,7 +52,7 @@ public function __construct($class) } /** - * @param null|\Callable|array|string $instantiator + * @param null|\Callable|array|string $instantiator * @return self */ public function setInstantiator($instantiator) @@ -63,7 +63,7 @@ public function setInstantiator($instantiator) } /** - * @param string[] $supertypes + * @param string[] $supertypes * @return self */ public function setSupertypes(array $supertypes) @@ -74,8 +74,8 @@ public function setSupertypes(array $supertypes) } /** - * @param string $method - * @param bool|null $isRequired + * @param string $method + * @param bool|null $isRequired * @return self */ public function addMethod($method, $isRequired = null) diff --git a/src/Definition/CompilerDefinition.php b/src/Definition/CompilerDefinition.php index 91800c70..be08fb8c 100644 --- a/src/Definition/CompilerDefinition.php +++ b/src/Definition/CompilerDefinition.php @@ -136,7 +136,7 @@ public function toArrayDefinition() } /** - * @param string $class + * @param string $class * @throws \ReflectionException */ protected function processClass($class) @@ -272,7 +272,7 @@ protected function processClass($class) } /** - * @param array $def + * @param array $def * @param \Zend\Code\Reflection\ClassReflection $rClass * @param \Zend\Code\Reflection\MethodReflection $rMethod */ diff --git a/src/Definition/DefinitionInterface.php b/src/Definition/DefinitionInterface.php index 4697444c..a642d9d2 100644 --- a/src/Definition/DefinitionInterface.php +++ b/src/Definition/DefinitionInterface.php @@ -97,8 +97,8 @@ public function hasMethodParameters($class, $method); * * * @abstract - * @param string $class - * @param string $method + * @param string $class + * @param string $method * @return array */ public function getMethodParameters($class, $method); diff --git a/src/Definition/RuntimeDefinition.php b/src/Definition/RuntimeDefinition.php index fac21b58..f9b821bb 100644 --- a/src/Definition/RuntimeDefinition.php +++ b/src/Definition/RuntimeDefinition.php @@ -318,8 +318,8 @@ protected function processClass($class) } /** - * @param array $def - * @param \Zend\Code\Reflection\ClassReflection $rClass + * @param array $def + * @param \Zend\Code\Reflection\ClassReflection $rClass * @param \Zend\Code\Reflection\MethodReflection $rMethod */ protected function processParams(&$def, Reflection\ClassReflection $rClass, Reflection\MethodReflection $rMethod) diff --git a/src/DefinitionList.php b/src/DefinitionList.php index c7578c3e..47061f3b 100644 --- a/src/DefinitionList.php +++ b/src/DefinitionList.php @@ -83,7 +83,7 @@ public function getDefinitionByType($type) } /** - * @param string $class + * @param string $class * @return bool|Definition\DefinitionInterface */ public function getDefinitionForClass($class) @@ -99,7 +99,7 @@ public function getDefinitionForClass($class) } /** - * @param string $class + * @param string $class * @return bool|Definition\DefinitionInterface */ public function forClass($class) diff --git a/src/Di.php b/src/Di.php index bceda462..0bf3d15a 100644 --- a/src/Di.php +++ b/src/Di.php @@ -79,7 +79,7 @@ public function configure(Configuration $config) } /** - * @param DefinitionList $definitions + * @param DefinitionList $definitions * @return self */ public function setDefinitionList(DefinitionList $definitions) @@ -268,12 +268,12 @@ public function injectDependencies($instance, array $params = array()) } /** - * @param object $instance - * @param array $injectionMethods - * @param array $params + * @param object $instance + * @param array $injectionMethods + * @param array $params * @param string|null $instanceClass * @param string|null$instanceAlias - * @param string $requestedName + * @param string $requestedName * @throws Exception\RuntimeException */ protected function handleInjectDependencies($instance, $injectionMethods, $params, $instanceClass, $instanceAlias, $requestedName) @@ -426,12 +426,12 @@ protected function createInstanceViaCallback($callback, $params, $alias) * This parameter will handle any injection methods and resolution of * dependencies for such methods * - * @param object $instance - * @param string $method - * @param array $params - * @param string $alias - * @param bool $methodIsRequired - * @param string|null $methodClass + * @param object $instance + * @param string $method + * @param array $params + * @param string $alias + * @param bool $methodIsRequired + * @param string|null $methodClass * @return bool */ protected function resolveAndCallInjectionMethodForInstance($instance, $method, $params, $alias, $methodIsRequired, $methodClass = null) @@ -457,7 +457,7 @@ protected function resolveAndCallInjectionMethodForInstance($instance, $method, * @param string $method * @param array $callTimeUserParams * @param string $alias - * @param bool $methodIsRequired + * @param bool $methodIsRequired * @param bool $isInstantiator * @throws Exception\MissingPropertyException * @throws Exception\CircularDependencyException diff --git a/src/Display/Console.php b/src/Display/Console.php index ea19ecf8..6e587945 100644 --- a/src/Display/Console.php +++ b/src/Display/Console.php @@ -162,7 +162,7 @@ protected function renderDefinition($definition) /** * @param \Zend\Di\Definition\DefinitionInterface $definition - * @param string $class + * @param string $class */ protected function renderClassDefinition($definition, $class) { diff --git a/src/InstanceManager.php b/src/InstanceManager.php index eda43908..a94b7831 100644 --- a/src/InstanceManager.php +++ b/src/InstanceManager.php @@ -71,7 +71,7 @@ class InstanceManager /* implements InstanceManagerInterface */ /** * Does this instance manager have this shared instance - * @param string $classOrAlias + * @param string $classOrAlias * @return bool */ public function hasSharedInstance($classOrAlias) @@ -151,9 +151,9 @@ public function addSharedInstanceWithParameters($instance, $classOrAlias, array /** * Retrieves an instance by its name and the parameters stored at its instantiation * - * @param string $classOrAlias - * @param array $params - * @param bool|null $fastHashFromHasLookup + * @param string $classOrAlias + * @param array $params + * @param bool|null $fastHashFromHasLookup * @return object|bool false if no instance was found */ public function getSharedInstanceWithParameters($classOrAlias, array $params, $fastHashFromHasLookup = null) @@ -222,7 +222,7 @@ public function getClassFromAlias($alias) } /** - * @param string $alias + * @param string $alias * @return string|bool * @throws Exception\RuntimeException */ @@ -292,8 +292,8 @@ public function hasConfiguration($aliasOrClass) * Sets configuration for a single alias/class * * @param string $aliasOrClass - * @param array $configuration - * @param bool $append + * @param array $configuration + * @param bool $append */ public function setConfiguration($aliasOrClass, array $configuration, $append = false) { @@ -327,7 +327,7 @@ public function getClasses() } /** - * @param string $aliasOrClass + * @param string $aliasOrClass * @return array */ public function getConfiguration($aliasOrClass) @@ -344,8 +344,8 @@ public function getConfiguration($aliasOrClass) * setParameters() is a convenience method for: * setConfiguration($type, array('parameters' => array(...)), true); * - * @param string $aliasOrClass Alias or Class - * @param array $parameters Multi-dim array of parameters and their values + * @param string $aliasOrClass Alias or Class + * @param array $parameters Multi-dim array of parameters and their values * @return void */ public function setParameters($aliasOrClass, array $parameters) @@ -357,8 +357,8 @@ public function setParameters($aliasOrClass, array $parameters) * setInjections() is a convenience method for: * setConfiguration($type, array('injections' => array(...)), true); * - * @param string $aliasOrClass Alias or Class - * @param array $injections Multi-dim array of methods and their parameters + * @param string $aliasOrClass Alias or Class + * @param array $injections Multi-dim array of methods and their parameters * @return void */ public function setInjections($aliasOrClass, array $injections) @@ -440,8 +440,8 @@ public function unsetTypePreferences($interfaceOrAbstract) * Adds a type preference. A type preference is a redirection to a preferred alias or type when an abstract type * $interfaceOrAbstract is requested * - * @param string $interfaceOrAbstract - * @param string $preferredImplementation + * @param string $interfaceOrAbstract + * @param string $preferredImplementation * @return self */ public function addTypePreference($interfaceOrAbstract, $preferredImplementation) @@ -458,8 +458,8 @@ public function addTypePreference($interfaceOrAbstract, $preferredImplementation /** * Removes a previously set type preference * - * @param string $interfaceOrAbstract - * @param string $preferredType + * @param string $interfaceOrAbstract + * @param string $preferredType * @return bool|self */ public function removeTypePreference($interfaceOrAbstract, $preferredType) @@ -474,8 +474,8 @@ public function removeTypePreference($interfaceOrAbstract, $preferredType) } /** - * @param string $classOrAlias - * @param string[] $paramKeys + * @param string $classOrAlias + * @param string[] $paramKeys * @return string */ protected function createHashForKeys($classOrAlias, $paramKeys) @@ -484,8 +484,8 @@ protected function createHashForKeys($classOrAlias, $paramKeys) } /** - * @param string $classOrAlias - * @param array $paramValues + * @param string $classOrAlias + * @param array $paramValues * @return string */ protected function createHashForValues($classOrAlias, $paramValues) diff --git a/src/ServiceLocator/Generator.php b/src/ServiceLocator/Generator.php index cad4ef60..5e088987 100644 --- a/src/ServiceLocator/Generator.php +++ b/src/ServiceLocator/Generator.php @@ -77,7 +77,7 @@ public function setNamespace($namespace) * Creates a Zend\CodeGenerator\Php\PhpFile object that has * created the specified class and service locator methods. * - * @param null|string $filename + * @param null|string $filename * @throws \Zend\Di\Exception\RuntimeException * @return FileGenerator */ diff --git a/src/ServiceLocatorInterface.php b/src/ServiceLocatorInterface.php index 53594538..283c7ba9 100644 --- a/src/ServiceLocatorInterface.php +++ b/src/ServiceLocatorInterface.php @@ -20,8 +20,8 @@ interface ServiceLocatorInterface extends LocatorInterface * Register a service with the locator * * @abstract - * @param string $name - * @param mixed $service + * @param string $name + * @param mixed $service * @return ServiceLocatorInterface */ public function set($name, $service);