vikijel/joomla-extensions-packager

用于生成包含多个扩展的Joomla! CMS统一安装包(*.zip)的库

1.3.1 2016-06-28 10:19 UTC

README

用于生成包含多个扩展的Joomla! CMS统一安装包(*.zip)的PHP库

Build Status

关于

特性

  • 将指定的扩展、语言、脚本文件等与自动生成的安装xml清单一起打包到ZIP归档中,以便安装到Joomla! CMS
  • 创建的安装包是
    • 兼容Joomla! 2.5及更高版本 (Xml清单具有<extension>根元素)
    • 原生扩展安装包类型‘package’

要求

通过Composer安装

在您的项目目录内运行此命令 (您的项目目录将在后面称为repository

composer require vikijel/joomla-extensions-packager

您需要安装Composer才能使上述命令生效

包含到项目中

  • 如果您在项目中使用Composer,则应已在您的项目中引入vendor/autoload.php
  • repository = 您的项目目录(您在其中运行了composer require
require_once '/path/to/repository/vendor/autoload.php'; 

用法 - 基础

use VikiJel\JoomlaExtensionsPackager\Package;

try
{
	$path = Package::create('Something All-In-One')
	               ->addExtension('com_test', '../tests/data/some_file.zip')
	               ->addExtension('mod_test', '../tests/data/some_file.zip', 'module', 'site')
	               ->addExtension('plg_system_test', '../tests/data/some_file.zip', 'plugin', null, 'system')
	               ->pack();

	echo 'Path to created package is ' . $path; 
	//Outputs: Path to created package is: /path/to/repository/out/pkg_something_all_in_one-1.0.0.zip
}
catch (Exception $e)
{
	die('Failed to create package, error: ' . $e->getMessage());
}

用法 - 高级

use VikiJel\JoomlaExtensionsPackager\Package;
use VikiJel\JoomlaExtensionsPackager\Extension;

try
{
	$path = Package::create('Something Else All-in-one')
	               ->setAuthor('Your Name', 'your.email@example.com', 'http://your.domain.example.com')
	               ->setVersion('1.2.3')
	               ->setDescription('This is something else...')
	               ->setLicense('GPL')
	               ->setCreationDate('2016-05-21')
	               ->setMinJoomlaVersion('2.5')
	               ->setUrl('http://url.com')
	               ->setScriptfile('../tests/data/some_file.php')
	               ->addExtension('com_test', '../tests/data/some_file.zip')
	               ->addExtension('mod_test', '../tests/data/some_file.zip', 'module', 'site')
	               ->addExtensionInstance(
		               Extension::create('plg_system_test', '../tests/data/some_file.zip')
		                        ->setType('plugin')
		                        ->setGroup('system')
	               )
	               ->addExtension('tpl_test', '../tests/data/some_file.zip', 'template', 'admin')
	               ->addExtension('lib_test', '../tests/data/some_file.zip', 'library')
	               ->addExtension('lng_test', '../tests/data/some_file.zip', 'language', 'site')
	               ->addExtensionInstance(
		               Extension::create('file_test', '../tests/data/some_file.zip', 'file')
	               )
	               ->addLanguage('../tests/data/some_file.ini', 'cs-CZ')
	               ->addUpdateServer('http://updates1.example.com', 'My update server 1')
	               ->addUpdateServer('http://updates2.example.com', 'My update server 2', 'collection', 2)
	               ->pack('../out/custom', 'pkg_overridden_name.zip');

	echo 'Path to created package is ' . $path;
	//Outputs: Path to created package is /path/to/repository/out/custom/pkg_overridden_name.zip
}
catch (Exception $e)
{
	die('Failed to create package, error: ' . $e->getMessage());
}

此库与Joomla!项目或Open Source Matters无关,也未获得其认可。Joomla!®名称和标志是在美国和其他国家商标持有人Open Source Matters授予的有限许可下使用的。