Files
espocrm/application/Espo/Core/ServiceFactory.php
Yuri Kuznetsov 596e59d667 stream
2014-01-17 17:49:58 +02:00

30 lines
597 B
PHP

<?php
namespace Espo\Core;
use \Espo\Core\Exceptions\Error;
class ServiceFactory
{
private $container;
public function __construct(Container $container)
{
$this->container = $container;
}
public function createByClassName($className)
{
if (class_exists($className)) {
$service = new $className();
$dependencies = $service->getDependencyList();
foreach ($dependencies as $name) {
$service->inject($name, $this->container->get($name));
}
return $service;
}
throw new Error("Class '$className' does not exist");
}
}