Простейший xml файл Phing для сборки пакета расширений Joomla

  • Суббота, 30 мая 2015

Мир меняется, и веб-разработка меняется вместе с ним, еще 3 года назад я даже не думал о GIT, как инструмента для разработки расширений, сейчас я уже не могу помыслить, как можно разрабатывать, что-то и при этом не использовать GIT. Не так давно собирая пакет расширений Joomla состоящий из 22 расширений в ручную, я подумал "Какого...", до сих пор делаю это в ручную, ведь это иногда занимает очень много времени и посвятил несколько часов своего времени изучению Phing.

Первой проблемой с которой я столкнулся - это установка Phing на Windows - эта статья поможет вам установить его в windows окружении.

Вторая проблема - формирование xml файла, который бы позволил автоматически собирать пакет, как раз об этом мы и поговорим в этой статье.

Создаем файл для сборки пакета

Я рекомендую использовать имя файла build.xml. Вы можете использовать любое название, но тогда вам придется указывать в командной строке имя файла при наборе команды phing.

Что написать внутри файла для сборки?

<project name="slogin" default="dist" basedir=".">
	<property name="build" value="build" />
	<property name="dist" value="dist" />
	<property name="filename" value="pkg_slogin_v2.2_j2.5_j3.zip" />


	<target name="init" depends="clean">
		<mkdir dir="${build}" />
		<mkdir dir="${dist}" />
	</target>

	<target name="pack-plugins">
		<zip destfile="${build}/mod_slogin.zip" description="mod_slogin">
			<fileset dir="mod_slogin" />
		</zip>
		<zip destfile="${build}/com_slogin.zip" description="com_slogin">
			<fileset dir="com_slogin" />
		</zip>
		<zip destfile="${build}/lib_slogin_oauth.zip" description="lib_slogin_oauth">
			<fileset dir="libraries/slogin" />
		</zip>
		
		<copy file="pkg_slogin.xml" todir="${build}" />

	</target>
	
	<target name="dist" depends="init, pack-plugins">
		<zip destfile="${dist}/${filename}">
			<fileset dir="${build}/" >
				<include name="**/**" />
			</fileset>
		</zip>
	</target>

	<target name="clean" description="clean up">
		<delete dir="${build}" />
		<delete dir="${dist}" />
	</target>
</project>

В этом коде я привел пример содержимое файла для сборки пакета нашего расширения Slogin. Объясню, как это работает. Создаются папки "build" и "dist", последовательно берется папки из секции "pack-plugins", архивируются и складываются в папку "build", за тем в эту же папку копируется файл pkg_slogin.xml. И после этого берутся все файлы в папке "build" упаковываются в архив который называется "pkg_slogin_v2.2_j2.5_j3.zip" и копируется в папку "dist". При перезапуске файла сборки, папки "build" и "dist" отчищаются.

На что обратить внимание?

<property name="filename" value="pkg_slogin_v2.2_j2.5_j3.zip" />

pkg_slogin_v2.2_j2.5_j3.zip - это название конечного пакета расширения.

<target name="pack-plugins">

Секция pack-plugins содержит список папок, которые мы архивируем, каждая папка архивируется такой конструкцией:

<zip destfile="${build}/mod_slogin.zip" description="mod_slogin">
	<fileset dir="mod_slogin" />
</zip>

Где:

${build}/mod_slogin.zip - путь до конечного файла после упаковки.

description="mod_slogin" - описание файла, должно быть уникальным.

dir="mod_slogin" - папка которую мы упаковываем, путь определяется относительно корня директории, где лежит файл xml файл сборки.

Собственно на этом можно считать урок законченным, в конечном итоге мы получили очень простой файл, на редактирование, которого у вас уйдет несколько минут, а в последствии вы сможете пересобрать пакеты расширений за считанные секунды.

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Свернуть

Коротко о главном в Joomla

Новости портала

Новое в блогах

Видео

Форум о Joomla