<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>República I.T. &#187; builders</title>
	<atom:link href="http://www.republicait.com/tags/builders/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.republicait.com</link>
	<description>Progamación, Tecnología y mucho más...</description>
	<lastBuildDate>Thu, 20 May 2010 20:22:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>PHING</title>
		<link>http://www.republicait.com/2009/02/24/phing/</link>
		<comments>http://www.republicait.com/2009/02/24/phing/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 01:07:26 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Configuración]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[builders]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=171</guid>
		<description><![CDATA[PHING (PHing Is Not GNU make), es una herramienta basada en el constructor (builder) de aplicaciones Java, Apache Ant, con la diferencia de que PHING es para construir aplicaciones escritas en PHP.]]></description>
			<content:encoded><![CDATA[<h3 style="text-align: justify;">
<div class="mceTemp mceIEcenter">
<dl id="attachment_172" class="wp-caption aligncenter" style="width: 221px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-172" title="phing logo" src="http://www.republicait.com/wp-content/uploads/2009/02/logo.png" alt="phing logo" width="211" height="74" /></dt>
</dl>
</div>
</h3>
<h3>Introducción</h3>
<p style="text-align: justify;">PHING (<strong>PH</strong>ing <strong>I</strong>s <strong>N</strong>ot <strong>G</strong>NU make), es una herramienta basada en el constructor (builder) de aplicaciones Java, <a href="http://ant.apache.org/" target="_blank">Apache Ant</a>, con la diferencia de que PHING es para construir aplicaciones escritas en PHP.</p>
<p style="text-align: justify;">La estructura de la aplicación se describe en un archivo XML llamado <code>build.xml</code>, en este archivo podemos encontrar el nombre de la aplicación a construir, una descripción de la misma, la carpeta donde se encuentra nuestro código fuente, la carpeta de destino que contendrá la última versión de la aplicación y las tareas (tasks) que este debe ejecutar.</p>
<p style="text-align: justify;">Esta herramienta es muy útil, por lo general, cuando se tiene una ruta  específica de un conjunto de librerías de utilidades que pueden formar parte de cualquier aplicación. Se puede hacer referencia a esta ruta desde su IDE de PHP, pero luego, tenie que asegurarse de copiarla cuando ya tiene su producto final.</p>
<p style="text-align: justify;">También cuando se trabaja con diferentes configuraciones, ya sea el servidor de desarrollo o el de producción debe asegurarse de copiar y/o subir la configuración correcta, esto sin tomar en cuenta que la PC del programador pueda tener otra configuración. Este problema se resuelve con PHING, ya que a la hora de construir la aplicación solo basta con decirle que configuración debe cargar.</p>
<p>Enlace de descarga: <a href="http://phing.info/trac/wiki/Users/Download" target="_blank">http://phing.info/trac/wiki/Users/Download</a></p>
<p>Instalación y Documentación: <a href="http://phing.info/docs/guide/current/" target="_blank">http://phing.info/docs/guide/current/</a></p>
<h3>Ejemplo del archivo build.xml</h3>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project
	name="Proyecto de prueba"
	default="stage"
	basedir="."
	description="Archivo Build del Proyecto de Prueba"&gt;

	&lt;!--  Ruta que contendra la aplicacion web final --&gt;
	&lt;property name="build.dir" value="../build" /&gt;

	&lt;!-- Ruta de los archivos fuentes --&gt;
	&lt;property name="src.dir" value="./app" /&gt;

	&lt;!--
	PHP COMMONS LIBS - PCL
	Configuracion de la libreria de utilidades comunes

	pcl.src.dir:
	Es la ruta donde se encuentra los archivos fuente de PCL

	pcl.out.dir:
	Es la ruta donde se copiara las utiliades dentro de la aplicacion
	--&gt;
	&lt;property name="pcl.src.dir" value="../PCL" /&gt;
	&lt;property name="pcl.out.dir" value="${build.dir}/libs/PCL" /&gt;

	&lt;!-- Incluye los archivos fuente de la aplicacion --&gt;
	&lt;fileset dir="${src.dir}" id="srcfiles"&gt;
		&lt;include name="**" /&gt;
	&lt;/fileset&gt;

	&lt;!--
	- Incluye los archivos del proyecto PCL
	- Excluye archivos de Zend Studio for Eclipse (ZSE) - opcional
	--&gt;
	&lt;fileset dir="${pcl.src.dir}" id="pclfiles"&gt;
		&lt;include name="**" /&gt;
		&lt;exclude name=".cache/**" /&gt;
		&lt;exclude name=".settings/**" /&gt;
		&lt;exclude name=".project" /&gt;
	&lt;/fileset&gt;

	&lt;!-- Prepara el directorio de destino --&gt;
	&lt;target
		name="init"
		description="Preparando el directorio destino ==&gt; ${build.dir}"&gt;

		&lt;echo message="Preparando el directorio ${build.dir}" /&gt;
		&lt;delete dir="${build.dir}" failonerror="true" /&gt;
		&lt;mkdir dir="${build.dir}" /&gt;
		&lt;mkdir dir="${build.dir}/libs"/&gt;
		&lt;!--
		Crea el directorio de destino de PCL
		--&gt;
		&lt;mkdir dir="${pcl.out.dir}" /&gt;
	&lt;/target&gt;

	&lt;!-- Construye la aplicacion WEB PHP --&gt;
	&lt;target
		name="build"
		depends="init"
		description="Construye la aplicacion WEB"&gt;

		&lt;!--
		Copia los archivos fuentes de la aplicacion
		--&gt;
		&lt;echo message="Copiando archivos desde ${src.dir}" /&gt;
		&lt;copy todir="${build.dir}"&gt;
			&lt;fileset refid="srcfiles" /&gt;
		&lt;/copy&gt;

		&lt;!--
		Copia los archivos de configuracion de la aplicacion
		--&gt;
		&lt;echo message="Copiando configuracion desde ${config.dir}" /&gt;
		&lt;copy todir="${build.dir}"&gt;
			&lt;fileset dir="${config.dir}"&gt;
				&lt;include name="**" /&gt;
			&lt;/fileset&gt;
		&lt;/copy&gt;

		&lt;!--
		Copia los archivos de PCL dentro de la carpeta de destino
		--&gt;
		&lt;echo message="Copiando archivos PCL desde ${pcl.src.dir}" /&gt;
		&lt;copy todir="${pcl.out.dir}"&gt;
			&lt;fileset refid="pclfiles" /&gt;
		&lt;/copy&gt;
	&lt;/target&gt;

	&lt;!-- Carga la configuracion del servidor de desarrollo de la aplicación --&gt;
	&lt;target
		name="stage"
		description="Construir con la configuracion de desarrollo"&gt;

		&lt;!--
		Llamado a build con la configuracion de desarrollo
		--&gt;
		&lt;phingcall target="build"&gt;
			&lt;property name="config.dir" value="./config/stage" /&gt;
		&lt;/phingcall&gt;

		&lt;echo message="-----------------------------------" /&gt;
		&lt;echo message="  APLICACION CONSTRUIDA CON EXITO  " /&gt;
		&lt;echo message="CONFIGURACION DE DESARROLLO CARGADA" /&gt;
		&lt;echo message="-----------------------------------" /&gt;
	&lt;/target&gt;

	&lt;!-- Carga la configuración del servidor de produccion de la aplicacion --&gt;
	&lt;target
		name="production"
		description="Construir con la configuracion de produccion"&gt;

		&lt;!--
		Llamado a phing con la configuracion de produccion
		--&gt;
		&lt;phingcall target="build"&gt;
			&lt;property name="config.dir" value="./config/production" /&gt;
		&lt;/phingcall&gt;

		&lt;echo message="-----------------------------------" /&gt;
		&lt;echo message="  APLICACION CONSTRUIDA CON EXITO  " /&gt;
		&lt;echo message="CONFIGURACION DE PRODUCCION CARGADA" /&gt;
		&lt;echo message="-----------------------------------" /&gt;
	&lt;/target&gt;
&lt;/project&gt;</pre>
<p style="text-align: justify;">Para construir la aplicación con este archivo, nos vamos por linea de comandos hasta la ruta donde se encuentra nuestro proyecto y ejecutamos:</p>
<pre>Carga la configuración stage por defecto

<code>{RUTA_DEL_PROYECTO}&gt; phing</code>

Carga la configuración de produccion

<code>{RUTA_DEL_PROYECTO}&gt; phing production</code></pre>
<h3>Integracion del PHING con ZSE</h3>
<p style="text-align: justify;">Podemos crear un proyecto en el ZSE que contenga nuestro archivo build.xml y ejecutar el PHING desde el ZSE para construir nuestro proyecto.</p>
<p>Para esto nos vamos al menú <code>Project -&gt; Properties -&gt; Builders -&gt; New... -&gt; Program -&gt; OK</code></p>
<p>Name: Phing</p>
<p>Location: <code>{RUTA_DE_INSTALACIÓN_DEL_PHING}</code></p>
<p>Working Directory: <code>{RUTA_DEL_PROYECTO}</code></p>
<p>Arguments: Aqui se puede colocar que configuración se desea cargar, por defecto toma <code>stage (desarrollo)</code></p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_179" class="wp-caption aligncenter" style="width: 510px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-179" title="phing zse configuration" src="http://www.republicait.com/wp-content/uploads/2009/02/phing-zse-config.jpg" alt="phing and zse" width="500" height="402" /></dt>
</dl>
</div>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/02/24/phing/" title="phing">phing</a></li><li><a href="http://www.republicait.com/2009/02/24/phing/" title="que es phing">que es phing</a></li><li><a href="http://www.republicait.com/2009/02/24/phing/" title="copiar archivo de ruta en dir en java">copiar archivo de ruta en dir en java</a></li><li><a href="http://www.republicait.com/2009/02/24/phing/" title="phing build xml">phing build xml</a></li><li><a href="http://www.republicait.com/2009/02/24/phing/" title="proyecto maven no encuentra xml properties dentro de la carpeta conf">proyecto maven no encuentra xml properties dentro de la carpeta conf</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 2.107 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/02/24/phing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
