您好,有人可以,给我一个服务容器的简单示例,其中包含一个服务对象(在PHP中)。更确切地说。如何创建服务对象以及以后如何调用它。 我到处寻找,但找不到任何能清楚解释我的东西。这取自symfony文档。我找到的最好的例子,但仍然不理解。
use AppBundle\Mailer;
use Symfony\Component\DependencyInjection\Definition;
$container->setDefinition('app.mailer', new Definition(
Mailer::class,
array('sendmail')
));
答案 0 :(得分:1)
以下是PDO"服务的示例"。
// Run: composer require symfony/dependency-injection
require_once __DIR__ . '/vendor/autoload.php';
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
$container = new ContainerBuilder();
$host = '127.0.0.1';
$db = 'test';
$user = 'root';
$pass = '';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$container->setDefinition('app.pdo', new Definition(
PDO::class, array($dsn, $user, $pass, $opt)
));
var_dump($container->get('app.pdo')); // object(PDO)[8]