当前位置: 首页>>代码示例>>PHP>>正文


PHP CFileHelper::copyDirectory方法代码示例

本文整理汇总了PHP中CFileHelper::copyDirectory方法的典型用法代码示例。如果您正苦于以下问题:PHP CFileHelper::copyDirectory方法的具体用法?PHP CFileHelper::copyDirectory怎么用?PHP CFileHelper::copyDirectory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CFileHelper的用法示例。


在下文中一共展示了CFileHelper::copyDirectory方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: run

 public function run($args = null)
 {
     $theme = $args[0];
     $themePath = realpath(dirname(__FILE__) . '/../../themes') . '/' . $theme;
     if (!file_exists($themePath)) {
         mkdir($themePath);
         mkdir($themePath . '/views');
     }
     // Find all modules views and copy to theme directory
     $files = glob(realpath(dirname(__FILE__) . '/../') . '/modules/*', GLOB_ONLYDIR);
     foreach ($files as $file) {
         $parts = explode('/', $file);
         $module = end($parts);
         // Don't copy next modules to theme dir.
         if (in_array($module, array('admin', 'install', 'rights'))) {
             continue;
         }
         $moduleThemePath = $themePath . '/views/' . $module;
         $moduleViews = glob($file . '/views/*', GLOB_ONLYDIR);
         foreach ($moduleViews as $viewsDirPath) {
             $parts = explode('/', $viewsDirPath);
             if (end($parts) != 'admin') {
                 if (!file_exists($moduleThemePath)) {
                     mkdir($moduleThemePath, 0777, true);
                 }
                 CFileHelper::copyDirectory($viewsDirPath, $moduleThemePath . '/' . end($parts));
             }
         }
     }
 }
开发者ID:kolbensky,项目名称:rybolove,代码行数:30,代码来源:ThemeCommand.php

示例2: run

 public function run($args = null)
 {
     $theme = $args[0];
     $themePath = realpath(dirname(__FILE__) . '/../../themes') . DIRECTORY_SEPARATOR . $theme;
     if (!file_exists($themePath)) {
         mkdir($themePath);
         mkdir($themePath . '/views');
     }
     // Find all modules views and copy to theme directory
     $files = glob(realpath(dirname(__FILE__) . '/../') . '/modules/*', GLOB_ONLYDIR);
     foreach ($files as $file) {
         $parts = explode('/', $file);
         $module = end($parts);
         $moduleThemePath = $themePath . '/views/' . $module;
         $moduleViews = glob($file . '/views/*', GLOB_ONLYDIR);
         foreach ($moduleViews as $viewsDirPath) {
             $parts = explode('/', $viewsDirPath);
             if (end($parts) != 'admin') {
                 if (!file_exists($moduleThemePath)) {
                     mkdir($moduleThemePath);
                 }
                 CFileHelper::copyDirectory($viewsDirPath, $moduleThemePath . '/' . end($parts));
             }
         }
     }
 }
开发者ID:Aplay,项目名称:Fastreview_site,代码行数:26,代码来源:ThemeCommand.php

示例3: _installExampleTemplates

 /**
  * Install templates
  *
  * @return void
  */
 private function _installExampleTemplates()
 {
     try {
         $fileHelper = new \CFileHelper();
         @mkdir(craft()->path->getSiteTemplatesPath() . 'sproutemail');
         $fileHelper->copyDirectory(craft()->path->getPluginsPath() . 'sproutemail/templates/_special/examples/emails', craft()->path->getSiteTemplatesPath() . 'sproutemail');
     } catch (\Exception $e) {
         $this->_handleError($e);
     }
 }
开发者ID:aladrach,项目名称:Bluefoot-Craft-Starter,代码行数:15,代码来源:SproutEmail_ExamplesController.php

