<?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>Blog -  El TallerWeb &#187; Zend Framework 2</title>
	<atom:link href="http://blog.eltallerweb.com/tag/zend-framework-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.eltallerweb.com</link>
	<description>Blog para apasionados al diseño y desarrollo Web</description>
	<lastBuildDate>Tue, 16 Jun 2015 20:26:30 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>Usar stored procedures desde Zend Framework 2</title>
		<link>http://blog.eltallerweb.com/usar-stored-procedures-desde-zend-framework-2/</link>
		<comments>http://blog.eltallerweb.com/usar-stored-procedures-desde-zend-framework-2/#comments</comments>
		<pubDate>Mon, 18 May 2015 22:06:47 +0000</pubDate>
		<dc:creator><![CDATA[igormx]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Zend Framework 2]]></category>
		<category><![CDATA[base de datos]]></category>

		<guid isPermaLink="false">http://blog.eltallerweb.com/?p=809</guid>
		<description><![CDATA[En esta ocasión veremos cómo usar stored procedures desde Zend Framework 2, en realidad, ejecutar o llamar un stored procedure no es muy diferente de ejecutar cualquier otra consulta. Pero veamos un ejemplo para ver ]]></description>
				<content:encoded><![CDATA[<p><!-- P { margin-bottom: 0.08in; } --><span style="font-family: DejaVu Sans,sans-serif;">En esta ocasión veremos cómo usar stored procedures desde Zend Framework 2, en realidad, ejecutar o llamar un stored procedure no es muy diferente de ejecutar cualquier otra consulta. Pero veamos un ejemplo para ver esto más claramente.</span></p>
<p><span style="font-family: DejaVu Sans,sans-serif;">Partamos de una tabla en MySQL con el siguiente contenido:</span></p>
<p><span style="font-family: FreeMono,monospace;">+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+ </span></p>
<p><span style="font-family: FreeMono,monospace;">| cvepedido | total | usuario | status | </span></p>
<p><span style="font-family: FreeMono,monospace;">+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+ </span></p>
<p><span style="font-family: FreeMono,monospace;">| 1 | 82.65 | 4 | abierta | </span></p>
<p><span style="font-family: FreeMono,monospace;">| 2 | 11.60 | 7 | abierta | </span></p>
<p><span style="font-family: FreeMono,monospace;">| 3 | 76.56 | 10 | cerrada | </span></p>
<p><span style="font-family: FreeMono,monospace;">| 4 | 50.23 | 7 | cerrada | </span></p>
<p><span style="font-family: FreeMono,monospace;">| 5 | 65.43 | 4 | cancelada | </span></p>
<p><span style="font-family: FreeMono,monospace;">| 6 | 91.03 | 5 | cancelada | </span></p>
<p><span style="font-family: FreeMono,monospace;">| 7 | 40.69 | 8 | cancelada | </span></p>
<p><span style="font-family: FreeMono,monospace;">| 8 | 53.92 | 5 | cancelada | </span></p>
<p><span style="font-family: FreeMono,monospace;">| 9 | 58.28 | 6 | abierta | </span></p>
<p><span style="font-family: FreeMono,monospace;">| 10 | 21.96 | 4 | enviada | </span></p>
<p><span style="font-family: FreeMono,monospace;">| 11 | 92.72 | 7 | enviada | </span></p>
<p><span style="font-family: FreeMono,monospace;">+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+ </span></p>
<p><span style="font-family: DejaVu Sans,sans-serif;">De esta tabla lo más importante para nuestro ejemplo serám las columna total y status, pues las usaremos en el siguiente stored procedure:</span></p>
<p><span style="font-family: FreeMono,monospace;">CREATE PROCEDURE promedioStatus(IN estado varchar(20),OUT promedio float(10,2)) </span></p>
<p><span style="font-family: FreeMono,monospace;">BEGIN </span></p>
<p><span style="font-family: FreeMono,monospace;">select AVG(total) into promedio from pedidos where status=estado; </span></p>
<p><span style="font-family: FreeMono,monospace;">END</span></p>
<p><span style="font-family: DejaVu Sans,sans-serif;">Este procedimiento, es simple, recibe 2 parámetros uno de entrada y otro de salida, el de entrada es el status que se usará para calcular el promedio del total de los pedidos, promedio que será almacenada en el parametro de entrada “promedio”.</span></p>
<p><span style="font-family: DejaVu Sans,sans-serif;">Ahora entramos al Zend Framework 2 usaremos un patrón Table Module con el componente Zend\Db de Zend Framework 2. Lo primero sería colocar la configuración de BD y el adaptador.</span></p>
<pre class="brush: php; title: ; notranslate">

&lt;?php
return array(

'db' =&gt; array(

'driver' =&gt; 'pdo_mysql',

'host' =&gt; 'localhost',

'username' =&gt; 'xxxx',

'password' =&gt; 'xxxxxxxx',

'dbname' =&gt; 'xxxxxx'

),

'service_manager' =&gt; array(

'factories' =&gt; array(

'DbAdapter' =&gt; 'Zend\Db\Adapter\AdapterServiceFactory'

)

)

);

</pre>
<p><span style="font-family: DejaVu Sans,sans-serif;">Ahora hay que crear la clase para la Tabla</span></p>
<pre class="brush: php; title: ; notranslate">

&lt;?php

namespace Application\Model;

use Zend\Db\TableGateway\TableGateway;

use Zend\Db\Adapter\Adapter;

class PedidosTable

{

/**
*
* @var TableGateway
*/

protected $tableGateway;

public function __construct(Adapter $adapter)

{

$this-&gt;tableGateway=new TableGateway('pedidos', $adapter);

}

}

</pre>
<p align="LEFT"><span style="color: #000000;"><span style="font-family: DejaVu Sans,sans-serif;"><span style="font-size: small;">Aquí en el constructor recibimos el adaptador de BD y creamos el Objeto TableGateway que estará dentro de una propiedad, desde el podremos llamar cualquier operación de BD y la idea es envolver esas operaciónes, querys y llamadas a store procedures dentro de métodos que describan esas operaciones en terminos de funcionalidad de clase y no funcionalidad de tabla, es decir que digan, insertar, actualizar, borrar, sino, obtener, cambiar, quitar.</span></span></span></p>
<p align="LEFT"><span style="color: #000000;"><span style="font-family: DejaVu Sans,sans-serif;"><span style="font-size: small;">Así creamos el siguiente método que ejecuta nuestro stored procedure:</span></span></span></p>
<pre class="brush: php; title: ; notranslate">

public function obtenerPromedio($status)

{

$sql=&quot;CALL promedioStatus('{$status}',@res)&quot;;

$statement = $this-&gt;tableGateway-&gt;getAdapter()-&gt;createStatement($sql);

$statement-&gt;execute();

$query = $this-&gt;tableGateway-&gt;getAdapter()-&gt;query(&quot;select @res as resultado&quot;);

$fila=$query-&gt;execute();

$resultado=$fila-&gt;current();

return $resultado['resultado'];

}

</pre>
<p align="LEFT"> <span style="color: #000000;"><span style="font-family: DejaVu Sans,sans-serif;"><span style="font-size: small;">Dentro de este módulo tomamos el adaptador y creamos una sentencia que llame nuestro store procedure y lo ejecutamos, el resultado se almacenará en la variable @res, luego simplemente hay que hacer un query que seleccione esa variable y hacer un fetch de ese resultado.</span></span></span></p>
<p align="LEFT"> <span style="color: #000000;"><span style="font-family: DejaVu Sans,sans-serif;"><span style="font-size: small;">Lo que seguiría sería crear un servicio de esta clase para poder invocarla desde cualquier lugar donde tangamos acceso desde cualquier lugar en el que exista </span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eltallerweb.com/usar-stored-procedures-desde-zend-framework-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Server 6 Beta</title>
		<link>http://blog.eltallerweb.com/zend-server-6-beta/</link>
		<comments>http://blog.eltallerweb.com/zend-server-6-beta/#comments</comments>
		<pubDate>Mon, 31 Dec 2012 15:27:22 +0000</pubDate>
		<dc:creator><![CDATA[jmosqueda]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[prueba]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[Zend Framework 2]]></category>
		<category><![CDATA[Zend Server 6]]></category>

		<guid isPermaLink="false">http://blog.eltallerweb.com/?p=460</guid>
		<description><![CDATA[Por Lillian Domínguez Implementación, monitoreo y administración de aplicaciones como nunca antes. Zend Server 6 está disponible para la evaluación en Windows y Linux, y estará disponible en IBM a principios del 2013. Algunas de ]]></description>
				<content:encoded><![CDATA[<p>Por Lillian Domínguez</p>
<p>Implementación, monitoreo y administración de aplicaciones como nunca antes.</p>
<p>Zend Server 6 está disponible para la evaluación en Windows y Linux, y estará disponible en IBM a principios del 2013. Algunas de las nuevas características incluyen la capacidad para organizar el acceso al servidor de Zend por rol, aprovechar la autenticación LDAP y generar estadísticas sobre el uso de la aplicación y sitio web. Ahora podrás:</p>
<ul>
<li><strong>Entender tus aplicaciones:</strong> Administrar aplicaciones, no servidores, comprender el rendimiento de la aplicación y solucionar problemas de manera instantánea incluso después del hecho, con un sistema de monitoreo mejorado, reglas de almacenamiento en caché, visualización del rendimiento y diagnóstico instantáneo.</li>
<li><strong>Escala hacia la nube:</strong> Se diseña para permitir la alta disponibilidad y escalabilidad en la nube y en local, con servicios de gestión de usuarios, incluyendo IBM, VMware, Red Hat, RightScale, Amazon y otros. Las versiones de producción de Zend Server vienen con soporte telefónico hasta de 24 x 7 x 365, las revisiones de seguridad y actualizaciones a la medida en PHP y Zend Framework (incluyendo versiones anteriores como PHP 5.2).</li>
<li><strong>Asegurar el cumplimiento de la empresa:</strong> Zend Server 6 ayuda como puente en el abismo Desarrollo-Operaciones, permitiendo diferentes niveles de acceso de la producción basado en el rol para depurar un problema presentado en operación con sistemas de auditorias, permitiendo a operaciones conservar el control completo del sistema y la configuración, los desarrolladores  tienen la suficiente visibilidad en el entorno de producción para solucionar problemas sin arriesgar la seguridad de los sistemas de producción, e integración con sistemas de gestión de usuario existentes LDAP.</li>
<li><strong>Usa PHP 5.4 y ZF2: </strong>Zend Server 6 incluye un motor de tiempo de ejecución de PHP 5.4 probado, certificado y compatible, la versión más reciente de la mayor de las bibliotecas de marco, y licencias de producción que incluyen soporte técnico y correcciones de errores para Zend Framework 2.</li>
</ul>
<p>Pruébalo!, descárgalo aquí: <a href="http://www.zend.com/en/products/server/downloads-beta?src=downloadb">http://www.zend.com/en/products/server/downloads-beta?src=downloadb</a></p>
<p>Si requieres asesoría de las soluciones Zend te podremos ayudar, visita: <a href="http://eltallerweb.com">ElTallerWeb.com</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eltallerweb.com/zend-server-6-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El nuevo sistema de Módulos de Zend Framework 2</title>
		<link>http://blog.eltallerweb.com/el-nuevo-sistema-de-modulos-de-zend-framework-2/</link>
		<comments>http://blog.eltallerweb.com/el-nuevo-sistema-de-modulos-de-zend-framework-2/#comments</comments>
		<pubDate>Fri, 28 Dec 2012 19:56:06 +0000</pubDate>
		<dc:creator><![CDATA[igormx]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[configuracion]]></category>
		<category><![CDATA[módiulos]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[Zend Framework 2]]></category>

		<guid isPermaLink="false">http://blog.eltallerweb.com/?p=457</guid>
		<description><![CDATA[Por Carlos Nacianceno, @igormx En Zend Framework 2 se introduce un nuevo sistema de manejo de módulos. Si bien ZF1 ya contaba con un sistema modular, éste tenía algunas limitantes como poca flexibilidad, soporte limitado ]]></description>
				<content:encoded><![CDATA[<p>Por Carlos Nacianceno, @igormx</p>
<p>En Zend Framework 2 se introduce un nuevo sistema de manejo de módulos. Si bien ZF1 ya contaba con un sistema modular, éste tenía algunas limitantes como poca flexibilidad, soporte limitado para su reutilización y distribución.</p>
<p>Los módulos en ZF2 son flexibles porque, no tienen que forzosamente estar atados al MVC, pueden contentener sólo servicios,<em> plugins,</em> librerías como <em>Doctrine</em> o controladores, todo eso y más, es decir, no debe de tener un solo uso.</p>
<p>En cuanto a la reutilización y distribución los módulos en ZF2 es extremadamente sencilla, por ejemplo, con el simple hecho de copiar nuestro módulo a otro proyecto y activarlo en el archivo de configuración del mismo ya será tomado en cuenta. Esto permite a los desarrolladores crear módulos comunes y aplicarlos en varios proyectos. Aquí también entra la distribución que puede ser hecha manualmente o a través de Composer, Packagist, GitHub, Pyrus o <a href="http://modules.zendframework.com/">http://modules.zendframework.com/.</a> También puedes usar modulos que otros programadores o empresas ofrecen.</p>
<p>Los módulos deben de tener un nombre de directorio válido (este nombre también será el <em>namespace</em>), un archivo Module.php y una clase Module dentro de él. Al estar registrado en la configuración el Module Manager de ZF2 buscará la clase y ejecutará los eventos registrados primero de inicialización y si es necesario de ejecución. Entre estos eventos tenemos el ServiceListener,OnBoostrapListener y otros.</p>
<p>Espero que esta introducción les sea útil. Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eltallerweb.com/el-nuevo-sistema-de-modulos-de-zend-framework-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lo nuevo en Zend Framework 2</title>
		<link>http://blog.eltallerweb.com/lo-nuevo-en-zend-framework-2/</link>
		<comments>http://blog.eltallerweb.com/lo-nuevo-en-zend-framework-2/#comments</comments>
		<pubDate>Fri, 30 Nov 2012 19:09:02 +0000</pubDate>
		<dc:creator><![CDATA[jmosqueda]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[capacitacion]]></category>
		<category><![CDATA[entrenamiento]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[Zend Framework 2]]></category>

		<guid isPermaLink="false">http://blog.eltallerweb.com/?p=399</guid>
		<description><![CDATA[Por Lillian Domínguez Zend Framework es un kit de desarrollo de software OpenSource para aplicaciones PHP, que brinda herramientas al desarrollador para ayudarle a ser más productivo al enfocarse en el diseño global de su ]]></description>
				<content:encoded><![CDATA[<p>Por Lillian Domínguez</p>
<p>Zend Framework es un kit de desarrollo de software OpenSource para aplicaciones PHP, que brinda herramientas al desarrollador para ayudarle a ser más productivo al enfocarse en el diseño global de su aplicación. Zend Framework 2 (ZF2) proporciona una funcionalidad robusta adecuada,fue creado para:</p>
<ul>
<li>GitHub</li>
<li>Construcción de aplicaciones web y servicios</li>
<li>Código 100% orientado a Objetos</li>
<li>Flexibilidad en mente</li>
<li>Simplicidad en uso de componentes</li>
<li>MVC flexible</li>
</ul>
<p>Requiere un PHP 5.3.3 o superior, No es necesario instalar todo el Framework  y tiene Licencia <em>Berkeley Software Distribution &#8211; </em>BSD</p>
<p>Lo nuevo:</p>
<ul>
<li>Se re-factorizaron componentes a PHP 5.3</li>
<li>Varios componentes de ZF1 ya no están en ZF2</li>
<li>Ya no se utiliza Front Controller</li>
<li>Coding Standard cambió</li>
</ul>
<p>Nueva arquitectura:</p>
<ul>
<li>Autoloaders
<ul>
<li>Autoloader Factory</li>
<li>ClassmapAutoloader</li>
<li>StandardAutoloader</li>
</ul>
</li>
<li>Event manager
<ul>
<li>Casi todo se ejecuta por eventos</li>
<li>Static EventManager</li>
<li>Shared  Event Manager</li>
</ul>
</li>
<li>Service Manager</li>
<li>Módulos</li>
</ul>
<p>¿Cómo utilizar ZF2?</p>
<ul>
<li>Clonar zendframework/ZendSkeletonapplication</li>
<li>Usar Zend Studio 10 para crear proyecto</li>
<li>Usar PHP Cloud  creando el proyecto en la nube</li>
<li>Descargar Framework, ponerlo en el include _path y crear la estructura de directorios a mano.</li>
</ul>
<p>Para conocer más sobre su funcionamiento, ingresa a ver nuestro webinario “Zend Framework 2 Introducción” en el siguiente link:<br />
<a href="https://netmx.webex.com/netmx/ldr.php?AT=pb&amp;SP=MC&amp;rID=6070242&amp;rKey=b166628aba0628d1" target="_blank">https://netmx.webex.com/netmx/ldr.php?AT=pb&amp;SP=MC&amp;rID=6070242&amp;rKey=b166628aba0628d1</a></p>
<p>Te apoyamos con el entrenamiento profesional en ZF2 con nuestros cursos en línea programado en sesiones de 2 horas diarias con instructores certificados en tecnología Zend, nuestro proximo curso &#8220;ZF2 Fundamentos&#8221; es el 21 de enero de 2013.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eltallerweb.com/lo-nuevo-en-zend-framework-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
