<?php /** * ownCloud * * @author Thomas Müller * @copyright 2013 Thomas Müller deepdiver@owncloud.com * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Affero General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ /** * Public interface of ownCloud for apps to use. * Container interface * */ // use OCP namespace for all classes that are considered public. // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP; /** * Class IContainer * * IContainer is the basic interface to be used for any internal dependency injection mechanism * * @package OCP */ interface IContainer { /** * Look up a service for a given name in the container. * * @param string $name * @return mixed */ function query($name); /** * A value is stored in the container with it's corresponding name * * @param string $name * @param mixed $value * @return void */ function registerParameter($name, $value); /** * A service is registered in the container where a closure is passed in which will actually * create the service on demand. * In case the parameter $shared is set to true (the default usage) the once created service will remain in * memory and be reused on subsequent calls. * In case the parameter is false the service will be recreated on every call. * * @param string $name * @param \Closure $closure * @param bool $shared * @return void */ function registerService($name, \Closure $closure, $shared = true); }