*/ class ProcedureLoaderFactory implements ProcedureLoaderFactoryInterface { /** * Procedure factory. * * @var \JonnyW\PhantomJs\Procedure\ProcedureFactoryInterface * @access protected */ protected $procedureFactory; /** * Internal constructor. * * @access public * @param \JonnyW\PhantomJs\Procedure\ProcedureFactoryInterface $procedureFactory */ public function __construct(ProcedureFactoryInterface $procedureFactory) { $this->procedureFactory = $procedureFactory; } /** * Create procedure loader instance. * * @access public * @param string $directory * @return \JonnyW\PhantomJs\Procedure\ProcedureLoader */ public function createProcedureLoader($directory) { $procedureFactory = $this->procedureFactory; $fileLocator = $this->createFileLocator($directory); $procedureLoader = new ProcedureLoader( $procedureFactory, $fileLocator ); return $procedureLoader; } /** * Create file locator instance. * * @access protected * @param string $directory * @return \Symfony\Component\Config\FileLocator * @throws \InvalidArgumentException */ protected function createFileLocator($directory) { if (!is_dir($directory) || !is_readable($directory)) { throw new \InvalidArgumentException(sprintf('Could not create procedure loader as directory does not exist or is not readable: "%s"', $directory)); } return new FileLocator($directory); } }