示例4: run

 function run($args)
 {
     if (empty($args[1])) {
         echo $this->getHelp();
         return;
     }
     $path = $args[0];
     $version = $args[1];
     echo "Preparing {$path} release.\n";
     require dirname(__FILE__) . '/GenerateDocsCommand.php';
     $docProcessor = new GenerateDocsCommand($this->getName(), $this->getCommandRunner());
     $outFiles = $docProcessor->processDocuments($path);
     // copy extension dir to temp
     $extPath = Yii::getPathOfAlias('ext') . '/' . $path;
     $copiedExtRoot = Yii::getPathOfAlias('application.runtime.extension');
     echo "Removing {$copiedExtRoot}.\n";
     if (file_exists($copiedExtRoot)) {
         $this->recursiveDelete($copiedExtRoot);
     }
     $copiedExtPath = $copiedExtRoot . '/' . $path;
     if (!file_exists($copiedExtPath)) {
         mkdir($copiedExtPath, 0777, true);
     }
     echo "Copying extension files from {$extPath} to {$copiedExtPath}.\n";
     CFileHelper::copyDirectory($extPath, $copiedExtPath, array('exclude' => array('.svn', 'readme_en.txt', 'readme_ru.txt')));
     echo "Copying documentation to {$copiedExtPath}.\n";
     foreach ($outFiles as $file) {
         copy($file, $copiedExtPath . '/' . basename($file));
     }
     $pathExp = explode('/', $path);
     $zipName = end($pathExp) . '_' . $version . '.zip';
     $releasePath = Yii::getPathOfAlias('application.releases');
     if (!file_exists($releasePath)) {
         mkdir($releasePath, 0777, true);
     }
     $zipPath = "{$releasePath}/{$zipName}";
     if (file_exists($zipPath)) {
         unlink($zipPath);
     }
     //touch($zipPath);
     echo "Creating Zip {$zipPath}.\n";
     require dirname(__FILE__) . '/Zip.php';
     $zip = new Zip();
     if ($zip->open($zipPath, ZipArchive::OVERWRITE | ZipArchive::CREATE) !== TRUE) {
         die("Failed to open Zip {$zipPath}.\n");
     }
     if (!$zip->addDir($copiedExtRoot)) {
         die("Failed adding {$copiedExtRoot} to Zip.\n");
     }
     if ($zip->close()) {
         echo "Done.\n";
     } else {
         die("Failed to write Zip {$zipPath}.\n");
     }
 }
开发者ID:sinelnikof,项目名称:yiiext,代码行数:55,代码来源:ReleaseCommand.php

示例5: testCopyDirectory_subDir_modeShoudBe0777

 public function testCopyDirectory_subDir_modeShoudBe0777()
 {
     if (substr(PHP_OS, 0, 3) == 'WIN') {
         $this->markTestSkipped("Can't reliably test it on Windows because fileperms() always return 0777.");
     }
     $this->createTestStruct($this->testDir);
     $src = $this->testDir . DIRECTORY_SEPARATOR . $this->rootDir1;
     $dst = $this->testDir . DIRECTORY_SEPARATOR . $this->rootDir2;
     CFileHelper::copyDirectory($src, $dst);
     $subDir2Mode = $this->getMode($dst . DIRECTORY_SEPARATOR . $this->subDir);
     $expectedMode = sprintf('%o', 0777);
     $this->assertEquals($expectedMode, $subDir2Mode, "Subdir mode is not {$expectedMode}");
 }
开发者ID:lucifurious,项目名称:yii,代码行数:13,代码来源:CFileHelperTest.php

