‪TYPO3CMS  ‪main
TestServiceProvider.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use Psr\Container\ContainerInterface;
22 
23 function ‪myFunctionFactory(): object
24 {
25  return new class () {
26  public int $number;
27  public function __construct()
28  {
29  $this->number = 42;
30  }
31  };
32 }
33 
35 {
36  public function ‪getFactories(): array
37  {
38  return [
39  'serviceA' => static function (ContainerInterface $container): \stdClass {
40  $instance = new \stdClass();
41  $instance->serviceB = $container->get('serviceB');
42 
43  return $instance;
44  },
45  'serviceB' => [ TestServiceProvider::class, 'createServiceB' ],
46  'serviceC' => static function (ContainerInterface $container): \stdClass {
47  return new \stdClass();
48  },
49  'serviceD' => new class () {
50  public function __invoke(ContainerInterface $container): \stdClass
51  {
52  return new \stdClass();
53  }
54  },
55  'serviceE' => ‪TestServiceProvider::createServiceE(...),
56  'function' => 'TYPO3\\CMS\\Core\\Tests\\Unit\\DependencyInjection\\Fixtures\\myFunctionFactory',
57  ];
58  }
59 
60  public static function ‪createServiceB(ContainerInterface $container): \stdClass
61  {
62  $instance = new \stdClass();
63  $instance->parameter = 'localhost';
64  return $instance;
65  }
66 
67  public static function ‪createServiceE(ContainerInterface $container): \stdClass
68  {
69  $instance = new \stdClass();
70  $instance->parameter = 'baz';
71  return $instance;
72  }
73 
74  public function ‪getExtensions(): array
75  {
76  return [];
77  }
78 }
‪TYPO3\CMS\Core\Tests\Unit\DependencyInjection\Fixtures\TestServiceProvider\getFactories
‪getFactories()
Definition: TestServiceProvider.php:36
‪TYPO3\CMS\Core\Tests\Unit\DependencyInjection\Fixtures
‪TYPO3\CMS\Core\Tests\Unit\DependencyInjection\Fixtures\TestServiceProvider\getExtensions
‪getExtensions()
Definition: TestServiceProvider.php:74
‪TYPO3\CMS\Core\Tests\Unit\DependencyInjection\Fixtures\myFunctionFactory
‪myFunctionFactory()
Definition: TestServiceProvider.php:23
‪TYPO3\CMS\Core\Tests\Unit\DependencyInjection\Fixtures\TestServiceProvider
Definition: TestServiceProvider.php:35
‪TYPO3\CMS\Core\Tests\Unit\DependencyInjection\Fixtures\TestServiceProvider\createServiceB
‪static createServiceB(ContainerInterface $container)
Definition: TestServiceProvider.php:60
‪TYPO3\CMS\Core\DependencyInjection\ServiceProviderInterface
Definition: ServiceProviderInterface.php:26
‪TYPO3\CMS\Core\Tests\Unit\DependencyInjection\Fixtures\TestServiceProvider\createServiceE
‪static createServiceE(ContainerInterface $container)
Definition: TestServiceProvider.php:67