public static function createResources(Zend_Tool_Project_Profile $profile, $moduleName, Zend_Tool_Project_Profile_Resource $targetModuleResource = null) { // find the appliction directory, it will serve as our module skeleton if ($targetModuleResource == null) { $targetModuleResource = $profile->search('applicationDirectory'); $targetModuleEnabledResources = array('ControllersDirectory', 'ModelsDirectory', 'ViewsDirectory', 'ViewScriptsDirectory', 'ViewHelpersDirectory', 'ViewFiltersDirectory'); } // find the actual modules directory we will use to house our module $modulesDirectory = $profile->search('modulesDirectory'); // if there is a module directory already, except if ($modulesDirectory->search(array('moduleDirectory' => array('moduleName' => $moduleName)))) { throw new Zend_Tool_Project_Provider_Exception('A module named "' . $moduleName . '" already exists.'); } // create the module directory $moduleDirectory = $modulesDirectory->createResource('moduleDirectory', array('moduleName' => $moduleName)); // create a context filter so that we can pull out only what we need from the module skeleton $moduleContextFilterIterator = new Zend_Tool_Project_Profile_Iterator_ContextFilter($targetModuleResource, array('denyNames' => array('ModulesDirectory', 'ViewControllerScriptsDirectory'), 'denyType' => 'Zend_Tool_Project_Context_Filesystem_File')); // the iterator for the module skeleton $targetIterator = new RecursiveIteratorIterator($moduleContextFilterIterator, RecursiveIteratorIterator::SELF_FIRST); // initialize some loop state information $currentDepth = 0; $parentResources = array(); $currentResource = $moduleDirectory; // loop through the target module skeleton foreach ($targetIterator as $targetSubResource) { $depthDifference = $targetIterator->getDepth() - $currentDepth; $currentDepth = $targetIterator->getDepth(); if ($depthDifference === 1) { // if we went down into a child, make note array_push($parentResources, $currentResource); // this will have always been set previously by another loop $currentResource = $currentChildResource; } elseif ($depthDifference < 0) { // if we went up to a parent, make note $i = $depthDifference; do { // if we went out more than 1 parent, get to the correct parent $currentResource = array_pop($parentResources); } while ($i-- > 0); } // get parameters for the newly created module resource $params = $targetSubResource->getAttributes(); $currentChildResource = $currentResource->createResource($targetSubResource->getName(), $params); // based of the provided list (Currently up top), enable specific resources if (isset($targetModuleEnabledResources)) { $currentChildResource->setEnabled(in_array($targetSubResource->getName(), $targetModuleEnabledResources)); } else { $currentChildResource->setEnabled($targetSubResource->isEnabled()); } } return $moduleDirectory; }
/** * createResource() * * @param Zend_Tool_Project_Profile $profile * @param string $actionName * @param string $controllerName * @param string $moduleName * @return Zend_Tool_Project_Profile_Resource */ public static function createResource(Zend_Tool_Project_Profile $profile, $actionName, $controllerName, $moduleName = null) { if (!is_string($actionName)) { //require_once 'Zend/Tool/Project/Provider/Exception.php'; throw new Zend_Tool_Project_Provider_Exception('Zend_Tool_Project_Provider_View::createResource() expects \\"actionName\\" is the name of a controller resource to create.'); } if (!is_string($controllerName)) { //require_once 'Zend/Tool/Project/Provider/Exception.php'; throw new Zend_Tool_Project_Provider_Exception('Zend_Tool_Project_Provider_View::createResource() expects \\"controllerName\\" is the name of a controller resource to create.'); } $profileSearchParams = array(); if ($moduleName) { $profileSearchParams = array('modulesDirectory', 'moduleDirectory' => array('moduleName' => $moduleName)); $noModuleSearch = null; } else { $noModuleSearch = array('modulesDirectory'); } $profileSearchParams[] = 'viewsDirectory'; $profileSearchParams[] = 'viewScriptsDirectory'; if (($viewScriptsDirectory = $profile->search($profileSearchParams, $noModuleSearch)) === false) { //require_once 'Zend/Tool/Project/Provider/Exception.php'; throw new Zend_Tool_Project_Provider_Exception('This project does not have a viewScriptsDirectory resource.'); } $profileSearchParams['viewControllerScriptsDirectory'] = array('forControllerName' => $controllerName); // @todo check if below is failing b/c of above search params if (($viewControllerScriptsDirectory = $viewScriptsDirectory->search($profileSearchParams)) === false) { $viewControllerScriptsDirectory = $viewScriptsDirectory->createResource('viewControllerScriptsDirectory', array('forControllerName' => $controllerName)); } $newViewScriptFile = $viewControllerScriptsDirectory->createResource('ViewScriptFile', array('forActionName' => $actionName)); return $newViewScriptFile; }
/** * * @param Zend_Tool_Project_Profile $profile * @param type $adapter * @throws Zend_Tool_Project_Exception */ private function _connect(Zend_Tool_Project_Profile $profile, $adapter, $env = 'development') { $applicationConfigResource = $profile->search('ApplicationConfigFile'); if ($env == null || $env == '') { $env = 'development'; } if (!$applicationConfigResource) { throw new Zend_Tool_Project_Exception('A project with an application config file is required to use this provider.'); } //$conn = 'testing'; //$conn = 'development'; $zf = $applicationConfigResource->getAsZendConfig($env); $this->_print('Conectado em ' . $env); #$zf = $applicationConfigResource->getAsZendConfig('testing'); $_configDb = $zf->resources->multidb->{$adapter}; if (!$_configDb) { throw new Zend_Tool_Project_Exception('Adapter not found in config application "resources.multidb.' . $adapter . '" .'); } $configDb = array(); $configDb['host'] = $_configDb->host; $configDb['username'] = $_configDb->username; $configDb['password'] = $_configDb->password; $configDb['dbname'] = $_configDb->dbname; $configDb['adapterNamespace'] = $_configDb->adapterNamespace; $configDb['options']['caseFolding'] = 1; $this->_dbAdapter = Zend_Db::factory($_configDb->adapter, $configDb); }
/** * _storeProfile() * * This method will store the profile into its proper location * */ protected function _storeProfile() { $projectProfileFile = $this->_loadedProfile->search('ProjectProfileFile'); $name = $projectProfileFile->getContext()->getPath(); $this->_registry->getResponse()->appendContent('Updating project profile \'' . $name . '\''); $projectProfileFile->getContext()->save(); }
/** * Method returns path to modules directory * * @param Zend_Tool_Project_Profile $profile * @return string */ protected static function _getModulesDirectoryPath(Zend_Tool_Project_Profile $profile) { $modulesDirectory = $profile->search(array('modulesDirectory')); if (!$modulesDirectory instanceof Zend_Tool_Project_Profile_Resource) { throw new Zend_Tool_Project_Provider_Exception("Modules resource undefined."); } return $modulesDirectory->getPath(); }
/** * _getModelsDirectoryResource() * * @param Zend_Tool_Project_Profile $profile * @param string $moduleName * @return Zend_Tool_Project_Profile_Resource */ protected static function _getModelsDirectoryResource(Zend_Tool_Project_Profile $profile, $moduleName = null) { $profileSearchParams = array(); if ($moduleName != null && is_string($moduleName)) { $profileSearchParams = array('modulesDirectory', 'moduleDirectory' => array('moduleName' => $moduleName)); } $profileSearchParams[] = 'modelsDirectory'; return $profile->search($profileSearchParams); }
/** * _getControllerFileResource() * * @param Zend_Tool_Project_Profile $profile * @param string $controllerName * @param string $moduleName * @return Zend_Tool_Project_Profile_Resource */ protected static function _getControllerFileResource(Zend_Tool_Project_Profile $profile, $controllerName, $moduleName = null) { $profileSearchParams = array(); if ($moduleName != null && is_string($moduleName)) { $profileSearchParams = array('modulesDirectory', 'moduleDirectory' => array('moduleName' => $moduleName)); } $profileSearchParams[] = 'controllersDirectory'; $profileSearchParams['zfsControllerFile'] = array('controllerName' => $controllerName); return $profile->search($profileSearchParams); }
public static function hasResource(Zend_Tool_Project_Profile $profile, $dbTableName, $moduleName = null) { $profileSearchParams = array(); if ($moduleName != null && is_string($moduleName)) { $profileSearchParams = array('modulesDirectory', 'moduleDirectory' => array('moduleName' => $moduleName)); } $profileSearchParams[] = 'modelsDirectory'; $modelsDirectory = $profile->search($profileSearchParams); if (!$modelsDirectory instanceof Zend_Tool_Project_Profile_Resource || !($dbTableDirectory = $modelsDirectory->search('DbTableDirectory'))) { return false; } $dbTableFile = $dbTableDirectory->search(array('DbTableFile' => array('dbTableName' => $dbTableName))); return $dbTableFile instanceof Zend_Tool_Project_Profile_Resource ? true : false; }
public function testProfileCanDelete() { $this->_standardProfileFromData->loadFromData(); foreach ($this->_standardProfileFromData->getIterator() as $resource) { $resource->getContext()->create(); } $this->assertTrue(file_exists($this->_projectDirectory . 'public/index.php')); $publicIndexFile = $this->_standardProfileFromData->search('publicIndexFile'); $publicIndexFile->getContext()->delete(); $this->assertFalse(file_exists($this->_projectDirectory . 'public/index.php')); $appConfigFile = $this->_standardProfileFromData->search('applicationConfigFile'); $appConfigFile->getContext()->delete(); $configsDirectory = $this->_standardProfileFromData->search('configsDirectory'); $configsDirectory->getContext()->delete(); $this->assertFalse(file_exists($this->_projectDirectory . 'application/configs')); }
public static function createResource(Zend_Tool_Project_Profile $profile, $layoutName = 'layout') { $applicationDirectory = $profile->search('applicationDirectory'); $layoutDirectory = $applicationDirectory->search('layoutsDirectory'); if ($layoutDirectory == false) { $layoutDirectory = $applicationDirectory->createResource('layoutsDirectory'); } $layoutScriptsDirectory = $layoutDirectory->search('layoutScriptsDirectory'); if ($layoutScriptsDirectory == false) { $layoutScriptsDirectory = $layoutDirectory->createResource('layoutScriptsDirectory'); } $layoutScriptFile = $layoutScriptsDirectory->search('layoutScriptFile', array('layoutName' => 'layout')); if ($layoutScriptFile == false) { $layoutScriptFile = $layoutScriptsDirectory->createResource('layoutScriptFile', array('layoutName' => 'layout')); } return $layoutScriptFile; }
/** * * @param Zend_Tool_Project_Profile $profile * @param type $adapter * @throws Zend_Tool_Project_Exception */ private function connect(Zend_Tool_Project_Profile $profile, $adapter) { $applicationConfigResource = $profile->search('ApplicationConfigFile'); if (!$applicationConfigResource) { throw new Zend_Tool_Project_Exception('A project with an application config file is required to use this provider.'); } $zf = $applicationConfigResource->getAsZendConfig(); $_configDb = $zf->resources->multidb->{$adapter}; if (!$_configDb) { throw new Zend_Tool_Project_Exception('Adapter not found in config application "resources.multidb.' . $adapter . '" .'); } $configDb = array(); $configDb['host'] = $_configDb->host; $configDb['username'] = $_configDb->username; $configDb['password'] = $_configDb->password; $configDb['dbname'] = $_configDb->dbname; $this->_dbAdapter = Zend_Db::factory($_configDb->adapter, $configDb); }
public static function hasResource(Zend_Tool_Project_Profile $profile, $controllerName, $actionNameOrSimpleName, $moduleName = 'backoffice') { if ($moduleName == '' || $controllerName == '' || $actionNameOrSimpleName == '') { require_once 'Zend/Tool/Project/Provider/Exception.php'; throw new Zend_Tool_Project_Provider_Exception('ModuleName and/or ControllerName and/or ActionName are empty.'); } $profileSearchParams = array('modulesDirectory', 'moduleDirectory' => array('moduleName' => $moduleName), 'viewsDirectory', 'viewScriptsDirectory'); if (($viewScriptsDirectory = $profile->search($profileSearchParams)) === false) { require_once 'Zend/Tool/Project/Provider/Exception.php'; throw new Zend_Tool_Project_Provider_Exception('This project does not have a viewScriptsDirectory resource.'); } $profileSearchParams['viewControllerScriptsDirectory'] = array('forControllerName' => $controllerName); //@FIXME Search returns false even on existance of search params. if (($viewControllerScriptsDirectory = $viewScriptsDirectory->search($profileSearchParams)) === false) { return false; } $profileSearchParams['zfsViewScriptFile'] = array('forActionName' => $actionNameOrSimpleName); return $viewControllerScriptsDirectory->search($profileSearchParams) instanceof Zend_Tool_Project_Profile_Resource; }
/** * createLibraryResource() * * @param Zend_Tool_Project_Profile $profile * @param string $libraryClassName * @return Zend_Tool_Project_Profile_Resource */ public static function createLibraryResource(Zend_Tool_Project_Profile $profile, $libraryClassName) { $testLibraryDirectoryResource = $profile->search(array('TestsDirectory', 'TestLibraryDirectory')); $fsParts = explode('_', $libraryClassName); $currentDirectoryResource = $testLibraryDirectoryResource; while ($nameOrNamespacePart = array_shift($fsParts)) { if (count($fsParts) > 0) { if (($libraryDirectoryResource = $currentDirectoryResource->search(array('TestLibraryNamespaceDirectory' => array('namespaceName' => $nameOrNamespacePart)))) === false) { $currentDirectoryResource = $currentDirectoryResource->createResource('TestLibraryNamespaceDirectory', array('namespaceName' => $nameOrNamespacePart)); } else { $currentDirectoryResource = $libraryDirectoryResource; } } else { if (($libraryFileResource = $currentDirectoryResource->search(array('TestLibraryFile' => array('forClassName' => $libraryClassName)))) === false) { $libraryFileResource = $currentDirectoryResource->createResource('TestLibraryFile', array('forClassName' => $libraryClassName)); } } } return $libraryFileResource; }
protected function _getApplicationConfigResource(Zend_Tool_Project_Profile $profile) { $applicationConfigResource = $profile->search('ApplicationConfigFile'); if (!$applicationConfigResource) { throw new Zend_Tool_Project_Exception('A project with an application config file is required to use this provider.'); } return $applicationConfigResource; }
/** * _getModelsDirectoryResource() * * @param Zend_Tool_Project_Profile $profile * @return Zend_Tool_Project_Profile_Resource */ protected static function _getModelsDirectoryResource(Zend_Tool_Project_Profile $profile) { $profileSearchParams = array('appLibraryDirectory', 'zfsModelDirectory'); return $profile->search($profileSearchParams); }
/** * _getFormsDirectoryResource() * * @param Zend_Tool_Project_Profile $profile * @return Zend_Tool_Project_Profile_Resource */ protected static function _getFormsDirectoryResource(Zend_Tool_Project_Profile $profile, $module) { $profileSearchParams = array('modulesDirectory', 'moduleDirectory' => array('moduleName' => $module), 'formsDirectory'); return $profile->search($profileSearchParams); }