Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

153 lines (92 sloc) 5.122 kb

API Documentation

Select::setNamespace(string $namespace)

Set the default namespace for classes, a prefix string used to build class names.

Notes

Both "old style" and proper namespaces are supported, e.g.

    Select::setNamespace('MyApp_')
    Select::setNamespace('MyApp\\')

If a class does not exist in the namespace, the search occurs in the global space, e.g.

    Select::setNamespace('MyApp_')
    Select::getClass('Foo')             // returns 'MyApp_Foo'
    Select::getClass('XSLTProcessor')   // returns 'XSLTProcessor'

Select::resetNamespace()

Reset the default namespace as defined in the class.

Notes

The default namespace is empty but can be overridden extending the base class, e.g.

    namespace MyApp;
    class DI extends \Select {
        const DEFAULT_NAMESPACE = 'MyApp\\';
        static protected $_namespace = self::DEFAULT_NAMESPACE;
    }

Select::replaceClass(string $oldClass, string $newClass)

Replace a class so that new objects and static calls will use the new class.

Notes

The old class name must be passed without namespace, e.g.

    Select::replaceClass('Mailer', 'FakeMailer')                // correct

    Select::replaceClass('Mailer', 'Mocks\Mailer')              // correct

    Select::setNamespace('')
    Select::replaceClass('MyApp\Mailer', 'Mocks\Mailer')        // correct

    Select::setNamespace('MyApp\\')
    Select::replaceClass('MyApp\Mailer', 'Mocks\Mailer')        // wrong

Select::getClass(string $class)

Return a class name.

  • If there is a class in the defined namespace this is returned,
  • otherwise if there is a class in the global space, this is returned,
  • otherwise returns the class in the defined namespace.

Examples

    Select::setNamespace('MyApp_')
    Select::getClass('Foo')
        * 'MyApp_Foo' does not exist
        * 'Foo' does not exist
        * return 'MyApp_Foo'

    Select::setNamespace('MyApp_')
    Select::getClass('XSLTProcessor')
        * 'MyApp_XSLTProcessor' does not exist
        * 'XSLTProcessor' exists
        * return 'XSLTProcessor'

    Select::setNamespace('MyApp_')
    // ... define a class MyApp_XSLTProcessor in the application ...
    Select::getClass('XSLTProcessor')
        * 'MyApp_XSLTProcessor' exists
        * return 'MyApp_XSLTProcessor'

Select::resetClass(string $class)

Remove replacements for the specified class.

Notes

The class name must be passed without namespace

Examples

    Select::setNamespace('MyApp_')
    Select::getClass('XSLTProcessor')                           // returns 'XSLTProcessor'
    Select::replaceClass('XSLTProcessor', 'MyApp_XSLTProcessor') 
    Select::getClass('XSLTProcessor')                           // returns 'MyApp_XSLTProcessor'
    Select::resetClass('XSLTProcessor')
    Select::getClass('XSLTProcessor')                           // returns 'XSLTProcessor'

Select::resetClasses()

Remove all defined replacements, restore default behaviour.

Select::create(string $class)

Return a new object of the specified class.

Notes

The class name must be passed without namespace

Select::get<Dependency name>()

Get a defined dependency. If the dependency is not defined throws and exception. If the dependency is explicitly defined as a multiton it always returns a new object.

Select::set<Dependency name>(object $object)

Define and store the passed object as a new dependency. Overwrite any existing dependency with the same name. The dependency is considered to be a singleton.

Select::def<Dependency name>(string $class, array $contructorParameters, boolean $isSingleton)

Define a new dependency, without instantiating the object. Overwrite any existing dependency with the same name. Constructor parameters can be passed after the class name. By default the dependency is defined to be a singleton, this can be overridden with the third parameter.

Examples

    Select::setMailer('Mailer')
    Select::setMailer('Mailer', array('smtp.gmail.com', 465))
    Select::setMailer('Mailer', array('smtp.gmail.com', 465), false)

Select::ini<Dependency name>()

Define a new dependency, instantiating and returning the object. Overwrite any existing dependency with the same name. Constructor parameters can be passed after the class name. By default the dependency is defined to be a singleton, this can be overridden with the third parameter.

Examples

    Select::iniMailer('Mailer')->setSender('root@localhost')
    Select::iniMailer('Mailer', array('smtp.gmail.com', 465))->setSender('root@localhost')
    Select::iniMailer('Mailer', array('smtp.gmail.com', 465), false)->setSender('root@localhost')
Jump to Line
Something went wrong with that request. Please try again.