예제 #1
0
    /**
     * _processSpecialties() - Break out the specialty names for this provider
     *
     */
    protected function _processSpecialties()
    {
        $specialties = array();

        if ($this->_providerReflection->hasMethod('getSpecialties')) {
            $specialties = $this->_provider->getSpecialties();
            if (!is_array($specialties)) {
                require_once 'Zend/Tool/Framework/Provider/Exception.php';
                throw new Zend_Tool_Framework_Provider_Exception(
                    'Provider ' . get_class($this->_provider) . ' must return an array for method getSpecialties().'
                    );
            }
        } else {
            $defaultProperties = $this->_providerReflection->getDefaultProperties();
            $specialties = (isset($defaultProperties['_specialties'])) ? $defaultProperties['_specialties'] : array();
            if (!is_array($specialties)) {
                require_once 'Zend/Tool/Framework/Provider/Exception.php';
                throw new Zend_Tool_Framework_Provider_Exception(
                    'Provider ' . get_class($this->_provider) . '\'s property $_specialties must be an array.'
                    );
            }
        }

        $this->_specialties = array_merge(array('_Global'), $specialties);

    }