Files
espocrm/application/Espo/Core/ServiceFactory.php
Yuri Kuznetsov 5b308e820e dev
2013-12-30 16:38:02 +02:00

33 lines
609 B
PHP

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