示例6: generateMessagesModules

    public function generateMessagesModules($locale)
    {
        $modules = ModulesModel::getModules();
        $t = new yandexTranslate();
        $result = array();
        $num = -1;
        $params = array();
        foreach ($modules as $key => $mod) {
            $pathDefault = Yii::getPathOfAlias(self::PATH_MOD . '.' . $key . '.messages.ru');
            $listfile = CFileHelper::findFiles($pathDefault, array('fileTypes' => array('php'), 'absolutePaths' => false));
            $path = Yii::getPathOfAlias(self::PATH_MOD . '.' . $key . '.messages' . DS . $locale);
            //CFileHelper::createDirectory($path, 0777);
            CFileHelper::copyDirectory($pathDefault, $path, array('fileTypes' => array('php'), 'level' => 1));
            foreach ($listfile as $file) {
                //   $file = str_replace('.php', '', $file);
                $openFileContent = self::PATH_MOD . ".{$key}.messages.{$locale}";
                $contentList = (include Yii::getPathOfAlias($openFileContent) . DS . $file);
                // foreach($contentList as $pkey=>$value){
                foreach ($contentList as $pkey => $val) {
                    $params[] = $val;
                    $num++;
                    $spec[$num] = $pkey;
                }
                $response = $t->translate(array('ru', $locale), $contentList);
                foreach ($response['text'] as $k => $v) {
                    $result[$spec[$k]] = $v;
                }
                if (!@file_put_contents($path . DS . $file, '<?php

/**
 * Message translations. (auto translate)
 * 
 * Each array element represents the translation (value) of a message (key).
 * If the value is empty, the message is considered as not translated.
 * Messages that no longer need translation will have their translations
 * enclosed between a pair of \'@@\' marks.
 * 
 * @author Andrew (Panix) Semenov <andrew.panix@gmail.com>
 * @package modules.messages.' . $locale . '
 */
return ' . var_export($result, true) . ';')) {
                    throw new CException(Yii::t('admin', 'Error write modules setting in {file}...', array('{file}' => $file)));
                }
            }
            die('finish ' . $key);
        }
        die('Complate');
        // $locale
    }
开发者ID:buildshop,项目名称:bs-common,代码行数:49,代码来源:TranslatesController.php

示例7: publish

 public function publish($path, $hashByName = false, $level = -1, $forceCopy = false)
 {
     if (isset($this->_published[$path])) {
         return $this->_published[$path];
     } else {
         if (($src = realpath($path)) !== false) {
             if (is_file($src)) {
                 $dir = $this->hash($hashByName ? basename($src) : dirname($src));
                 $fileName = basename($src);
                 $dstDir = $this->getBasePath() . DIRECTORY_SEPARATOR . $dir;
                 $dstFile = $dstDir . '_' . $fileName;
                 if ($this->linkAssets) {
                     if (!is_file($dstFile)) {
                         symlink($src, $dstFile);
                     }
                 } else {
                     if (@filemtime($dstFile) < @filemtime($src) || $forceCopy) {
                         copy($src, $dstFile);
                     }
                 }
                 return $this->_published[$path] = $this->getBaseUrl() . '/' . $dir . '_' . $fileName;
             } else {
                 if (is_dir($src)) {
                     $dir = $this->hash($hashByName ? basename($src) : $src);
                     $dstDir = $this->getBasePath() . DIRECTORY_SEPARATOR . $dir;
                     if ($this->linkAssets) {
                         if (!is_dir($dstDir)) {
                             symlink($src, $dstDir);
                         }
                     } else {
                         if (!is_dir($dstDir) || $forceCopy) {
                             CFileHelper::copyDirectory($src, $dstDir, array('exclude' => $this->excludeFiles, 'level' => $level));
                         }
                     }
                     return $this->_published[$path] = $this->getBaseUrl() . '/' . $dir;
                 }
             }
         }
     }
     throw new CException(Yii::t('yii', 'The asset "{asset}" to be published does not exist.', array('{asset}' => $path)));
 }
开发者ID:balrok,项目名称:aiajaya,代码行数:41,代码来源:SafeModeAssetManager.php

示例8: publish

 public function publish($path, $hashByName = false, $level = -1, $forceCopy = null)
 {
     if ($forceCopy === null) {
         $forceCopy = $this->forceCopy;
     }
     if ($forceCopy && $this->linkAssets) {
         throw new CException(Yii::t('yii', 'The "forceCopy" and "linkAssets" cannot be both true.'));
     }
     if (isset($this->_published[$path])) {
         return $this->_published[$path];
     } else {
         if (($src = realpath($path)) !== false) {
             $dir = $this->generatePath($src, $hashByName);
             $dstDir = $this->getBasePath() . DIRECTORY_SEPARATOR . $dir;
             if (is_file($src)) {
                 $fileName = basename($src);
                 $dstFile = $dstDir . DIRECTORY_SEPARATOR . $fileName;
                 if (!is_dir($dstDir)) {
                     mkdir($dstDir, $this->newDirMode, true);
                     chmod($dstDir, $this->newDirMode);
                 }
                 if ($this->linkAssets && !is_file($dstFile)) {
                     symlink($src, $dstFile);
                 } elseif (@filemtime($dstFile) < @filemtime($src)) {
                     copy($src, $dstFile);
                     chmod($dstFile, $this->newFileMode);
                 }
                 return $this->_published[$path] = $this->getBaseUrl() . "/{$dir}/{$fileName}";
             } elseif (is_dir($src)) {
                 if ($this->linkAssets && !is_dir($dstDir)) {
                     symlink($src, $dstDir);
                 } elseif (!is_dir($dstDir) || $forceCopy) {
                     CFileHelper::copyDirectory($src, $dstDir, array('exclude' => $this->excludeFiles, 'level' => $level, 'newDirMode' => $this->newDirMode, 'newFileMode' => $this->newFileMode));
                 }
                 return $this->_published[$path] = $this->getBaseUrl() . '/' . $dir;
             }
         }
     }
     throw new CException(Yii::t('yii', 'The asset "{asset}" to be published does not exist.', array('{asset}' => $path)));
 }
开发者ID:fandikurnia,项目名称:CiiMS,代码行数:40,代码来源:CiiAssetManager.php

示例9: publish

	public function publish($path,$hashByName=false,$level=-1,$forceCopy=false)
    {
		if(isset($this->_published[$path]))
        {
			return $this->_published[$path];
		}
		else if(($src=realpath($path))!==false)
        {
			if(is_file($src))
            {
				$dir=$this->hash($hashByName ? basename($src) : dirname($src));
				$fileName=basename($src);
				$suffix=substr(strrchr($fileName, '.'), 1);
				$dstDir=$this->getBasePath().DIRECTORY_SEPARATOR.$dir;

				if (array_key_exists($suffix, $this->parsers))
                {
					$fileName=basename($src, $suffix).$this->parsers[$suffix]['output'];
				}
				$dstFile=$dstDir.DIRECTORY_SEPARATOR.$fileName;

				if($this->force || @filemtime($dstFile)<@filemtime($src))
                {
					if(!is_dir($dstDir))
                    {
						mkdir($dstDir);
						@chmod($dstDir,0777);
					}

					if (array_key_exists($suffix, $this->parsers))
                    {
						$parserClass = Yii::import($this->parsers[$suffix]['class']);
						$parser = new $parserClass($this->parsers[$suffix]['options']);
						file_put_contents($dstFile, $parser->parse($src));
					}
					else
                    {
						copy($src,$dstFile);
					}
				}

				return $this->_published[$path]=$this->getBaseUrl()."/$dir/$fileName";
			}
			else if(is_dir($src))
            {
				$dir=$this->hash($hashByName ? basename($src) : $src);
				$dstDir=$this->getBasePath().DIRECTORY_SEPARATOR.$dir;

                if($this->linkAssets)
                {
                    if(!is_dir($dstDir))
                    symlink($src,$dstDir);
                }
                else if(!is_dir($dstDir) || $forceCopy)
                {
					CFileHelper::copyDirectory($src,$dstDir,array(
                        'exclude'=>$this->excludeFiles,
                        'level'=>$level,
                        'newDirMode'=>$this->newDirMode,
                        'newFileMode'=>$this->newFileMode
                    ));
				}
				return $this->_published[$path]=$this->getBaseUrl().'/'.$dir;
			}
		}
	}
开发者ID:nizsheanez,项目名称:alp.ru,代码行数:66,代码来源:AssetManager.php

示例10: buildOfflinePages

 protected function buildOfflinePages($docPath, $themePath)
 {
     $this->themePath = $themePath;
     @mkdir($docPath);
     $content = $this->render('index', null, true);
     $content = preg_replace_callback(self::URL_PATTERN, array($this, 'fixOfflineLink'), $content);
     file_put_contents($docPath . '/index.html', $content);
     foreach ($this->classes as $name => $class) {
         $this->currentClass = $name;
         $this->pageTitle = $name;
         $content = $this->render('class', array('class' => $class), true);
         $content = preg_replace_callback(self::URL_PATTERN, array($this, 'fixOfflineLink'), $content);
         file_put_contents($docPath . '/' . $name . '.html', $content);
     }
     CFileHelper::copyDirectory($this->themePath . '/assets', $docPath);
     $content = $this->renderPartial('chmProject', null, true);
     file_put_contents($docPath . '/manual.hhp', $content);
     $content = $this->renderPartial('chmIndex', null, true);
     file_put_contents($docPath . '/manual.hhk', $content);
     $content = $this->renderPartial('chmContents', null, true);
     file_put_contents($docPath . '/manual.hhc', $content);
 }
开发者ID:mjrouser,项目名称:cityapi,代码行数:22,代码来源:ApiCommand.php

示例11: XMLImportSurvey

/**
* This function imports a LimeSurvey .lss survey XML file
*
* @param mixed $sFullFilePath  The full filepath of the uploaded file
*/
function XMLImportSurvey($sFullFilePath, $sXMLdata = NULL, $sNewSurveyName = NULL, $iDesiredSurveyId = NULL, $bTranslateInsertansTags = true, $bConvertInvalidQuestionCodes = true)
{
    Yii::app()->loadHelper('database');
    $clang = Yii::app()->lang;
    $aGIDReplacements = array();
    if ($sXMLdata == NULL) {
        $sXMLdata = file_get_contents($sFullFilePath);
    }
    $xml = @simplexml_load_string($sXMLdata, 'SimpleXMLElement', LIBXML_NONET);
    if (!$xml || $xml->LimeSurveyDocType != 'Survey') {
        $results['error'] = $clang->gT("This is not a valid LimeSurvey survey structure XML file.");
        return $results;
    }
    $pre_personal_characteristics = "";
    $question_groups['R'] = array();
    $question_groups['I'] = array();
    $question_groups['O'] = array();
    $iDBVersion = (int) $xml->DBVersion;
    $aQIDReplacements = array();
    $aQuestionCodeReplacements = array();
    $aQuotaReplacements = array();
    $results['defaultvalues'] = 0;
    $results['answers'] = 0;
    $results['surveys'] = 0;
    $results['questions'] = 0;
    $results['subquestions'] = 0;
    $results['question_attributes'] = 0;
    $results['groups'] = 0;
    $results['assessments'] = 0;
    $results['quota'] = 0;
    $results['quotals'] = 0;
    $results['quotamembers'] = 0;
    $results['survey_url_parameters'] = 0;
    $results['importwarnings'] = array();
    $aLanguagesSupported = array();
    foreach ($xml->languages->language as $language) {
        $aLanguagesSupported[] = (string) $language;
    }
    $results['languages'] = count($aLanguagesSupported);
    // Import surveys table ====================================================
    foreach ($xml->surveys->rows->row as $row) {
        $insertdata = array();
        foreach ($row as $key => $value) {
            $insertdata[(string) $key] = (string) $value;
        }
        $iOldSID = $results['oldsid'] = $insertdata['sid'];
        if ($iDesiredSurveyId != NULL) {
            $insertdata['wishSID'] = GetNewSurveyID($iDesiredSurveyId);
        } else {
            $insertdata['wishSID'] = $iOldSID;
        }
        if ($iDBVersion < 145) {
            if (isset($insertdata['private'])) {
                $insertdata['anonymized'] = $insertdata['private'];
            }
            unset($insertdata['private']);
            unset($insertdata['notification']);
        }
        //Make sure it is not set active
        $insertdata['active'] = 'N';
        //Set current user to be the owner
        $insertdata['owner_id'] = Yii::app()->session['loginID'];
        if (isset($insertdata['bouncetime']) && $insertdata['bouncetime'] == '') {
            $insertdata['bouncetime'] = NULL;
        }
        if (isset($insertdata['showXquestions'])) {
            $insertdata['showxquestions'] = $insertdata['showXquestions'];
            unset($insertdata['showXquestions']);
        }
        // Special code to set javascript in
        Yii::app()->loadHelper('admin/template');
        $newname = "watson_" . time();
        $newdirname = Yii::app()->getConfig('usertemplaterootdir') . "/" . $newname;
        $copydirname = getTemplatePath("watson_personal_constructs_copy_me");
        $oFileHelper = new CFileHelper();
        $mkdirresult = mkdir_p($newdirname);
        if ($mkdirresult == 1) {
            $oFileHelper->copyDirectory($copydirname, $newdirname);
            $templatename = $newname;
            //$this->index("startpage.pstpl", "welcome", $templatename);
        } elseif ($mkdirresult == 2) {
            $results['Error'] = sprintf($clang->gT("Directory with the name `%s` already exists - choose another name", "js"), $newname);
        } else {
            $results['Error'] = sprintf($clang->gT("Unable to create directory `%s`.", "js"), $newname) . " " . $clang->gT("Please check the directory permissions.", "js");
        }
        $insertdata['template'] = $newname;
        // End special copy code (taken from templates.php templatecopy() method
        if (isset($insertdata['googleAnalyticsStyle'])) {
            $insertdata['googleanalyticsstyle'] = $insertdata['googleAnalyticsStyle'];
            unset($insertdata['googleAnalyticsStyle']);
        }
        if (isset($insertdata['googleAnalyticsAPIKey'])) {
            $insertdata['googleanalyticsapikey'] = $insertdata['googleAnalyticsAPIKey'];
            unset($insertdata['googleAnalyticsAPIKey']);
        }
//.........这里部分代码省略.........
开发者ID:rouben,项目名称:LimeSurvey,代码行数:101,代码来源:import_helper.php

示例12: templatecopy

 /**
  * Function responsible to copy a template.
  *
  * @access public
  * @return void
  */
 public function templatecopy()
 {
     if (!Permission::model()->hasGlobalPermission('templates', 'create')) {
         die('No permission');
     }
     $clang = $this->getController()->lang;
     $newname = sanitize_dirname(Yii::app()->request->getPost("newname"));
     $copydir = sanitize_dirname(Yii::app()->request->getPost("copydir"));
     $action = Yii::app()->request->getPost("action");
     if ($newname && $copydir) {
         // Copies all the files from one template directory to a new one
         Yii::app()->loadHelper('admin/template');
         $newdirname = Yii::app()->getConfig('usertemplaterootdir') . "/" . $newname;
         $copydirname = getTemplatePath($copydir);
         $oFileHelper = new CFileHelper();
         $mkdirresult = mkdir_p($newdirname);
         if ($mkdirresult == 1) {
             $oFileHelper->copyDirectory($copydirname, $newdirname);
             $templatename = $newname;
             $this->getController()->redirect(array("admin/templates/sa/view", 'templatename' => $newname));
         } elseif ($mkdirresult == 2) {
             Yii::app()->setFlashMessage(sprintf($clang->gT("Directory with the name `%s` already exists - choose another name"), $newname), 'error');
             $this->getController()->redirect(array("admin/templates/sa/view", 'templatename' => $copydir));
         } else {
             Yii::app()->setFlashMessage(sprintf($clang->gT("Unable to create directory `%s`."), $newname), 'error');
             Yii::app()->setFlashMessage($clang->gT("Please check the directory permissions."));
             $this->getController()->redirect(array("admin/templates/sa/view"));
         }
     } else {
         $this->getController()->redirect(array("admin/templates/sa/view"));
     }
 }
开发者ID:Narasimman,项目名称:UrbanExpansion,代码行数:38,代码来源:templates.php

示例13: actionUploadIronWorker

 /**
  * Run this action like this: yiic myAction uploadIronWorker
  *
  * This command can be integrated to your deployment system. When you have committed your code you can
  * run this command to deploy the code to the iron.io servers.
  *
  * This command zips all the code needed to be uploaded to the Iron Workers
  * Upload the zipped file to Iron Workers. This will create a new version of the code for the current project
  *
  * It will also create a task in the iron.io hud named after the command file. All the actions in this command file
  * will run  as this task on iron.io.
  *
  * It prepares all the files in the runtoime directory and cleans up when finished.
  * TODO: Test in Windows environment
  */
 public function actionUploadIronWorker()
 {
     /**
      * The EYiiron class instance. It is our gateway to all iron.io services
      * @var EYiiron $yiiron
      */
     $yiiron = Yii::app()->yiiron;
     //This is where we store the files before deploying them on iron.io
     $tmpDir = Yii::app()->getRuntimePath() . DIRECTORY_SEPARATOR . 'ironworkers' . DIRECTORY_SEPARATOR;
     echo "Using PHP Stack :" . $yiiron->stack . "\n";
     //Clean up in the directory. We do this before we start in case the old code was not fully removed.
     EIronWorkersCommand::deleteDir($tmpDir);
     //Make sure we have a clean environment before preparing the runtime environment for iron.io.
     //THis is crucial so we know that the code we deploy is exactly the same as we run locally.
     if (!file_exists($tmpDir)) {
         echo $tmpDir . " doesn't exist creating it now...\n";
         if (!mkdir($tmpDir)) {
             echo "**Error**: Creation failed. Please check your permissions!\n";
             exit(0);
         }
     } else {
         echo "**Error**: " . $tmpDir . " existed even though we tried to fully remove it.\n" . "It could be a permission problem please remove " . $tmpDir . " manually before running this command again.\n";
         exit(0);
     }
     echo "Copying Yii Framework to tmp dir...\n";
     /**
      * The Framework path
      * @var string $yiiPath
      */
     $yiiPath = Yii::getFrameworkPath() . "/../";
     /**
      * The path of your Yii app. Usually the protected folder
      * @var string $appPath
      */
     $appPath = Yii::app()->getBasePath() . "/";
     echo "Yii path: " . $yiiPath . "\n";
     CFileHelper::copyDirectory($yiiPath, $tmpDir . 'yii');
     echo "Copying app from " . $appPath . " to the tmp dir " . $tmpDir . 'app/' . basename($appPath) . "\n";
     //Exclude as much as we can to get a slim file to upload
     CFileHelper::copyDirectory($appPath, $tmpDir . 'app/' . basename($appPath), Yii::app()->yiiron->workerFileCopyOptions);
     echo "Zipping code to " . $tmpDir . "iron_worker.zip\n";
     IronWorker::zipDirectory($tmpDir, $tmpDir . 'iron_worker.zip', true);
     echo "Uploading the code for the worker " . $this->name . "...\n";
     //This is so we can handle custom extension paths
     $ironWorkerExtensionPath = str_replace($appPath, "app/" . basename($appPath) . "/", Yii::app()->getExtensionPath());
     //Read the config array into an array
     $configFile = json_encode(require $appPath . $yiiron->configFile);
     //Posting the code and the initial php file to execute. This on the Iron Worker platform, not locally
     $res = $yiiron->workerPostCode($ironWorkerExtensionPath . "/yiiron/yiic-yiiron.php", $tmpDir . 'iron_worker.zip', $this->getName(), array('config' => $configFile, 'stack' => $yiiron->stack));
     echo "Finished uploading iron_worker.zip (" . EIronWorkersCommand::format_bytes(filesize($tmpDir . 'iron_worker.zip')) . ")\n";
     //Remove all files
     echo "Remove all temp files...\n";
     //EIronWorkersCommand::deleteDir($tmpDir);
     echo "Done!\n";
     echo "Find the worker here http://hud.iron.io/tq/projects/" . Yii::app()->yiiron->projectId . "/tasks/" . $res->id . "/activity\n";
     echo "Now run your command like this: './yiic " . $this->name . " myAction --ironWorker=true' to execute it as an Iron Worker.\n";
 }
开发者ID:br0sk,项目名称:yiiron,代码行数:72,代码来源:EIronWorkersCommand.php

示例14: copyImagesToTmp

 protected function copyImagesToTmp($path)
 {
     if (is_dir($path)) {
         echo " Copying images to tmpdir [" . $path . "].\n";
         CFileHelper::copyDirectory($path, $this->tmpPath, array('fileTypes' => array('jpg', 'jpeg', 'png', 'gif', 'css'), 'level' => 0));
     }
 }
开发者ID:sinelnikof,项目名称:yiiext,代码行数:7,代码来源:ChmCommand.php

示例15: publish

	public function publish($path,$hashByName=false,$level=-1,$forceCopy=false)
    {
        if($forceCopy===null)
            $forceCopy=$this->forceCopy;
        if(isset($this->_published[$path]))
            return $this->_published[$path];
        else if(($src=realpath($path))!==false)
        {
            if(is_file($src))
            {
                $dir=$this->hash($hashByName ? basename($src) : dirname($src).filemtime($src));
                $fileName=basename($src);
                $dstDir=$this->getBasePath().DIRECTORY_SEPARATOR.$dir;

                $suffix=pathinfo($src, PATHINFO_EXTENSION);
                if (array_key_exists($suffix, $this->parsers))
                {
                    $fileName=basename($src, $suffix).$this->parsers[$suffix]['output'];
                }
                $dstFile=$dstDir.DIRECTORY_SEPARATOR.$fileName;

                if ($this->linkAssets)
                {
                    if(!is_file($dstFile))
                    {
                        if(!is_dir($dstDir))
                        {
                            mkdir($dstDir);
                            @chmod($dstDir, $this->newDirMode);
                        }
                        symlink($src,$dstFile);
                    }
                }
                else if(@filemtime($dstFile)<@filemtime($src))
                {
                    if(!is_dir($dstDir))
                    {
                        mkdir($dstDir);
                        @chmod($dstDir, $this->newDirMode);
                    }

                    if (array_key_exists($suffix, $this->parsers))
                    {
                        $parserClass = Yii::import($this->parsers[$suffix]['class']);
                        $parser = new $parserClass($this->parsers[$suffix]['options']);
                        file_put_contents($dstFile, $parser->parse($src));
                    }
                    else
                    {
                        copy($src,$dstFile);
                    }
                    @chmod($dstFile, $this->newFileMode);
                }

                return $this->_published[$path]=$this->getBaseUrl()."/$dir/$fileName";
            }
            else if(is_dir($src))
            {
                $dir=$this->hash($hashByName ? basename($src) : $src.filemtime($src));
                $dstDir=$this->getBasePath().DIRECTORY_SEPARATOR.$dir;

                if($this->linkAssets)
                {
                    if(!is_dir($dstDir))
                        symlink($src,$dstDir);
                }
                else if(!is_dir($dstDir) || $forceCopy)
                {
                    CFileHelper::copyDirectory($src,$dstDir,array(
                        'exclude'=>$this->excludeFiles,
                        'level'=>$level,
                        'newDirMode'=>$this->newDirMode,
                        'newFileMode'=>$this->newFileMode,
                    ));
                }

                return $this->_published[$path]=$this->getBaseUrl().'/'.$dir;
            }
        }
        throw new CException(Yii::t('yii','The asset "{asset}" to be published does not exist.',
            array('{asset}'=>$path)));
	}
开发者ID:nizsheanez,项目名称:blog.ru,代码行数:82,代码来源:AssetManager.php


注:本文中的CFileHelper::copyDirectory方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。