Skip to content

Commit a748615

Browse files
committed
ServiceDefinition::setImplementType() and getImplementType() renamed to setImplementMode() & getImplementMode()
1 parent d4072a0 commit a748615

File tree

2 files changed

+29
-9
lines changed

2 files changed

+29
-9
lines changed

src/DI/ContainerBuilder.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ private function resolveImplement(ServiceDefinition $def, $name)
406406
if (count($rc->getMethods()) !== 1 || !$method || $method->isStatic()) {
407407
throw new ServiceCreationException("Interface $interface used in service '$name' must have just one non-static method create() or get().");
408408
}
409-
$def->setImplementType($methodName = $rc->hasMethod('create') ? 'create' : 'get');
409+
$def->setImplementMode($methodName = $rc->hasMethod('create') ? $def::IMPLEMENT_MODE_CREATE : $def::IMPLEMENT_MODE_GET);
410410

411411
if (!$def->getClass() && !$def->getEntity()) {
412412
$returnType = PhpReflection::getReturnType($method);
@@ -552,7 +552,7 @@ public function complete()
552552
$this->currentService = NULL;
553553
$entity = $def->getFactory()->getEntity();
554554
$serviceRef = $this->getServiceName($entity);
555-
$factory = $serviceRef && !$def->getFactory()->arguments && !$def->getSetup() && $def->getImplementType() !== 'create'
555+
$factory = $serviceRef && !$def->getFactory()->arguments && !$def->getSetup() && $def->getImplementMode() !== $def::IMPLEMENT_MODE_CREATE
556556
? new Statement(['@' . self::THIS_CONTAINER, 'getService'], [$serviceRef])
557557
: $def->getFactory();
558558

@@ -799,7 +799,7 @@ private function generateService($name)
799799

800800
$entity = $def->getFactory()->getEntity();
801801
$serviceRef = $this->getServiceName($entity);
802-
$factory = $serviceRef && !$def->getFactory()->arguments && !$def->getSetup() && $def->getImplementType() !== 'create'
802+
$factory = $serviceRef && !$def->getFactory()->arguments && !$def->getSetup() && $def->getImplementMode() !== $def::IMPLEMENT_MODE_CREATE
803803
? new Statement(['@' . self::THIS_CONTAINER, 'getService'], [$serviceRef])
804804
: $def->getFactory();
805805

@@ -839,7 +839,7 @@ private function generateService($name)
839839
->addParameter('container')
840840
->setTypeHint($this->className);
841841

842-
$factoryClass->addMethod($def->getImplementType())
842+
$factoryClass->addMethod($def->getImplementMode())
843843
->setParameters($this->convertParameters($def->parameters))
844844
->setBody(str_replace('$this', '$this->container', $code))
845845
->setReturnType(PHP_VERSION_ID >= 70000 ? $def->getClass() : NULL);

src/DI/ServiceDefinition.php

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
*/
2020
class ServiceDefinition
2121
{
22+
const
23+
IMPLEMENT_MODE_CREATE = 'create',
24+
IMPLEMENT_MODE_GET = 'get';
25+
2226
use Nette\SmartObject;
2327

2428
/** @var string|NULL class or interface name */
@@ -46,7 +50,7 @@ class ServiceDefinition
4650
private $implement;
4751

4852
/** @var string|NULL create | get */
49-
private $implementType;
53+
private $implementMode;
5054

5155
/** @var callable */
5256
private $notifier = 'pi'; // = noop
@@ -284,22 +288,38 @@ public function getImplement()
284288
* @param string
285289
* @return self
286290
*/
287-
public function setImplementType($type)
291+
public function setImplementMode($mode)
288292
{
289-
if (!in_array($type, ['get', 'create'], TRUE)) {
293+
if (!in_array($mode, [self::IMPLEMENT_MODE_CREATE, self::IMPLEMENT_MODE_GET], TRUE)) {
290294
throw new Nette\InvalidArgumentException('Argument must be get|create.');
291295
}
292-
$this->implementType = $type;
296+
$this->implementMode = $mode;
293297
return $this;
294298
}
295299

296300

297301
/**
298302
* @return string|NULL
299303
*/
304+
public function getImplementMode()
305+
{
306+
return $this->implementMode;
307+
}
308+
309+
310+
/** @deprecated */
311+
public function setImplementType($type)
312+
{
313+
trigger_error(__METHOD__ . '() is deprecated, use setImplementMode()', E_USER_DEPRECATED);
314+
return $this->setImplementMode($type);
315+
}
316+
317+
318+
/** @deprecated */
300319
public function getImplementType()
301320
{
302-
return $this->implementType;
321+
trigger_error(__METHOD__ . '() is deprecated, use getImplementMode()', E_USER_DEPRECATED);
322+
return $this->implementMode;
303323
}
304324

305325

0 commit comments

Comments
 (0)