. */ /** * Container. * * @since 4.6.0 * @package Container */ namespace Textpattern\Container; interface ContainerInterface { /** * Gets an instance for the given alias. * * @param string $alias The class alias * @param array $options Options * @return object Instance of the resolved class */ public function getInstance($alias, array $options); /** * Removes a registered class. * * @param string $alias The alias * @return \Textpattern\Container\ContainerInterface */ public function remove($alias); /** * Registers a class. * * Throws an exception if the alias is taken. To replace an alias, first * call remove. * * @param string $alias The alias * @param string $class The class * @return \Textpattern\Container\ContainerInterface * @throws InvalidArgumentException */ public function register($alias, $class); }