<?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; php</title>
	<atom:link href="http://www.republicait.com/tags/php/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>Captura de pantalla de una WEB utilizando WordPress</title>
		<link>http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/</link>
		<comments>http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 14:45:45 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=286</guid>
		<description><![CDATA[En este artículo veremos como tomar el screenshot de página WEB utilizando el servicio de toma de pantallas de Wordpress.]]></description>
			<content:encoded><![CDATA[<p>En este artículo veremos como tomar el screenshot de página WEB utilizando el servicio de toma de pantallas de WordPress.</p>
<p>La URL donde se encuentra este servicio es:</p>
<pre>http://s.wordpress.com/mshots/v1/</pre>
<p>El formato para indicar cual es la página WEB de donde capturar la pantalla es:</p>
<pre>http://s.wordpress.com/mshots/v1/{DIRECCION_URL}?w={WIDTH}</pre>
<p>Donde <code>{DIRECCION_URL}</code> es la dirección URL codificada y <code>{WIDTH}</code> representa el tamaño de la imagen que deseamos generar, asi por ejemplo, si deseamos tomar un screenshot de Google cuyo tamaño sea de 500px el formato seria:</p>
<pre>http://s.wordpress.com/mshots/v1/http%3A%2F%2Fgoogle.com%2F?w=500</pre>
<p>Este servicio lo podemos integrar desde nuestro propio sitio WEB mediante un script PHP el cual reciba como parametros la URL y el tamaño de la imagen.</p>
<p>Ejemplo:</p>
<pre class="brush:php">&lt;?php
//Direccion URL del servicio de wordpress
define('SERVICE_URL','http://s.wordpress.com/mshots/v1/');

/**
* Funcion para tomar screenshots utilizando el servicio de wordpress
* @param string $url
* @param int $width
* @return string
*/
function takeScreenshot($url,$width)
{
    $url = urlencode($url);
    $request = SERVICE_URL."{$url}?w={$width}";
    return $request;
}
?&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Captura de Pantalla de una WEB&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;img src="&lt;?php echo takeScreenshot('http://www.google.com',500); ?&gt;" /&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="que son webs mShots">que son webs mShots</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="capturar pantalla con jquery">capturar pantalla con jquery</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="asp capturar pantallazo pagina web">asp capturar pantallazo pagina web</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="que es un webs mShots">que es un webs mShots</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="que es mShots">que es mShots</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="plugin wordpress captura web">plugin wordpress captura web</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="mshots">mshots</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="jquery captura pantalla de una web">jquery captura pantalla de una web</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="formato de la pantalla en la web">formato de la pantalla en la web</a></li><li><a href="http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/" title="en html capturar la pantalla">en html capturar la pantalla</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 2.844 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/09/22/captura-pantalla-web-wordpress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<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 1.711 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/02/24/phing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando un ambiente de desarrollo &#8211; Parte III</title>
		<link>http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/</link>
		<comments>http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 13:36:22 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[svn commit]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=70</guid>
		<description><![CDATA[En esta sección veremos como configurar el Zend Studio for Eclipse para llevar acabo un proceso de depuración de nuestra aplicación con Zend Debugger.]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>En esta sección veremos como configurar el ZSE con Zend Debugger.</p>
<h3>ZSE y Zend Debugger</h3>
<p style="text-align: justify;">El siguiente paso es configurar el ZSE con el Zend Debugger, por defecto, el ZSE ya viene con los valores predeterminados del Zend Debugger, lo que haremos es verificar esos datos, para esto nos vamos al menu <code>Window -&gt; Preferences</code>, luego navegamos en el arbol hasta el nodo <code>PHP -&gt; Debug -&gt; Installed Debuggers</code>, damos click en <code>Zend Debugger</code> y presionamos el boton <code>Configure</code> para ver sus parametros.</p>
<div id="attachment_74" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-74" title="Zend Studio for Eclipse - Zend Debugger Preferences" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-zd-configuration.jpg" alt="Zend Studio for Eclipse - Zend Debugger Preferences" width="500" height="521" /><p class="wp-caption-text">Zend Studio for Eclipse - Zend Debugger Preferences</p></div>
<p>Dejamos estos valores por defecto.<span id="more-70"></span></p>
<p style="text-align: justify;">El archivo dummy.php es el que establece la conexión con el debugger el cual debemos crear bajo la ruta <code>C:\xampp\htdocs\local.testapp.com</code> con las siguientes líneas de codigo:</p>
<pre class="brush:php">&lt;?php
@ini_set('zend_monitor.enable', 0);
if(@function_exists('output_cache_disable')) {
    @output_cache_disable();
}
if(isset($_GET['debugger_connect']) &amp;&amp; $_GET['debugger_connect'] == 1) {
    if(function_exists('debugger_connect'))  {
        debugger_connect();
        exit();
    } else {
        echo "No connector is installed.";
    }
}
?&gt;</pre>
<p style="text-align: justify;">Ahora vamos crear nuestro archivo <code>testdebug.php</code>, para esto damos click derecho sobre la carpeta <code>testapp [trunk]</code> y nos vamos al menu <code>New -&gt; PHP File</code>, en <code>File Name</code> colocamos <code>testdebug.php</code> y damos click en <code>Finish</code>, hacemos doble click sobre el archivo creado y agregamos las siguientes líneas de codigo:</p>
<pre class="brush:php">&lt;?php
$str = 'Debugger test';
$pattern = '^Deb.*$';
$match = ereg($pattern,$str);
if($match)
{
    echo 'Match';
}
else
{
    echo 'Doesn\'t Match';
}
?&gt;</pre>
<p style="text-align: justify;">Ahora procedemos a crear una configuration para depurar nuestro archivo, para esto nos vamos al menu <code>Run -&gt; Debug Configurations...</code> y damos doble click sobre <code>PHP Web Page</code>, como nombre colocamos <code>TESTAPP-DEBUG-CONFIG</code>; creamos un nuevo servidor PHP que apunte a nuestro host virtual, damos click en el boton <code>New</code>, como nombre colocamos <code>TESTAPP-LOCAL-SERVER</code> y en la URL colocamos <code>http://local.testapp.com</code> y damos click en <code>Finish</code></p>
<div id="attachment_76" class="wp-caption aligncenter" style="width: 550px"><img class="size-full wp-image-76" title="Zend Studio for Eclipse - Debug Configuration" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-debugger-configuration.jpg" alt="Zend Studio for Eclipse - Debug Configuration" width="540" height="419" /><p class="wp-caption-text">Zend Studio for Eclipse - Debug Configuration</p></div>
<p>Damos click en Test Debugger y debemos obtener el mensaje de confirmación</p>
<div id="attachment_79" class="wp-caption aligncenter" style="width: 513px"><img class="size-full wp-image-79" title="Zend Studio for Eclipse - Debugger Success" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-debugger-confirmation.jpg" alt="Zend Studio for Eclipse - Debugger Success" width="503" height="295" /><p class="wp-caption-text">Zend Studio for Eclipse - Debugger Success</p></div>
<p style="text-align: justify;">El siguiente paso es especificar el archivo a depurar, para esto hacemos click en <code>Browse</code> y seleccionamos <code>testapp -&gt; testdebug.php</code>, le quitamos el check a <code>Break at First Line</code>, damos click en <code>Apply</code> y luego en <code>Close</code>.</p>
<div id="attachment_80" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-80" title="Zend Studio for Eclipse - Debugger Configuration Preview" src="http://www.republicait.com/wp-content/uploads/2008/12/zse-debugger-configuration-preview.jpg" alt="Zend Studio for Eclipse - Debugger Configuration Preview" width="500" height="385" /><p class="wp-caption-text">Zend Studio for Eclipse - Debugger Configuration Preview</p></div>
<p style="text-align: justify;">Ahora creamos un <code>break point</code> en nuestro archivo, para esto hacemos doble click sobre cualquier número de línea a la izquierda del código, el <code>break point</code> se debe marcar con un círculo azul. Para iniciar la depuración nos vamos a nuestro ícono del <code>debug</code> y seleccionamos la configuración <code>TESTAPP-DEBUG-CONFIG</code></p>
<div id="attachment_85" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-85" title="Zend Studio for Eclipse - Starting the debugger" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-debugger-start.jpg" alt="Zend Studio for Eclipse - Starting the debugger" width="500" height="321" /><p class="wp-caption-text">Zend Studio for Eclipse - Starting the debugger</p></div>
<p style="text-align: justify;">Al darle click a nuestra configuración, se nos preguntará si deseamos abrir la perspectiva del debugger y le damos <code>Yes</code>, con esto se abre la perspectiva del debugger y estamos listos para depurar nuestro archivo. En esta perspectiva se puede ver diferentes aspectos de nuestro archivo, como por ejemplo valores que toman las variables en tiempo de ejecución hasta el <code>break point</code>, los procesos que se estan ejecutando, etc.</p>
<div id="attachment_87" class="wp-caption aligncenter" style="width: 540px"><img class="size-full wp-image-87" title="Zend Studio for Eclipse - Debugger Perspective" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-debugger-perspective.jpg" alt="Zend Studio for Eclipse - Debugger Perspective" width="530" height="377" /><p class="wp-caption-text">Zend Studio for Eclipse - Debugger Perspective</p></div>
<p style="text-align: justify;">Ya que tenemos todo funcionando, es hora de agregar nuestro archivo al repositorio, para esto, damos click derecho sobre el archivo y nos vamos a <code>Team -&gt; Add to Version Control</code>, inmediatemente veremos que nuestro archivo aparece ahora con un símbolo de más, una vez agregado, le damos un commit a nuestro archivo para que este disponible para los demas programadores, para esto damos click derecho sobre el archivo y nos vamos a <code>Team -&gt; Commit...</code>, escribimos un comentario y damos <code>OK</code>, en caso tal el repositorio este restringido por cuentas de usuario, se les pedirá sus credenciales para hacer el <code>Commit<code>.</code></code></p>
<div id="attachment_92" class="wp-caption aligncenter" style="width: 483px"><img class="size-full wp-image-92" title="Zend Studio for Eclipse - SVN Commit" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-svn-commit-wizard.jpg" alt="Zend Studio for Eclipse - SVN Commit" width="473" height="413" /><p class="wp-caption-text">Zend Studio for Eclipse - SVN Commit</p></div>
<p style="text-align: justify;">Para ver el historial de los cambios realizados, damos click derecho sobre el archivo y nos vamos al menu <code>Team -&gt; Show History</code></p>
<div id="attachment_93" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-93" title="Zend Studio for Eclipse - SVN History" src="http://www.republicait.com/wp-content/uploads/2009/01/zse-svn-history.jpg" alt="Zend Studio for Eclipse - SVN History" width="500" height="189" /><p class="wp-caption-text">Zend Studio for Eclipse - SVN History</p></div>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="zend studio debugger">zend studio debugger</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="debug zend studio">debug zend studio</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="zend studio svn">zend studio svn</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="Configurar Zend Studio">Configurar Zend Studio</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="debug zendstudio">debug zendstudio</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="zend studio debug">zend studio debug</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="como configurar el zend para depurar">como configurar el zend para depurar</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="fichero dummy zend development">fichero dummy zend development</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="function_exists(debugger_connect)">function_exists(debugger_connect)</a></li><li><a href="http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/" title="eclipse debug xampp">eclipse debug xampp</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 2.637 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/01/01/configurando-un-ambiente-de-desarrollo-parte-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Configurando un ambiente de desarrollo &#8211; Parte I</title>
		<link>http://www.republicait.com/2008/12/30/configurando-un-ambiente-de-desarrollo-parte-1/</link>
		<comments>http://www.republicait.com/2008/12/30/configurando-un-ambiente-de-desarrollo-parte-1/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 14:42:35 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[virtual host]]></category>
		<category><![CDATA[xampp]]></category>
		<category><![CDATA[zend debugger]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=1</guid>
		<description><![CDATA[Este artículo es una introducción de como configurar un ambiente de desarrollo de una aplicación WEB basada en php, apache y mysql utilizando XAMPP, Zend Debugger, Zend Studio for Eclipse y Subclipse sobre una plataforma Windows]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p style="text-align: justify;">En este artículo mencionare como configurar un ambiente de desarrollo de una aplicación WEB basada en php, apache y mysql utilizando las siguiente herramientas sobre una plataforma Windows:</p>
<ul>
<li>XAMPP</li>
<li>Zend debugger</li>
<li>Zend Studio for Eclipse (ZSE)</li>
<li>Subclipse</li>
</ul>
<p>Este artículo se divide en 3 partes:</p>
<ul>
<li>Parte I: Configuración de xampp con el Zend Debugger y creando el host virtual de trabajo con Apache.</li>
<li>Parte II: Configuración del ZSE y Subclipse.</li>
<li>Parte III: Configuración del ZSE con el Zend Debugger y ejemplos.</li>
<li>Parte IV: Configuración del ZSE con MySQL.</li>
</ul>
<p>Se asume que tiene conocimientos basicos acerca de:</p>
<ol>
<li>Programación WEB.</li>
<li>Servidores Web</li>
<li>Base de Datos</li>
<li>Subversion</li>
</ol>
<h3>XAMPP</h3>
<p style="text-align: justify;">XAMPP es un paquete preconfigurado conformado por el servidor de base de datos MySQL, el servidor Web Apache  y los ejecutables o intérpretes de los lenguajes de script PHP y PERL. Este paquete lo puedes descargar siguiendo este enlace <a href="http://www.apachefriends.org/download.php?xampp-win32-1.7.0-installer.exe" target="_blank">http://www.apachefriends.org/download.php?xampp-win32-1.7.0-installer.exe</a>. Seguimos los pasos del instalador para tenerlo listo y configurado.<span id="more-1"></span></p>
<blockquote><p><strong>Nota:</strong> Los usuarios de Windows Vista, el paquete puede tener problemas con el UAC.</p></blockquote>
<p style="text-align: justify;">Una vez instalado escribimos en nuestro navegador <code>http://localhost/xampp/phpinfo.php</code> y nos debe aparecer una ventana con la información de la configuración de PHP:</p>
<div id="attachment_16" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-16" title="PHP Info" src="http://www.republicait.com/wp-content/uploads/2008/12/php-info.jpg" alt="PHP Info" width="400" height="308" /><p class="wp-caption-text">PHP Info</p></div>
<h3>Zend Debugger</h3>
<p style="text-align: justify;">Zend Debugger es un servidor que utilizaremos para depurar nuestras aplicaciones hechas con PHP. Se instala como una extensión de PHP. Dado que estamos bajo una plataforma Windows, debemos asegurarnos de escojer la version correcta del debugger, para nuestro caso, el archivo se llama (actualmente)<code> ZendDebugger-{VERSION}-cygwin_nt-i386.zip</code>. Puedes descargarlo siguiendo este enlace <a href="http://downloads.zend.com/pdt/server-debugger/" target="_blank">http://downloads.zend.com/pdt/server-debugger/</a>. Una vez descargado lo descomprimimos en una carpeta temporal.</p>
<blockquote><p><strong>Nota:</strong> Antes de instalar el debugger debemos fijarnos en la versión de PHP que esta instalada y el valor de la configuración <code>Thread Safety</code>. Esto valores se pueden verificar entrando a nuestra página <code>http://localhost/xampp/phpinfo.php</code></p></blockquote>
<p style="text-align: justify;">Una vez con los archivos descomprimidos, entramos a la carpeta  con el nombre de la versión de PHP instalado con el postfijo <code>_comp</code>, en caso tal el valor de  <code>Thread Safety</code>, sea <code>Disabled</code>, debemos escojer la carpeta <code>{PHP_VERSION}_nts_comp</code></p>
<div id="attachment_22" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-22" title="Zend Debugger Folders" src="http://www.republicait.com/wp-content/uploads/2008/12/zend-debugger-folders.jpg" alt="Zend Debugger Folders" width="400" height="308" /><p class="wp-caption-text">Zend Debugger Folders</p></div>
<p style="text-align: justify;">Dentro de la carpeta correcta, copiamos el archivo <code>ZendDebugger.dll</code> a la carpeta de extensiones de PHP, este valor lo podemos encontrar en el phpinfo, la propiedad <code>extension_dir</code>.</p>
<p style="text-align: justify;">El siguiente paso es configurar nuestro archivo <code>php.ini</code>, para saber donde se encuentra este archivo, nos fijamos en el valor de la propiedad <code>Loaded Configuration File</code> de nuestro <code>phpinfo</code>, usualmente está ubicado en la ruta <code>{XAMPP_INSTALLED_DIR}/apache/bin (ejemplo: C:\xampp\apache\bin)</code>. Lo primero es deshabilitar las siguientes líneas:</p>
<pre class="brush:plain">[Zend]
;zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
;zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
;zend_optimizer.enable_loader = 0
;zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:</pre>
<p>Luego agregamos las siguientes líneas para habilitar la extension con el debugger:</p>
<pre class="brush:plain">zend_extension_ts = "C:\xampp\php\ext\ZendDebugger.dll"
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always</pre>
<p>Lo cual nos daría como resultado la siguiente configuración:</p>
<pre class="brush:plain">[Zend]
zend_extension_ts = "C:\xampp\php\ext\ZendDebugger.dll"
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always
;zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
;zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
;zend_optimizer.enable_loader = 0
;zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:</pre>
<p>Guardamos los cambios y reiniciamos el servidor apache.</p>
<blockquote><p><strong>Nota:</strong> No sobreescribo el valor de la propiedad zend_extension_ts para tener un respaldo de su valor inicial</p>
<p><strong>Nota:</strong> En caso tal el valor de <code>Thread Safety</code> sea <code>Disabled</code>, la propiedad a cambiar debería ser <code>zend_extension</code>, el postfijo <code>_ts</code> es un acronímo de <code>Thread Safety</code>.</p></blockquote>
<p style="text-align: justify;">Una vez reiniciado el servidor apache, verificamos en nuestro phpinfo si la extension ha sido cargada con exito, para esto nos fijamos en la información del Zend Engine</p>
<div id="attachment_24" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-24" title="Zend Debugger enabled in the Zend Engine" src="http://www.republicait.com/wp-content/uploads/2008/12/zend-debugger-php-info-1.jpg" alt="Zend Debugger enabled in the Zend Engine" width="400" height="54" /><p class="wp-caption-text">Zend Debugger enabled in the Zend Engine</p></div>
<p>La otra opción es buscar la sección de configuración del Zend Debugger:</p>
<div id="attachment_25" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-25" title="Zend Debugger configuration section" src="http://www.republicait.com/wp-content/uploads/2008/12/zend-debugger-php-info-2.jpg" alt="Zend Debugger configuration section" width="400" height="308" /><p class="wp-caption-text">Zend Debugger configuration section</p></div>
<h3>Host Virtuales con Apache</h3>
<p style="text-align: justify;">El término host virtual se emplea cuando un mismo servidor Web puede servir mas de un solo host, pareciendo multiples dominios. Así por ejemplo, local.testsvn.com y local.zendtest.com pueden parecer diferentes dominios pero residen bajo el mismo servidor.</p>
<p style="text-align: justify;">Para nuestro ejemplo, crearemos un host virtual que contendrá los archivos  de nuestra aplicación Web, lo creamos bajo la ruta <code>{XAMPP_INSTALLED_DIR}/htdocs/local.testapp.com</code>.</p>
<p style="text-align: justify;">El contenido del archivo <code>{XAMPP_INSTALLED_DIR}/apache/conf/extra/httpd-vhosts.conf</code> debe verse algo como</p>
<pre class="brush:plain">#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any &lt;VirtualHost&gt; block.
#
&lt;VirtualHost *:80&gt;
ServerAdmin admin@localhost
DocumentRoot C:\xampp\htdocs
ServerName localhost
##    ServerAlias www.dummy-host.example.com
ErrorLog logs/error.log
CustomLog logs/access.log common
&lt;/VirtualHost&gt;

&lt;VirtualHost *:80&gt;
ServerAdmin admin@local.testapp.com
DocumentRoot C:\xampp\htdocs\local.testapp.com
ServerName local.testapp.com
#ErrorLog logs/dummy-host2.example.com-error_log
#CustomLog logs/dummy-host2.example.com-access_log common
&lt;/VirtualHost&gt;</pre>
<p>Hay que agregar el nombre de nuestro host virtual en el archivo <code>hosts</code> de Windows ubicado en <code>%WINDIR%\System32\drivers\etc</code>, el cual quedaria algo como:</p>
<pre class="brush:plain">#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

127.0.0.1       localhost
127.0.0.1       local.testapp.com</pre>
<p style="text-align: justify;">Una vez configurados ambos archivos, reiniciamos nuestro servidor Apache y escribimos en el navegador <code>http://local.testapp.com/</code> y si todo esta bien, nos debe cargar la lista de directorios por default.</p>
<blockquote><p><strong>Nota:</strong> No se recomienda colocar host virtuales dentro del <code>DOCUMENT_ROOT</code> del servidor</p></blockquote>
<p>Para más información acerca de hosts virtuales con Apache, puede dirigirse a este enlace <a href="http://httpd.apache.org/docs/1.3/vhosts/" target="_blank">http://httpd.apache.org/docs/1.3/vhosts/</a></p>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2008/12/30/configurando-un-ambiente-de-desarrollo-parte-1/" title="como sobreescribo un operador en c#">como sobreescribo un operador en c#</a></li><li><a href="http://www.republicait.com/2008/12/30/configurando-un-ambiente-de-desarrollo-parte-1/" title="host virtuales en tomcat zip">host virtuales en tomcat zip</a></li><li><a href="http://www.republicait.com/2008/12/30/configurando-un-ambiente-de-desarrollo-parte-1/" title="modificar configuracion Thread Safety php de hosting">modificar configuracion Thread Safety php de hosting</a></li><li><a href="http://www.republicait.com/2008/12/30/configurando-un-ambiente-de-desarrollo-parte-1/" title="php thread safe">php thread safe</a></li><li><a href="http://www.republicait.com/2008/12/30/configurando-un-ambiente-de-desarrollo-parte-1/" title="phpinfo temporal">phpinfo temporal</a></li><li><a href="http://www.republicait.com/2008/12/30/configurando-un-ambiente-de-desarrollo-parte-1/" title="red5 host virtuales">red5 host virtuales</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 3.185 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2008/12/30/configurando-un-ambiente-de-desarrollo-parte-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
