<?php /** * @see https://github.com/laminas/laminas-servicemanager for the canonical source repository * @copyright https://github.com/laminas/laminas-servicemanager/blob/master/COPYRIGHT.md * @license https://github.com/laminas/laminas-servicemanager/blob/master/LICENSE.md New BSD License */ namespace Laminas\ServiceManager\Factory; use Interop\Container\ContainerInterface; use Interop\Container\Exception\ContainerException; use Laminas\ServiceManager\Exception\ServiceNotCreatedException; use Laminas\ServiceManager\Exception\ServiceNotFoundException; /** * Interface for a factory * * A factory is an callable object that is able to create an object. It is * given the instance of the service locator, the requested name of the class * you want to create, and any additional options that could be used to * configure the instance state. */ interface FactoryInterface { /** * Create an object * * @param ContainerInterface $container * @param string $requestedName * @param null|array $options * @return object * @throws ServiceNotFoundException if unable to resolve the service. * @throws ServiceNotCreatedException if an exception is raised when * creating a service. * @throws ContainerException if any other error occurs */ public function __invoke(ContainerInterface $container, $requestedName, array $options = null); }