Example #1
0
 /**
  *
  * @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);
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * create()
  *
  * @param string $path
  */
 public function create($path)
 {
     if ($path == null) {
         $path = getcwd();
     } else {
         $path = trim($path);
         if (!file_exists($path)) {
             $created = mkdir($path);
             if (!$created) {
                 require_once 'Zend/Tool/Framework/Client/Exception.php';
                 throw new Zend_Tool_Framework_Client_Exception('Could not create requested project directory \'' . $path . '\'');
             }
         }
         $path = str_replace('\\', '/', realpath($path));
     }
     $profile = $this->_loadProfile(self::NO_PROFILE_RETURN_FALSE, $path);
     if ($profile !== false) {
         require_once 'Zend/Tool/Framework/Client/Exception.php';
         throw new Zend_Tool_Framework_Client_Exception('A project already exists here');
     }
     $newProfile = new Zend_Tool_Project_Profile(array('projectDirectory' => $path, 'profileData' => $this->_getDefaultProfile()));
     $newProfile->loadFromData();
     $this->_registry->getResponse()->appendContent('Creating project at ' . $path);
     foreach ($newProfile->getIterator() as $resource) {
         $resource->create();
     }
 }
Example #4
0
 /**
  * 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();
 }
Example #5
0
 /**
  * _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);
 }
Example #6
0
 /**
  * createResource()
  *
  * @param Zend_Tool_Project_Profile $profile
  * @param string $projectProviderName
  * @param string $actionNames
  * @return Zend_Tool_Project_Profile_Resource
  */
 public static function createResource(Zend_Tool_Project_Profile $profile, $projectProviderName, $actionNames = null)
 {
     if (!is_string($projectProviderName)) {
         throw new Zend_Tool_Project_Provider_Exception('Zend_Tool_Project_Provider_Controller::createResource() expects \\"projectProviderName\\" is the name of a project provider resource to create.');
     }
     $profileSearchParams = array();
     $profileSearchParams[] = 'projectProvidersDirectory';
     $projectProvider = $profile->createResourceAt($profileSearchParams, 'projectProviderFile', array('projectProviderName' => $projectProviderName, 'actionNames' => $actionNames));
     return $projectProvider;
 }
Example #7
0
 /**
  * _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);
 }
Example #8
0
 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;
 }
Example #9
0
 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;
 }
Example #10
0
 /**
  * _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();
 }
Example #11
0
 /**
  * _unserializeRecurser()
  *
  * This method will be used to traverse the depths of the structure
  * as needed to *unserialize* the profile from an xmlIterator
  *
  * @param SimpleXMLIterator $xmlIterator
  * @param Zend_Tool_Project_Profile_Resource $resource
  */
 protected function _unserializeRecurser(SimpleXMLIterator $xmlIterator, Zend_Tool_Project_Profile_Resource $resource = null)
 {
     foreach ($xmlIterator as $resourceName => $resourceData) {
         $contextName = $resourceName;
         $subResource = new Zend_Tool_Project_Profile_Resource($contextName);
         $subResource->setProfile($this->_profile);
         if ($resourceAttributes = $resourceData->attributes()) {
             $attributes = array();
             foreach ($resourceAttributes as $attrName => $attrValue) {
                 $attributes[$attrName] = (string) $attrValue;
             }
             $subResource->setAttributes($attributes);
         }
         if ($resource) {
             $resource->append($subResource, false);
         } else {
             $this->_profile->append($subResource);
         }
         if ($this->_contextRepository->isOverwritableContext($contextName) == false) {
             $subResource->initializeContext();
         }
         if ($xmlIterator->hasChildren()) {
             self::_unserializeRecurser($xmlIterator->getChildren(), $subResource);
         }
     }
 }
