Files
espocrm/application/Espo/Core/ServiceFactory.php
2013-11-27 12:44:36 +02:00

33 lines
638 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()
{
if (class_exists($className)) {
$service = new $className();
$dependencies = $service::dependencies;
foreach ($dependencies as $name) {
$setMethod = 'set' . ucfirst($name);
$service->$setMethod($this->container->get($name));
}
return $service;
}
throw new Error("Class '$className' does not exist");
}
}