本文整理汇总了PHP中Mage_Connect_Package::getContents方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Connect_Package::getContents方法的具体用法?PHP Mage_Connect_Package::getContents怎么用?PHP Mage_Connect_Package::getContents使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Connect_Package
的用法示例。
在下文中一共展示了Mage_Connect_Package::getContents方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doInstall
//.........这里部分代码省略.........
}
}
}
if ($ftp) {
$cwd = $ftpObj->getcwd();
$dir = $cwd . DIRECTORY_SEPARATOR . $config->downloader_path . DIRECTORY_SEPARATOR . Mage_Connect_Config::DEFAULT_CACHE_PATH . DIRECTORY_SEPARATOR . trim($pChan, "\\/");
$ftpObj->mkdirRecursive($dir, 0777);
$ftpObj->chdir($cwd);
} else {
$dir = $config->getChannelCacheDir($pChan);
@mkdir($dir, 0777, true);
}
$dir = $config->getChannelCacheDir($pChan);
$packageFileName = $pName . "-" . $pVer . ".tgz";
$file = $dir . DIRECTORY_SEPARATOR . $packageFileName;
if (!@file_exists($file)) {
$this->ui()->output("Starting to download {$packageFileName} ...");
$rest->downloadPackageFileOfRelease($pName, $pVer, $file);
$this->ui()->output(sprintf("...done: %s bytes", number_format(filesize($file))));
}
/**
* Remove old version package before install new
*/
if ($cache->hasPackage($pChan, $pName)) {
if ($ftp) {
$packager->processUninstallPackageFtp($pChan, $pName, $cache, $ftpObj);
} else {
$packager->processUninstallPackage($pChan, $pName, $cache, $config);
}
$cache->deletePackage($pChan, $pName);
}
$package = new Mage_Connect_Package($file);
if ($clearInstallMode && $pInstallState != 'upgrade' && !$installAll) {
$contents = $package->getContents();
$this->backup()->setFileTypes(array('csv', 'html'));
$typesToBackup = $this->backup()->getFileTypes();
$this->validator()->validateContents($contents, $config, $typesToBackup);
$errors = $this->validator()->getErrors();
if (count($errors)) {
throw new Exception("Package '{$pName}' is invalid\n" . implode("\n", $errors));
}
$targetPath = rtrim($config->magento_root, "\\/");
foreach ($contents as $filePath) {
$this->backup()->addFile($filePath, $targetPath);
}
if ($this->backup()->getFilesCount() > 0) {
$this->ui()->output('<br/>');
$this->ui()->output('Backup of following files will be created :');
$this->ui()->output('<br/>');
$this->backup()->run();
$this->ui()->output(implode('<br/>', $this->backup()->getAllFiles()));
$this->ui()->output('<br/>');
$this->ui()->output($this->backup()->getFilesCount() . ' files was overwritten by installed extension.');
$this->ui()->output('<br/>');
$this->backup()->unsetAllFiles();
}
}
$conflicts = $package->checkPhpDependencies();
if (true !== $conflicts) {
$conflicts = implode(",", $conflicts);
$err = "Package {$pChan}/{$pName} {$pVer} depends on PHP extensions: " . $conflicts;
if ($forceMode) {
$this->doError($command, $err);
} else {
throw new Exception($err);
}
示例2: processInstallPackage
/**
* Package installation to FS
* @param Mage_Connect_Package $package
* @param string $file
* @return void
* @throws Exception
*/
public function processInstallPackage($package, $file, $configObj)
{
$contents = $package->getContents();
$arc = $this->getArchiver();
$target = dirname($file) . DS . $package->getReleaseFilename();
@mkdir($target, 0777, true);
$mode = $configObj->global_dir_mode;
$tar = $arc->unpack($file, $target);
$modeFile = $configObj->global_file_mode;
$modeDir = $configObj->global_dir_mode;
foreach ($contents as $file) {
$fileName = basename($file);
$filePath = dirname($file);
$source = $tar . DS . $file;
$targetPath = rtrim($configObj->magento_root, "\\/");
@mkdir($targetPath . DS . $filePath, $modeDir, true);
$dest = $targetPath . DS . $filePath . DS . $fileName;
if (is_file($source)) {
@copy($source, $dest);
if ($modeFile) {
@chmod($dest, $modeFile);
}
} else {
@mkdir($dest, $modeDir);
}
}
Mage_System_Dirs::rm(array("-r", $target));
}
示例3: processInstallPackage
/**
* Package installation to FS
* @param Mage_Connect_Package $package
* @param string $file
* @return void
* @throws Exception
*/
public function processInstallPackage($package, $file, $configObj)
{
$contents = $package->getContents();
$arc = $this->getArchiver();
$target = dirname($file) . DS . $package->getReleaseFilename();
@mkdir($target, 0777, true);
$tar = $arc->unpack($file, $target);
$modeFile = $this->_getFileMode($configObj);
$modeDir = $this->_getDirMode($configObj);
foreach ($contents as $file) {
$fileName = basename($file);
$filePath = dirname($file);
$source = $tar . DS . $file;
$targetPath = rtrim($configObj->magento_root, "\\/");
@mkdir($targetPath . DS . $filePath, $modeDir, true);
$dest = $targetPath . DS . $filePath . DS . $fileName;
if (is_file($source)) {
@copy($source, $dest);
if ($modeFile) {
@chmod($dest, $modeFile);
}
} else {
@mkdir($dest, $modeDir);
}
}
$packageXml = $tar . Mage_Connect_Package_Reader::DEFAULT_NAME_PACKAGE;
if (is_file($packageXml)) {
$destDir = $targetPath . DS . Mage_Connect_Package::PACKAGE_XML_DIR;
$destFile = $package->getReleaseFilename() . '.xml';
$dest = $destDir . DS . $destFile;
@copy($packageXml, $dest);
@chmod($dest, $modeFile);
}
Mage_System_Dirs::rm(array("-r", $target));
}
示例4: array
<?php
/**
* Generate modman file from Magento Connect 2.0 package.xml
*
* Usage:
*
* php package2modman.php path/to/package.xml > path/to/modman
*
*/
require_once __DIR__ . "/../www/app/Mage.php";
$package = new Mage_Connect_Package($argv[1]);
$modmanDefinition = array();
foreach ($package->getContents() as $path) {
$path = preg_replace('{^\\./}', '', $path);
$path = preg_replace('{^app/code/(.*?)/(.*?)/(.*?)/(.*)$}', 'app/code/$1/$2/$3', $path);
$path = preg_replace('{^lib/(.*?)/(.*)$}', 'lib/$1', $path);
$path = preg_replace('{^js/(.*?)/(.*?)/(.*)$}', 'js/$1', $path);
$path = preg_replace('{^app/design/(.*?)/(.*?)/default/layout/(.*?)/(.*)$}', 'app/design/$1/$2/default/layout/$3', $path);
$path = preg_replace('{^app/design/(.*?)/(.*?)/default/template/(.*?)/(.*)$}', 'app/design/$1/$2/default/template/$3', $path);
$path = preg_replace('{^skin/(.*?)/(.*?)/default/(.*?)/(.*?)/(.*)$}', 'skin/$1/$2/default/$3/$4', $path);
$modmanDefinition[$path] = $path;
}
foreach ($modmanDefinition as $source => $target) {
printf("%s %s\n", $source, $target);
}