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


PHP PEAR_Installer::addFileOperation方法代码示例

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


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

示例1: processInstallation

 function processInstallation($pkg, $atts, $file, $tmp_path, $layer = null)
 {
     $test = parent::processInstallation($pkg, $atts, $file, $tmp_path, $layer);
     if (@file_exists($test[2]) && @file_exists($test[3])) {
         // Try sha1 first
         if (!is_null($this->sha1)) {
             $sha1 = sha1_file($test[2]);
             $mod = $sha1 !== $this->sha1 && $sha1 !== sha1_file($test[3]);
         } else {
             $md5 = md5_file($test[2]);
             $mod = $md5 !== $this->md5 && $md5 !== md5_file($test[3]);
         }
         // configuration has already been installed, check for mods
         if ($mod) {
             // configuration has been modified, so save our version as
             // configfile-version
             $old = $test[2];
             $test[2] .= '.new-' . $pkg->getVersion();
             // backup original and re-install it
             PEAR::pushErrorHandling(PEAR_ERROR_RETURN);
             $tmpcfg = $this->config->get('temp_dir');
             $newloc = System::mkdir(array('-p', $tmpcfg));
             if (!$newloc) {
                 // try temp_dir
                 $newloc = System::mktemp(array('-d'));
                 if (!$newloc || PEAR::isError($newloc)) {
                     PEAR::popErrorHandling();
                     return PEAR::raiseError('Could not save existing configuration file ' . $old . ', unable to install.  Please set temp_dir ' . 'configuration variable to a writeable location and try again');
                 }
             } else {
                 $newloc = $tmpcfg;
             }
             $temp_file = $newloc . DIRECTORY_SEPARATOR . uniqid('savefile');
             if (!@copy($old, $temp_file)) {
                 PEAR::popErrorHandling();
                 return PEAR::raiseError('Could not save existing configuration file ' . $old . ', unable to install.  Please set temp_dir ' . 'configuration variable to a writeable location and try again');
             }
             PEAR::popErrorHandling();
             $this->installer->log(0, "WARNING: configuration file {$old} is being installed as {$test['2']}, you should manually merge in changes to the existing configuration file");
             $this->installer->addFileOperation('rename', array($temp_file, $old, false));
             $this->installer->addFileOperation('delete', array($temp_file));
         }
     }
     return $test;
 }
开发者ID:cheeepsan,项目名称:pear-core,代码行数:45,代码来源:Cfg.php


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