/** * @param Container $container * @return Build */ public function create(Container $container, array $arguments = NULL) { $class = $container->getClass(); if (!class_exists($class, TRUE)) { $this->log(sprintf("Build class '%s' was not found." . PHP_EOL . "Are you in correct working directory?" . PHP_EOL . "Did you forget add bootstrap.php with class loading into working directory?" . PHP_EOL . "Did you forget to load class %s?", $class, $class), 'red'); throw new TerminateException(NULL, 255); } $build = new $class($container, $arguments); if (!$build instanceof IBuild) { throw new Exception("Instance of build does not implements interface IBuild."); } $this->autowire($build, $container); $build->setup(); return $build; }