<?php
/**
* Copyright 2011 Devis Lucato <http://lucato.it>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Service locator interface
*/
interface iSelect
{
/**
* Set a new class name space
*
* @param string $namespace Namespace
*/
static public function setNamespace($namespace);
/**
* Restore the initial class name space
*/
static public function resetNamespace();
/**
* Replace an original class with a new one
*
* @param string $classNoNS Original name, withouth namespace,
* ie "Mail_Transport_Uploader"
* instead of "Zend_Mail_Transport_Uploader"
* @param string $replacement New class name, complete of namespace,
* ie "SomeApp_SomeClass"
*/
static public function replaceClass($classNoNS, $replacement);
/**
* Get class name
*
* @param string $classNoNS Original name, without namespace
*
* @return string class
*/
static public function getClass($classNoNS);
/**
* Restore original name for a class
*
* @param string $classNoNS Original name, without namespace
*/
static public function resetClass($classNoNS);
/**
* Remove all class replacements
*/
static public function resetClasses();
/**
* Remove all stored dependencies
*/
static public function resetDependencies();
/**
* Restore the class to initial status
*/
static public function reset();
/**
* Return a new object instance of the class
*
* @param string $classNoNS Name of the class, without namespace
*
* @return <$classNoNS> New instance
*/
static public function create($classNoNS);
/**
* Magic getter/setter, allows getMailer/setMailer/setLogger/getLogger etc.
*
* Should respond to:
* def<Dependency name>
* ini<Dependency name>
* set<Dependency name>
* get<Dependency name>
*
* @param string $name
* @param array $arguments
*
* @return mixed
*/
static public function __callStatic($methodname, $arguments);
}
|