Permalink
Browse files

Forward #3813

  • Loading branch information...
2 parents dfbc5da + d66fd64 commit a5f01b0b8a3ed9c7f8ad55903ac6232c70de29ab @ralphschindler ralphschindler committed Feb 19, 2013
View
6 library/Zend/ServiceManager/ServiceManager.php
@@ -445,7 +445,7 @@ public function get($name, $usePeeringServiceManagers = true)
}
// Still no instance? raise an exception
- if (!$instance && !is_array($instance)) {
+ if ($instance === null && !is_array($instance)) {
if ($isAlias) {
throw new Exception\ServiceNotFoundException(sprintf(
'An alias "%s" was requested but no service could be found.',
@@ -494,11 +494,11 @@ public function create($name)
$instance = $this->createFromFactory($cName, $rName);
}
- if (!$instance && isset($this->invokableClasses[$cName])) {
+ if ($instance === false && isset($this->invokableClasses[$cName])) {
$instance = $this->createFromInvokable($cName, $rName);
}
- if (!$instance && $this->canCreateFromAbstractFactory($cName, $rName)) {
+ if ($instance === false && $this->canCreateFromAbstractFactory($cName, $rName)) {
$instance = $this->createFromAbstractFactory($cName, $rName);
}
View
12 tests/ZendTest/ServiceManager/ServiceManagerTest.php
@@ -560,6 +560,18 @@ public function testShouldRaiseExceptionIfInitializerClassIsNotAnInitializerInte
$result = $this->serviceManager->addInitializer(get_class($this));
}
+ public function testGetGlobIteratorServiceWorksProperly()
+ {
+ $config = new Config(array(
+ 'invokables' => array(
+ 'foo' => 'ZendTest\ServiceManager\TestAsset\GlobIteratorService',
+ ),
+ ));
+ $serviceManager = new ServiceManager($config);
+ $foo = $serviceManager->get('foo');
+ $this->assertInstanceOf('ZendTest\ServiceManager\TestAsset\GlobIteratorService', $foo);
+ }
+
public function duplicateService()
{
$self = $this;
View
19 tests/ZendTest/ServiceManager/TestAsset/GlobIteratorService.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Zend Framework (http://framework.zend.com/)
+ *
+ * @link http://github.com/zendframework/zf2 for the canonical source repository
+ * @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ * @package Zend_ServiceManager
+ */
+
+namespace ZendTest\ServiceManager\TestAsset;
+
+class GlobIteratorService extends \GlobIterator
+{
+ public function __construct()
+ {
+ }
+}
+

0 comments on commit a5f01b0

Please sign in to comment.