Example #12
0
 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;
 }
 /**
  * create()
  *
  * @param string $path
  * @param string $nameOfProfile shortName=n
  * @param string $fileOfProfile shortName=f
  */
 public function create($path, $nameOfProfile = null, $fileOfProfile = null)
 {
     if ($path == null) {
         $path = getcwd();
     } else {
         $path = trim($path);
         if (!file_exists($path)) {
             $created = mkdir($path);
             if (!$created) {
                 require_once 'Zend/Tool/Framework/Client/Exception.php';
                 throw new Zend_Tool_Framework_Client_Exception('Could not create requested project directory \'' . $path . '\'');
             }
         }
         $path = str_replace('\\', '/', realpath($path));
     }
     $profile = $this->_loadProfile(self::NO_PROFILE_RETURN_FALSE, $path);
     if ($profile !== false) {
         require_once 'Zend/Tool/Framework/Client/Exception.php';
         throw new Zend_Tool_Framework_Client_Exception('A project already exists here');
     }
     $profileData = null;
     if ($fileOfProfile != null && file_exists($fileOfProfile)) {
         $profileData = file_get_contents($fileOfProfile);
     }
     $storage = $this->_registry->getStorage();
     if ($profileData == '' && $nameOfProfile != null && $storage->isEnabled()) {
         $profileData = $storage->get('project/profiles/' . $nameOfProfile . '.xml');
     }
     if ($profileData == '') {
         $profileData = $this->_getDefaultProfile();
     }
     $newProfile = new Zend_Tool_Project_Profile(array('projectDirectory' => $path, 'profileData' => $profileData));
     $newProfile->loadFromData();
     $response = $this->_registry->getResponse();
     $response->appendContent('Creating project at ' . $path);
     $response->appendContent('Note: ', array('separator' => false, 'color' => 'yellow'));
     $response->appendContent('This command created a web project, ' . 'for more information setting up your VHOST, please see docs/README');
     if (!Zend_Tool_Project_Provider_Test::isPHPUnitAvailable()) {
         $response->appendContent('Testing Note: ', array('separator' => false, 'color' => 'yellow'));
         $response->appendContent('PHPUnit was not found in your include_path, therefore no testing actions will be created.');
     }
     foreach ($newProfile->getIterator() as $resource) {
         $resource->create();
     }
 }
Example #14
0
 /**
  *
  * @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);
 }
Example #15
0
 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;
 }
Example #16
0
File: Test.php Project: hjr3/zf2
 /**
  * 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;
 }
Example #17
0
 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'));
 }
Example #18
0
 /**
  * _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);
 }
Example #19
0
 /**
  * @inheritdoc
  *
  * This code is reproduced from the ZF tool component
  * @licence http://framework.zend.com/license/new-bsd
  *
  * Copyright (c) 2005-2010, Zend Technologies USA, Inc.
  * All rights reserved.
  */
 protected function _findProfileDirectory($projectDirectory = null, $searchParentDirectories = true)
 {
     // use the cwd if no directory was provided
     if ($projectDirectory == null) {
         $projectDirectory = getcwd();
     } elseif (realpath($projectDirectory) == false) {
         throw new Zend_Tool_Project_Provider_Exception('The $projectDirectory supplied does not exist.');
     }
     $profile = new Zend_Tool_Project_Profile();
     $parentDirectoriesArray = explode(DIRECTORY_SEPARATOR, ltrim($projectDirectory, DIRECTORY_SEPARATOR));
     while ($parentDirectoriesArray) {
         $projectDirectoryAssembled = implode(DIRECTORY_SEPARATOR, $parentDirectoriesArray);
         if (DIRECTORY_SEPARATOR !== "\\") {
             $projectDirectoryAssembled = DIRECTORY_SEPARATOR . $projectDirectoryAssembled;
         }
         $profile->setAttribute('projectDirectory', $projectDirectoryAssembled);
         if ($profile->isLoadableFromFile()) {
             unset($profile);
             return $projectDirectoryAssembled;
         }
         // break after first run if we are not to check upper directories
         if ($searchParentDirectories == false) {
             break;
         }
         array_pop($parentDirectoriesArray);
     }
     return false;
 }
Example #20
0
 /**
  * _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);
 }
Example #21
0
 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;
 }
Example #22
0
 /**
  *
  * @expectedException Zend_Tool_Project_Exception
  */
 public function testProfileThrowsExceptionOnLoadFromFileWithBadPathForProfileFile()
 {
     $profile = new Zend_Tool_Project_Profile();
     $profile->setAttribute('projectProfileFile', '/path/should/not/exist');
     // missing file path or project path
     $profile->loadFromFile();
 }