protected function _getSubManager( $domain, $manager, $name )
	{
		$domain = strtolower( $domain );
		$manager = strtolower( $manager );
		$config = $this->_getContext()->getConfig();


		if( empty( $domain ) || ctype_alnum( $domain ) === false ) {
			throw new MAdmin_Exception( sprintf('Invalid characters in domain name "%1$s"', $domain ) );
		}

		if( $name === null ) {
			$name = $config->get( 'classes/' . $domain . '/manager/' . $manager . '/name', 'Default' );
		}

		if( empty( $name ) || ctype_alnum( $name ) === false ) {
			throw new MAdmin_Exception( sprintf( 'Invalid characters in manager name "%1$s"', $name ) );
		}

		$domainname = ucfirst( $domain );
		$subnames = $this->_createSubNames( $manager );

		$classname = 'MAdmin_'. $domainname . '_Manager_' . $subnames . '_' . $name;
		$interface = 'MAdmin_'. $domainname . '_Manager_' . $subnames . '_Interface';

		if( class_exists( $classname ) === false ) {
			throw new MAdmin_Exception( sprintf('Class "%1$s" not available', $classname ) );
		}

		$subManager = new $classname( $this->_getContext() );

		if( ( $subManager instanceof $interface ) === false ) {
			throw new MAdmin_Exception( sprintf( 'Class "%1$s" does not implement interface "%2$s"', $classname, $interface ) );
		}

		return $subManager;
	}
protected function _getSubManager( $domain, $manager, $name )
	{
		$domain = strtolower( $domain );
		$manager = strtolower( $manager );
		$config = $this->_getContext()->getConfig();


		if( empty( $domain ) || ctype_alnum( $domain ) === false ) {
			throw new MAdmin_Exception( sprintf('Invalid characters in domain name "%1$s"', $domain ) );
		}

		if( $name === null ) {
			$name = $config->get( 'classes/' . $domain . '/manager/' . $manager . '/name', 'Default' );
		}

		if( empty( $name ) || ctype_alnum( $name ) === false ) {
			throw new MAdmin_Exception( sprintf( 'Invalid characters in manager name "%1$s"', $name ) );
		}

		$domainname = ucfirst( $domain );
		$subnames = $this->_createSubNames( $manager );

		$classname = 'MAdmin_'. $domainname . '_Manager_' . $subnames . '_' . $name;
		$interface = 'MAdmin_'. $domainname . '_Manager_' . $subnames . '_Interface';

		if( class_exists( $classname ) === false ) {
			throw new MAdmin_Exception( sprintf('Class "%1$s" not available', $classname ) );
		}

		$subManager = new $classname( $this->_getContext() );

		if( ( $subManager instanceof $interface ) === false ) {
			throw new MAdmin_Exception( sprintf( 'Class "%1$s" does not implement interface "%2$s"', $classname, $interface ) );
		}

		return $subManager;
	}
protected function _getSubManager ( $ domain , $ manager , $ name ) { $ domain = strtolower ( $ domain ) ; $ manager = strtolower ( $ manager ) ; $ config = $ this -> _getContext ( ) -> getConfig ( ) ; if ( empty ( $ domain ) || ctype_alnum ( $ domain ) === false ) { throw new MAdmin_Exception ( sprintf ( 'Invalid characters in domain name "%1$s"' , $ domain ) ) ; } if ( $ name === null ) { $ name = $ config -> get ( 'classes/' . $ domain . '/manager/' . $ manager . '/name' , 'Default' ) ; } if ( empty ( $ name ) || ctype_alnum ( $ name ) === false ) { throw new MAdmin_Exception ( sprintf ( 'Invalid characters in manager name "%1$s"' , $ name ) ) ; } $ domainname = ucfirst ( $ domain ) ; $ subnames = $ this -> _createSubNames ( $ manager ) ; $ classname = 'MAdmin_' . $ domainname . '_Manager_' . $ subnames . '_' . $ name ; $ interface = 'MAdmin_' . $ domainname . '_Manager_' . $ subnames . '_Interface' ; if ( class_exists ( $ classname ) === false ) { throw new MAdmin_Exception ( sprintf ( 'Class "%1$s" not available' , $ classname ) ) ; } $ subManager = new $ classname ( $ this -> _getContext ( ) ) ; if ( ( $ subManager instanceof $ interface ) === false ) { throw new MAdmin_Exception ( sprintf ( 'Class "%1$s" does not implement interface "%2$s"' , $ classname , $ interface ) ) ; } return $ subManager ; }
Returns a new manager the given extension name

@param string $domain Name of the domain (product, text, media, etc.)
@param string $manager Name of the sub manager type in lower case (can contain a path like base/product)
@param string|null $name Name of the implementation, will be from configuration (or Default) if null
@return MShop_Common_Manager_Interface Manager for different extensions
Returns a new manager the given extension name