tag:blogger.com,1999:blog-194505322024-03-07T15:56:26.694-03:00PHP SeniorComo convertirse en un "Desarrollador PHP Senior" y no morir en el intento... escrito por <u><a href="http://enriqueplace.blogspot.com">Enrique Place</a></u>Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.comBlogger314125tag:blogger.com,1999:blog-19450532.post-84836518040544502732020-11-29T11:00:00.002-03:002020-11-29T11:02:40.821-03:00PHP 8.0.0 Released!<p></p><div class="separator" style="clear: both;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLKpP0ZL_WchZRunwV1VGaQLpvK2rVJITryc97IKc2_oa5QPQjBsQLsGPP3jz3ALnhOAYVm5gm9WCDfS7lZMLvf3Fb5row8D2FNje7Or4Ia5hST_p_tGldtlhVGOLtgXZm7qm9kg/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="286" data-original-width="431" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLKpP0ZL_WchZRunwV1VGaQLpvK2rVJITryc97IKc2_oa5QPQjBsQLsGPP3jz3ALnhOAYVm5gm9WCDfS7lZMLvf3Fb5row8D2FNje7Or4Ia5hST_p_tGldtlhVGOLtgXZm7qm9kg/" width="320" /></a></div><br /><div style="text-align: center;"><i>"PHP 8.0 es una actualización importante del lenguaje PHP que contiene nuevos recursos y optimizaciones incluyendo argumentos nombrados, tipos de uniones, atributos, promoción de propiedades constructivas, expresiones match, operador nullsafe, JIT (traducción dinámica) y también mejoras en el sistema de tipos, manejo de errores y consistencia en general"</i>.</div></div><br />26/11/2020<br /><p></p><p><b>Fuente</b>: https://www.php.net/releases/8.0/es.php?lang=es</p><p><br /></p>Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-19743142511044771702019-07-07T09:54:00.001-03:002020-05-25T23:45:06.567-03:00Fira Code: monospaced font with programming ligatures <a href="https://github.com/tonsky/FiraCode">https://github.com/tonsky/FiraCode</a><br />
<br />
<img height="225" src="https://pbs.twimg.com/media/D-0xNSIWsAEyKA6.png" width="400" />Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-25544788530121202972017-02-01T10:53:00.000-03:002017-04-22T15:31:06.735-03:00Tips: borrar paquetes viejos de PHP 7.0 si estás migrando a PHP 7.1 (Ubuntu)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBLLs80MVc1ok8RhIViprzkk8xjcUb-9-4eiamOUVNtlzjBKXhI0UDADJ9mHLNuvAsl-1UfhAnUB9gdBW2wSHmPIHcREGC7NjC7DvZaNbEDDM8DbgnEH4XJpjC2D9QZzUdeG69Yw/s1600/php7_logo_white-300x143.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="95" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBLLs80MVc1ok8RhIViprzkk8xjcUb-9-4eiamOUVNtlzjBKXhI0UDADJ9mHLNuvAsl-1UfhAnUB9gdBW2wSHmPIHcREGC7NjC7DvZaNbEDDM8DbgnEH4XJpjC2D9QZzUdeG69Yw/s200/php7_logo_white-300x143.jpg" width="200" /></a></div>
<br />
<br />
Puede pasar que estás instalando paquetes y te diste cuenta que hay cosas que no están funcionando correctamente. Por ejemplo, si estás instalando PHP 7.1, puede ser que te queden paquetes anteriores de PHP 7.0 que no desinstalaste, por lo que este comando te puede ayudar a solucionarlo:<br />
<br />
<b> sudo apt-get purge php7.0-common
</b><br />
<br />
Reading package lists... Done<br />
Building dependency tree <br />
Reading state information... Done<br />
The following packages will be REMOVED:<br />
<b> libapache2-mod-php7.0* php7.0-cli* php7.0-common* php7.0-curl* php7.0-gd* php7.0-json* php7.0-mbstring* php7.0-mysql* php7.0-opcache* php7.0-readline*</b><br />
<b> php7.0-sqlite3* php7.0-xml*</b><br />
0 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.<br />
After this operation, 16,7 MB disk space will be freed.<br />
Do you want to continue? [Y/n] Y<br />
<br />
<b>UPDATE: </b>encontré un buen resumen en <a href="https://ayesh.me/Ubuntu-PHP-7.1">https://ayesh.me/Ubuntu-PHP-7.1</a><br />
<div>
<br /></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-33763094595989800332017-01-08T23:43:00.000-03:002017-01-09T00:33:09.322-03:00Tips: cómo resolver el cálculo de un factorial usando recursividad (PHP7)<br />
Por lo general no es muy común que en PHP, y trabajando con sistemas comerciales, tengamos que implementar soluciones <a href="https://es.wikipedia.org/wiki/Recursi%C3%B3n">recursivas</a>. Pero como tampoco es imposible, les paso un ejemplo. Tengamos en cuenta que aunque parezca obvio:<br />
<div>
<br /></div>
<div>
<b>a) el problema debe ser "un problema recursivo" </b>(que tenga sentido aplicar la recursividad)</div>
<div>
<br /></div>
<div>
<b>b) cuando se trabaja con recursión, debe existir el caso "resoluble directo"</b>, que permite salir de la recursión (o entraríamos en <a href="https://es.wikipedia.org/wiki/Bucle_infinito">loop infinito</a>).<br />
<br />
El ejemplo más clásico es el cálculo de un <a href="https://es.wikipedia.org/wiki/Factorial">factorial</a>. <b>Si factorial de 5 se calcula 1 x 2 x 3 x 4 x 5</b>, por lo tanto podemos hacer un método que reciba el número a calcular, y posteriormente se va a ir llamando a sí mismo restando 1, hasta llegar al caso "resoluble directo", es decir 0, posteriormente iniciará el retorno recursivo y haciendo el cálculo "al revés" de la invocación inicial (revisar ejecución al final del ejemplo).<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAwhBcs4KGYL-kjsOYjtrdstvOLfXb2j_eM4ggClyg3inF98dCnpR5x8M-KxcQL_tJwd-jDkZ8ARDwbk-4SD7uLQTcynYwj8fEh9g4hoJTnJ5fhXuTeWRuxhnBfZS8G1MEnr3VCQ/s1600/20151028061004_php7-1.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="101" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAwhBcs4KGYL-kjsOYjtrdstvOLfXb2j_eM4ggClyg3inF98dCnpR5x8M-KxcQL_tJwd-jDkZ8ARDwbk-4SD7uLQTcynYwj8fEh9g4hoJTnJ5fhXuTeWRuxhnBfZS8G1MEnr3VCQ/s200/20151028061004_php7-1.jpg" width="200" /></a><br />
PD: de paso, <b>lo hacemos usando PHP 7 o superior</b>. Si bien en este ejemplo no se aprovecha mucho, está bueno que nos empecemos a acostumbrar a las nuevas funcionalidades que trae (como en este caso, <a href="http://php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration">la validación de tipos</a> tanto en el input como en el output).<br />
<br />
<span style="background-color: white; color: #ff8000; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">/**<br /> * Cómo resolver el cálculo de un factorial usando recursividad<br /> *<br /> * factorial de 5 = 1 x 2 x 3 x 4 x 5<br /> *<br /> */</span><br />
<span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><br /></span>
<span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">class </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">Factorial</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">{<br /> <br /> public function </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">calcular</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">(int </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$numero</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">) : int<br /> {<br /> <br /> if (</span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$numero </span><span style="background-color: white;">> </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">0</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">) {</span><br />
<span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"> <br /> </span><span style="background-color: white; color: #ff8000; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">// entro en la recursividad ...<br /> </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$aux </span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">= </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$this</span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><span style="color: #007700; font-size: 13.3333px;">-></span>calcular</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">(</span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$numero </span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">- </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">1</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">);</span><br />
<span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"> <br /> </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$calculo </span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">= </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$aux </span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">* </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$numero</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">;<br /> echo </span><span style="background-color: white; color: #dd0000; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">"</span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$aux</span><span style="background-color: white; color: #dd0000; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"> * </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$numero</span><span style="background-color: white; color: #dd0000; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"> = </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$calculo</span><span style="background-color: white; color: #dd0000; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"> \n"</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">;<br /> <br /> return </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$calculo</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">;<br /> } else {<br /> </span><span style="background-color: white; color: #ff8000; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">// caso resoluble directamente ...<br /> </span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">return </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">1</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">;<br /> }<br /> }<br />}</span><br />
<span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><br /></span>
<span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$factorial </span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">= new </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">Factorial</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">();<br /><br />echo </span><span style="background-color: white; color: #dd0000; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">"resultado = " </span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">. </span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">$factorial</span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><span style="color: #007700; font-size: 13.3333px;">-></span>ca</span><span style="background-color: white; color: #0000bb; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">lcular</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">(</span><span style="background-color: white; color: #dd0000; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">5</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">) . </span><span style="background-color: white; color: #dd0000; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">" \n"</span><span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">;</span><br />
<span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><br /></span>
<span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><br /></span>
<span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">// Ejecución</span><br />
<span style="background-color: white; color: #007700; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><br /></span>
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">php index.php </span><br />
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><br /></span>
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">1 * 1 = 1 </span><br />
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">1 * 2 = 2 </span><br />
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">2 * 3 = 6 </span><br />
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">6 * 4 = 24 </span><br />
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">24 * 5 = 120 </span><br />
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">resultado = 120 </span><br />
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><br /></span>
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">Espero que les resulte útil! ;-) </span><br />
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><br /></span>
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;">Espero todas sus dudas! </span><br />
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><br /></span>
<span style="background-color: white; font-family: monospace; font-size: 13.3333px; white-space: nowrap;"><br /></span></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com2tag:blogger.com,1999:blog-19450532.post-63383169160223719742017-01-08T18:21:00.000-03:002017-04-22T15:29:56.317-03:00PHP 7.1: cómo instalarlo en Ubuntu<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG5KilqrziIQSLf1hCaPJPxb6xfINShtGuSzSfXWufhEddoH0CD1aiLyw2hO4smWNHAOA_cI5LtLtcz7rxVMgYOwA9_ZOc-yTQEsF9895RoX2L80yUGgf4i0hVbtKqgQOyK-qwKg/s1600/ubuntu.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG5KilqrziIQSLf1hCaPJPxb6xfINShtGuSzSfXWufhEddoH0CD1aiLyw2hO4smWNHAOA_cI5LtLtcz7rxVMgYOwA9_ZOc-yTQEsF9895RoX2L80yUGgf4i0hVbtKqgQOyK-qwKg/s1600/ubuntu.png" /></a>Para quienes quieren probar PHP 7.1 en Ubuntu, ya que actualmente no está disponible como paquete oficial de instalación, pueden seguir los siguientes pasos:<br />
<br />
<br />
<b>sudo add-apt-repository ppa:ondrej/php</b><br />
<div>
<b><br />sudo apt-get update</b></div>
<div>
<b><br />sudo apt-get upgrade</b></div>
<div>
<b><br />(optional) sudo apt-get remove php7.0</b></div>
<div>
<b><br />sudo apt-get install php7.1</b></div>
<div>
<br />
<br />
<h2>
Anexo (otros paquetes que puedes necesitar)</h2>
<b><br />sudo apt-get install php7.1-mbstring
</b><br />
<b><br /></b></div>
<div>
<b>sudo apt-get install php7.1-xml</b></div>
<div>
<br /></div>
<div>
Instalación probada en Ubuntu 16.04 / 17.04 LTS sin problemas.</div>
<div>
<br /></div>
<div>
Saludos! </div>
<div>
<br /></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-53808402459684322152016-12-04T16:10:00.003-03:002016-12-04T16:11:40.786-03:00PHP 7.1, para tener en cuenta<img height="150" src="https://d262ilb51hltx0.cloudfront.net/max/1000/1*QBHUFfVLlex5BJNbZkoDkA.png" width="400" /><br />
<br />
<br />
<ul>
<li>Try/catch: poder atrapar en un solo catch varias excepciones</li>
<li>Soporte HTTP/2 en push de curl</li>
<li>Visibilidad en las constantes </li>
<li>Poder definir en el retorno de un método que este es de tipo void</li>
<li>Warning por strings inválidos en operaciones matemáticas</li>
<li>Se depreca y remueve mcrypt()</li>
<li>y más</li>
</ul>
Un buen resumen en: <a href="https://dotdev.co/upcoming-changes-in-php-7-1-76ebea53b820#.b0z03sm7d">https://dotdev.co</a><br />
<br />
<br />
<br />Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-66957855489315526802016-07-17T14:47:00.000-03:002016-07-17T14:47:01.203-03:00The Evolution of PHP – Infographic<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWrc0wuBpMljLx0PERMB0hbbBKpl7-t9-lpCM_fa4FHrTwmE-ha3EJ1ts4gDXEbeSWiZdDYHZwB_dOjNZZ7-QmPuLS4XFdtNFuB7FuKdOKiOIvgVm5_dhD3DzWQ9zwgdCewFJLQQ/s1600/Evolution-of-PHP.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWrc0wuBpMljLx0PERMB0hbbBKpl7-t9-lpCM_fa4FHrTwmE-ha3EJ1ts4gDXEbeSWiZdDYHZwB_dOjNZZ7-QmPuLS4XFdtNFuB7FuKdOKiOIvgVm5_dhD3DzWQ9zwgdCewFJLQQ/s320/Evolution-of-PHP.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="text-align: start;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="text-align: start;"><a href="http://www.cabotsolutions.com/2016/06/the-evolution-of-php-infographic/">http://www.cabotsolutions.com/2016/06/the-evolution-of-php-infographic/</a></span></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-7279014912079557972016-06-28T15:34:00.002-03:002016-06-28T15:45:27.159-03:00Zend Framework 3 disponible! <br />
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7wa71mVGO-J_zJqRfqes_Y2VvUUvazuhVTBnmkONVLhHklSy3EW8BaUmtl4WNJF7yUIxeT3k2ohwh0mqbEmWkd-kwjNRuR_7otKJMo_yKHCiDcpr2q8vLeCnQl1h7NPRkeLsdsQ/s1600/Zend+Framework+++Home.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="135" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7wa71mVGO-J_zJqRfqes_Y2VvUUvazuhVTBnmkONVLhHklSy3EW8BaUmtl4WNJF7yUIxeT3k2ohwh0mqbEmWkd-kwjNRuR_7otKJMo_yKHCiDcpr2q8vLeCnQl1h7NPRkeLsdsQ/s400/Zend+Framework+++Home.png" width="400" /></a></div>
<br />
<div style="background-color: white; color: #777777; font-family: Arial, sans-serif; font-size: 12px; line-height: 21.6px;">
<span style="font-size: 14px;">We are excited to deliver the latest release of Zend Framework, the first major release <span class="aBn" data-term="goog_737259904" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; position: relative; top: -2px; z-index: 0;" tabindex="0"><span class="aQJ" style="position: relative; top: 2px; z-index: -1;">in four years</span></span>.<br /><br />Zend Framework 3, along with recent releases of Zend Server 9 and Zend Studio 13.5, makes it easier for you to develop, debug, monitor, and deploy modern web and mobile apps in PHP 7.<br /><br />Zend Framework 3 includes:</span><ul>
<li style="margin-left: 15px;"><span style="font-size: 14px; line-height: 25.2px;">Increased performance – up to 4X faster applications under PHP 5, and even better using<br />PHP 7</span></li>
<li style="margin-left: 15px;"><span style="font-size: 14px; line-height: 25.2px;">PHP 7 support</span></li>
<li style="margin-left: 15px;"><span style="font-size: 14px; line-height: 25.2px;">Improved documentation for each component repository</span></li>
<li style="margin-left: 15px;"><span style="font-size: 14px; line-height: 25.2px;">Expressive, a PSR-7 middleware microframework that focuses on simplicity and interoperability</span></li>
</ul>
<span style="font-size: 14px;">Create PHP applications simpler and faster with Zend Framework 3.<br /></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="background-color: white; color: #777777; font-family: Arial, sans-serif; font-size: 12px; line-height: 18px; width: 600px;"><tbody>
<tr><td style="font-family: arial, sans-serif; margin: 0px;"> </td><td align="center" bgcolor="#F99F22" height="35" rowspan="2" style="color: white; font-family: arial, sans-serif; font-size: 14px; margin: 0px; padding: 0px;" width="152"><div style="font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif;">
<strong><a data-saferedirecturl="https://www.google.com/url?hl=en&q=http://info.zend.com/R00Akp6X8j0000S0L5CUsr0&source=gmail&ust=1467225871136000&usg=AFQjCNGYsgHW8B2O7EPeI6WXmMpDj39LuA" href="http://info.zend.com/R00Akp6X8j0000S0L5CUsr0" style="color: white; text-decoration: none;" target="_blank">DOWNLOAD TODAY</a></strong></div>
</td><td style="font-family: arial, sans-serif; margin: 0px;"> </td></tr>
<tr><td bgcolor="#FFFFFF" style="font-family: arial, sans-serif; margin: 0px;"> </td><td bgcolor="#FFFFFF" style="font-family: arial, sans-serif; margin: 0px;"> </td></tr>
</tbody></table>
<div style="background-color: white; color: #777777; font-family: Arial, sans-serif; font-size: 12px; line-height: 21.6px;">
<span style="font-size: 14px;"></span><br /></div>
<div style="background-color: white; color: #777777; font-family: Arial, sans-serif; font-size: 12px; line-height: 21.6px;">
<span style="font-size: 14px;">Happy PHPing,</span></div>
<br />
<a href="http://info.zend.com/P000r0jLAX0H540U0zUC6R0">http://info.zend.com/P000r0jLAX0H540U0zUC6R0</a><br />
<br />
<a href="https://framework.zend.com/blog/2016-06-28-zend-framework-3.html">https://framework.zend.com/blog/2016-06-28-zend-framework-3.html</a><br />
<br />
<a href="https://docs.zendframework.com/tutorials/migration/to-v3/overview/">https://docs.zendframework.com/tutorials/migration/to-v3/overview/</a><br />
<br />
<br />
<br />Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-24481792459513721822016-03-17T11:17:00.000-03:002017-01-09T00:32:01.139-03:00GIT cambiar el editor por defecto a VIM<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_7lrOfG46OdTac8OKIVv4w_ehXSjA80jmDBjU3vWrEtM0wba39XaRQPzewbQNeHR6dI-uAnXv5V3oSRuAJLH1_y64WudLviIdsx-yiAEmDoJ5SqKC26Vkgl-l1sbkxwxmEag0cQ/s1600/vim_logo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_7lrOfG46OdTac8OKIVv4w_ehXSjA80jmDBjU3vWrEtM0wba39XaRQPzewbQNeHR6dI-uAnXv5V3oSRuAJLH1_y64WudLviIdsx-yiAEmDoJ5SqKC26Vkgl-l1sbkxwxmEag0cQ/s1600/vim_logo.png" /></a>A veces cuando usamos git en consola unix / linux queda con un editor por defecto que puede no ser de nuestro agrado. Si vienes usando vim, puedes aplicar esta sintaxis:<br />
<br />
<pre class="lang-lisp prettyprint prettyprinted" style="background-color: #eeeeee; border: 0px; color: #393318; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, sans-serif; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;"><code style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;"><span class="pln" style="border: 0px; color: black; margin: 0px; padding: 0px;">git config --global core</span><span class="pun" style="border: 0px; color: black; margin: 0px; padding: 0px;">.</span><span class="pln" style="border: 0px; color: black; margin: 0px; padding: 0px;">editor </span><span class="str" style="border: 0px; color: maroon; margin: 0px; padding: 0px;">"vim"</span></code></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiFBt9p_k0nV-YZaxzKeKJMGM3hg2SqzViUAxJqu8kUuNDZHQ-p44mDstow8p2IUAciS90zVYcjjm6lBUHFGe4JkHCgYgwPuTiFJ2_Lks8xrMU31wgdpfMBSfGAY8JHTEPz7-Gxg/s1600/Git-Logo-1788C.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiFBt9p_k0nV-YZaxzKeKJMGM3hg2SqzViUAxJqu8kUuNDZHQ-p44mDstow8p2IUAciS90zVYcjjm6lBUHFGe4JkHCgYgwPuTiFJ2_Lks8xrMU31wgdpfMBSfGAY8JHTEPz7-Gxg/s200/Git-Logo-1788C.png" width="200" /></a></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-1696397705308327812016-02-12T15:39:00.001-03:002016-02-12T15:39:47.814-03:00GIT: colorear el diff en consola<br />
<div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;">
<img height="83" src="https://git-scm.com/images/logos/downloads/Git-Logo-1788C.png" width="200" /></div>
<br />
Estás trabajando remoto desde la consola de comandos, quieres ver la diferencia de tus fuentes con respecto a los cambios que estás haciendo, y los cambios se presentan en blanco y negro.<br />
<br />
<pre data-code-language="console" data-type="programlisting" style="background: rgb(238, 238, 238); border-radius: 3px; border: 1px solid rgb(239, 238, 230); box-sizing: border-box; color: #333333; font-size: 0.9em; line-height: 15.12px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;"><code class="gp" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 3px; border: 0px; box-sizing: border-box; color: #009900; display: inline; font-size: 1em; font-weight: bold; line-height: 18px; margin-bottom: 1em; overflow: auto; padding: 0px;">$</code> git diff</pre>
<br />
Para poder ver el diff con colores y clarificar mejor las diferencias en el código modificado, debes cambiar la configuración de GIT:<br />
<br />
La preferencia es<br />
<br />
<h4 style="background-color: #fcfcfa; box-sizing: border-box; color: #4e443c; font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 22px; margin: 0px; text-rendering: optimizeLegibility;">
<code style="background: rgb(238, 238, 238); border-radius: 3px; border: 1px solid rgb(245, 245, 245); box-sizing: border-box; color: #333333; display: inline; font-size: 1em; line-height: 18px; margin-bottom: 1em; overflow: auto; padding: 0px;">color.ui</code></h4>
<br />
Y todas las funciones se pueden habilitar o deshabilitar con TRUE o FALSE<br />
<br />
ejemplo:<br />
<br />
<pre data-code-language="console" data-type="programlisting" style="background: rgb(238, 238, 238); border-radius: 3px; border: 1px solid rgb(239, 238, 230); box-sizing: border-box; color: #333333; font-size: 0.9em; line-height: 15.12px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;"><code class="gp" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 3px; border: 0px; box-sizing: border-box; color: #009900; display: inline; font-size: 1em; font-weight: bold; line-height: 18px; margin-bottom: 1em; overflow: auto; padding: 0px;">$</code> git config --global color.ui <code class="nb" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 3px; border: 0px; box-sizing: border-box; color: #336666; display: inline; font-size: 1em; line-height: 18px; margin-bottom: 1em; overflow: auto; padding: 0px;">true</code></pre>
<br />
Aquí dejamos habilitado para que el diff al ejecutar git diff se muestre en distintos colores para facilitar su lectura.<br />
<br />
Existen muchas variaciones que se pueden aplicar, para más info, <a href="https://git-scm.com/book/uz/v2/Customizing-Git-Git-Configuration">ver manual de referencia</a>.<br />
<br />
<pre style="background: rgb(238, 238, 238); border-radius: 3px; border: 1px solid rgb(239, 238, 230); box-sizing: border-box; color: #333333; font-size: 0.9em; line-height: 15.12px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px 15px 13px;">color.branch
color.diff
color.interactive
color.status</pre>
<br />
Saludos!<br />
<br />
<br />Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-70834399977065475302016-02-12T15:31:00.000-03:002016-02-12T15:31:43.973-03:00Netbeans: cómo agregar soporte para editar bash / scripts<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;">
</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://blog.arungupta.me/wp-content/uploads/2014/03/netbeans8-logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://blog.arungupta.me/wp-content/uploads/2014/03/netbeans8-logo.png" /></a></div>
<br />
Probado en Netbeans 8 en adelante:<br />
<ol>
<li>Instalar plugin C/C++</li>
<li>Instalar plugin nb-noext-mime-resolver</li>
<li>Cambiar configuración en <strong style="background-color: white; border: 0px; color: #222426; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 15px; line-height: 19.5px; margin: 0px; padding: 0px;">tools/options/editor/spellchecker </strong><span style="background-color: white; border: 0px; color: #222426; font-family: "arial" , "helvetica neue" , "helvetica" , sans-serif; font-size: 15px; line-height: 19.5px; margin: 0px; padding: 0px;">y desmarcar </span><strong style="background-color: white; border: 0px; color: #222426; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 15px; line-height: 19.5px; margin: 0px; padding: 0px;">'Script and make comments'</strong></li>
</ol>
<div>
<span style="color: #222426; font-family: "arial" , "helvetica neue" , "helvetica" , sans-serif;"><span style="font-size: 15px; line-height: 19.5px;"><b><br /></b></span></span></div>
<div>
<span style="color: #222426; font-family: "arial" , "helvetica neue" , "helvetica" , sans-serif;"><span style="font-size: 15px; line-height: 19.5px;"><b>Fuente: <a href="http://stackoverflow.com/questions/1636765/does-netbeans-support-coloring-for-sh-bash-scripts">stackoverflow.com</a></b></span></span></div>
<div>
<span style="color: #222426; font-family: "arial" , "helvetica neue" , "helvetica" , sans-serif;"><span style="font-size: 15px; line-height: 19.5px;"><b><br /></b></span></span></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-84186042766008606782016-01-05T11:25:00.001-03:002016-01-05T11:43:12.183-03:00Checklist para crear tu paquete PHP (composer)Es un buen recurso para revisar a la hora de crear un paquete PHP que quieras distribuir por composer, una lista de puntos a tener en cuenta que deberías cumplir antes de publicarlo:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUkjtCmtFUoUXWABdszeR1O-7_IBWttT0biT5Xg1u5QwPC7AId43veg_X0g4P-KFKbQXdZ-GhL7PibFuIib572BLkfyb-WaMuijx2T0s0LLiWJU6Iptmb7Hy4pP7j6ujyIccaruQ/s1600/PHP+Package+Checklist.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUkjtCmtFUoUXWABdszeR1O-7_IBWttT0biT5Xg1u5QwPC7AId43veg_X0g4P-KFKbQXdZ-GhL7PibFuIib572BLkfyb-WaMuijx2T0s0LLiWJU6Iptmb7Hy4pP7j6ujyIccaruQ/s400/PHP+Package+Checklist.png" width="395" /></a></div>
<br />
<br />
Cito algunos puntos:<br />
<ol>
<li><b>Elige un nombre sabiamente:</b> revisa antes que no exista el nombre en el listado de paquetes, no uses tu nombre o apellido para usarlo en el nombre. </li>
<li> <b>Autoloader friendly:</b> usa el estándar<a href="http://www.php-fig.org/psr/psr-4/"> PSR-4</a> para hacer funcionar el autoloader en tu paquete, y coloca el código en la carpeta /src/</li>
<li><b>Distribuye via Composer:</b> si vas a hace un paquete, y quieres que sea público y lo puedan usar en otros proyectos, utiliza <a href="https://getcomposer.org/">Composer</a>.</li>
<li><b>Sé Framework Agnostico:</b> no limites tu proyecto / paquete a un solo framework.</li>
<li><b>Sigue un estilo al codificar:</b> utiliza estándares como <a href="http://www.php-fig.org/psr/psr-2/es/">PSR-2</a>, donde especifican un estilo de codificación aprobado por la <a href="http://www.php-fig.org/">PHP-FIG</a> (The PHP Framework Interop Group).</li>
</ol>
<div>
La <a href="http://phppackagechecklist.com/#1,2,3,4,5,6,7,8,9,10,11,12,13,14">lista completa</a> sigue, hace referencia a que escribas test unitarios, no te olvides de la documentación en el código con DocBlock, agrega documentación extra, también un changelog, incluir un tipo de licencia, etc.</div>
<div>
<br /></div>
<div>
Saludos!<br />
<br />
<b>Anexo</b><br />
<br />
<ul>
<li><a href="https://packagist.org/">https://packagist.org/</a></li>
<li><a href="https://getcomposer.org/">https://getcomposer.org/</a></li>
<li><a href="http://www.php-fig.org/">http://www.php-fig.org/</a></li>
<li><a href="http://thephpleague.com/">http://thephpleague.com/</a></li>
<li><a href="http://www.phptherightway.com/">http://www.phptherightway.com/</a></li>
</ul>
</div>
<div>
<br /></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-55621579626294307172015-12-25T22:47:00.001-03:002017-01-08T19:34:33.130-03:00Frase: "Para algunos autores, la herencia o las clases no son conceptos esenciales para la paradigma de POO"<br />
Frase leída en Wikipedia sobre el lenguaje "Go" de Google:<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: right; margin-bottom: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><i></i></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Alan Kay</i></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmhWfPofsBaqMCZH4FiqXA8xUOimSrRgjNQH9VhUnj5OG6GXF9Jbx4P-bHeP5vD_qrTokAZw1tqrr5InxYsvcBNGHYbTu2NRJg7EmW7GTHUDgSLtH98JYi0aleTUk5aKLYhewVkQ/s1600/alan.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmhWfPofsBaqMCZH4FiqXA8xUOimSrRgjNQH9VhUnj5OG6GXF9Jbx4P-bHeP5vD_qrTokAZw1tqrr5InxYsvcBNGHYbTu2NRJg7EmW7GTHUDgSLtH98JYi0aleTUk5aKLYhewVkQ/s1600/alan.jpg" /></a></div>
<br />
<div style="background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; line-height: 22.4px; margin-bottom: 0.5em; margin-top: 0.5em;">
<div style="text-align: right;">
</div>
<i>"Para algunos autores,<b> la herencia o las clases no son conceptos esenciales para la <a href="https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos" style="background: none; color: #0b0080; text-decoration: none;" title="Programación orientada a objetos">paradigma de POO</a></b>, sino más bien un medio de implementación. Existen desde hace tiempo lenguajes orientados a objetos que no admiten clases, sino que se basan en prototipos, como <a class="mw-redirect" href="https://es.wikipedia.org/wiki/Javascript" style="background: none; color: #0b0080; text-decoration: none;" title="Javascript">Javascript</a> o <a class="mw-redirect" href="https://es.wikipedia.org/wiki/Self" style="background: none; color: #0b0080; text-decoration: none;" title="Self">Self</a>. Según declaraciones de <a href="https://es.wikipedia.org/wiki/Alan_Kay" style="background: none; color: #0b0080; text-decoration: none;" title="Alan Kay">Alan Kay</a>, creador de <a class="new" href="https://es.wikipedia.org/w/index.php?title=Smaltalk&action=edit&redlink=1" style="background: none; color: #a55858; text-decoration: none;" title="Smaltalk (aún no redactado)">Smaltalk</a>,<b> lo esencial del paradigma es el paso de mensajes</b>.<sup class="reference" id="cite_ref-6" style="line-height: 1em; unicode-bidi: isolate;"><a href="https://es.wikipedia.org/wiki/Go_(lenguaje_de_programaci%C3%B3n)#cite_note-6" style="background: none; color: #0b0080; text-decoration: none; white-space: nowrap;">6</a></sup></i></div>
<div style="background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; line-height: 22.4px; margin-bottom: 0.5em; margin-top: 0.5em;">
<i></i><br />
<i></i></div>
<div style="background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; line-height: 22.4px; margin-bottom: 0.5em; margin-top: 0.5em;">
<br /></div>
<div style="background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; line-height: 22.4px; margin-bottom: 0.5em; margin-top: 0.5em;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: left; float: left; margin-bottom: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrfMpqwqNJGq9OTtuLhxON0ivDXnXyRAD4TXh9dbyMi0RyRMfs9vP72yxnmDZLBpGAlthE5rsmQ1qd1Gvr1HPnc2MK9DMtTHqFHOY50hRQm6DXgKiz8ahcFcKm8bI9aPECHy211A/s1600/images.jpg" style="margin-left: auto; margin-right: auto;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Lenguaje Go</td></tr>
</tbody></table>
<div style="background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; line-height: 22.4px; margin-bottom: 0.5em; margin-top: 0.5em;">
<i>Go tiene <b>tipos y métodos</b> y permite un <b>estilo de programación orientado a objetos</b>, pero no admite construir jerarquías, es decir, <b>no admite la <a href="https://es.wikipedia.org/wiki/Herencia_(inform%C3%A1tica)" style="background: none; color: #0b0080; text-decoration: none;" title="Herencia (informática)">herencia</a></b>, <b>que para otros autores sí es un mecanismo esencial de la POO</b>. En Go, el concepto de “interfaz“ es similar al usado en <a class="mw-disambig" href="https://es.wikipedia.org/wiki/Java" style="background: none; color: #0b0080; text-decoration: none;" title="Java">Java</a>: cualquier objeto (value) que cumpla el contrato especificado por una interfaz (sin necesidad de una declaración explícita) obtiene ese tipo. También existen formas de embeber tipos dentro de otros tipos para obtener algo análogo a las subclases. Los métodos de Go son más generales que los de C++ o Java, pueden ser definidos para cualquier tipo de datos no sólo para los <a href="https://es.wikipedia.org/wiki/Registro_(estructura_de_datos)" style="background: none; color: #0b0080; text-decoration: none;" title="Registro (estructura de datos)">registros</a>."</i></div>
<div style="background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; line-height: 22.4px; margin-bottom: 0.5em; margin-top: 0.5em;">
<br /></div>
<div style="background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; line-height: 22.4px; margin-bottom: 0.5em; margin-top: 0.5em;">
Para los que estamos en la POO desde hace muchos años, da para pensar, no? </div>
<div style="background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; line-height: 22.4px; margin-bottom: 0.5em; margin-top: 0.5em;">
<br /></div>
<div style="background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; line-height: 22.4px; margin-bottom: 0.5em; margin-top: 0.5em;">
<b>Fuente: </b><a href="https://es.wikipedia.org/wiki/Go_(lenguaje_de_programaci%C3%B3n)">Wikipedia, lenguaje de programación Go (creado por Google)</a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-91088941942262831312015-12-03T19:42:00.000-03:002015-12-03T19:42:03.664-03:00PHP7 final ya está aquí! Lo anuncian con bombos y platillos, sitio oficial y la empresa Zend<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSy8pSTNKgMm34x3Biut-5mJHbK9_cJxqd7ZvpYPWLYvdWBWibNgk2r75aFpMQuZoy2BBe3nMgM-3jOS_IXh1IcuW4WaqhN4ZeByiN2P0rcdnIQzoypCjwsritkV0UCtT1w-hyjA/s1600/PHP++Hypertext+Preprocessor.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSy8pSTNKgMm34x3Biut-5mJHbK9_cJxqd7ZvpYPWLYvdWBWibNgk2r75aFpMQuZoy2BBe3nMgM-3jOS_IXh1IcuW4WaqhN4ZeByiN2P0rcdnIQzoypCjwsritkV0UCtT1w-hyjA/s320/PHP++Hypertext+Preprocessor.png" width="320" /></a></div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-ODK7zkFw668_NHm1uwuJNXM1fm2KjeNhqpGOsAcF3CZcZxhN6yUeBY7E7G6R1FfF8gpRUOVNbimmEgSh3ZE4MBjQ3UeZtFY47QHCzgeMvzrjB4tDMIqdiyo2TSPSoOJe0XExRQ/s1600/PHP+7+makes+powering+the+web+a+whole+lot+better.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-ODK7zkFw668_NHm1uwuJNXM1fm2KjeNhqpGOsAcF3CZcZxhN6yUeBY7E7G6R1FfF8gpRUOVNbimmEgSh3ZE4MBjQ3UeZtFY47QHCzgeMvzrjB4tDMIqdiyo2TSPSoOJe0XExRQ/s320/PHP+7+makes+powering+the+web+a+whole+lot+better.png" width="320" /></a></div>
<br />
<br />
Fuentes<br />
<br />
<ul>
<li><a href="http://php.net/archive/2015.php#id2015-12-03-1">PHP Oficial</a></li>
<li><a href="http://www.zend.com/en/resources/php-7">Zend.com</a></li>
</ul>
<br />
<br />Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-22719272489133552752015-12-01T20:23:00.001-03:002015-12-01T20:23:03.168-03:00Disponible PHP 7.0.0 RC 8<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRwykylAl8QAiJqZy-UjCE6Yt6zVSIfBWW4C4Vin_0g_LAZ9-3HkgEFJl01WhY-ODULXSVnVKdi9S3MWYBq-5-C_tkwqgfX_MQ_Oj3EjVFJnyQSytJvcY3AFz6b7zBIonxC5gkYQ/s1600/CE91QtsWEAAKrlK.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRwykylAl8QAiJqZy-UjCE6Yt6zVSIfBWW4C4Vin_0g_LAZ9-3HkgEFJl01WhY-ODULXSVnVKdi9S3MWYBq-5-C_tkwqgfX_MQ_Oj3EjVFJnyQSytJvcY3AFz6b7zBIonxC5gkYQ/s320/CE91QtsWEAAKrlK.jpg" width="287" /></a>Desde el <a href="http://php.net/archive/2015.php#id2015-11-26-1">26 de Nov pasado</a> está disponible oficinalmente un nuevo Release Candidate, lo que deja ver que en breve tendremos la versión final disponible.<br />
<br />
Cito el anuncio:<br />
<br />
PHP 7.0.0 viene con una nueva versión del motor Zend con características tales como (lista incompleta):<br />
<br />
<br />
<ul>
<li>Rendimiento mejorado: PHP 7 es hasta dos veces más rápido que PHP 5.6</li>
<li>Soporte consistente de 64 bits </li>
<li>Muchos errores fatales son ahora Excepciones </li>
<li>Se remueven SAPIs y extensiones antiguas y no compatibles </li>
<li>Se agrega el operador "null coalescing" (??) </li>
<li>Se agrega el operador "comparación combinada" (<=>) </li>
<li>Se agrega tipo de retorno "Declarations"</li>
<li>Se agrega "Scalar Type Declarations" </li>
<li>Clases anónimas</li>
</ul>
<div>
Saludos! </div>
<div>
<br /></div>
<div>
<b>Más info</b></div>
<div>
<br /></div>
<div>
<ul>
<li><a href="http://php.net/archive/2015.php#id2015-11-26-1">Anuncio en php.net</a></li>
<li><a href="http://www.zend.com/en/resources/php-7">Información de Zend.com sobre PHP7</a></li>
</ul>
</div>
<div>
<br /></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-77369115115153829312015-07-13T17:07:00.001-03:002015-07-13T17:07:44.001-03:00Jugar con PHP7, el camino facil<div class="separator" style="clear: both; text-align: left;">
Para quienes ya quieren empezar a probar PHP7 sin grandes complicaciones y de forma segura, a través de koding.com</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Fuente del artículo original:</b> <a href="http://devzone.zend.com/6314/play-with-php7-the-easy-way/">http://devzone.zend.com/6314/play-with-php7-the-easy-way/</a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihTTrsRPYFu2tvXXg5C5n2iOgRDp6ygqY1dxpUjBbGt7RiapTXvHe9srUHP_lKI0MIP5PDX64MWPxW_cT_17eunF_DEqad28Q4xsmkAXYxNtnHhkeOkOeVg3-QHdvitrbiuqZidg/s1600/php7_logo_white-300x143.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihTTrsRPYFu2tvXXg5C5n2iOgRDp6ygqY1dxpUjBbGt7RiapTXvHe9srUHP_lKI0MIP5PDX64MWPxW_cT_17eunF_DEqad28Q4xsmkAXYxNtnHhkeOkOeVg3-QHdvitrbiuqZidg/s400/php7_logo_white-300x143.jpg" width="400" /></a></div>
<br />
<b><br /></b>
<br />
<br />
<br />Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-25781003625473735832015-06-29T09:31:00.000-03:002015-06-29T09:34:48.267-03:00Infografía: PHP7<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<b style="text-align: start;">Fuente:</b><span style="text-align: start;"> </span><a href="https://www.zend.com/en/resources/php7_infographic" style="text-align: start;">https://www.zend.com</a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.zend.com/en/resources/php7_infographic" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP_eiN5ds4s_4XlmGYSHa1iTXnIXmnM-jPijUFl0Aq4_EXskVpDAXmPGHARdEHaUTem_7ED6zOD-k8DY_4ajeVqm1ov0uDzxmGPSPfaF65eLTxWAbw2sI0w5vXZ5jqFCQo1tDmOA/s1600/php7-infographic.png" /></a></div>
<br />
<br />Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-33007985112900184052013-03-05T00:47:00.001-03:002013-03-05T00:50:45.343-03:00El GOTO en PHP<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white; color: #222222;">En sí, hace muchos años que dejé de usar un </span><span class="il" style="background-color: white; color: #222222;">goto</span><span style="background-color: white; color: #222222;"> cuando se prohibieron (hace casi 25 años aprendí a programar usando BASIC y GOTO, y posteriormente viví la evolución que llevó la prohibición del GOTO) </span><span style="background-color: white; color: #222222;">y me sorprendió cuando lo <a href="http://php.net/manual/es/control-structures.goto.php">revivieron de forma reciente en PHP 5.3.0</a>, pero bueno, sigo la "vieja escuela", aún me parece innecesario y muy peligroso usar un </span><span class="il" style="background-color: white; color: #222222;">goto</span><span style="background-color: white; color: #222222;">... de todas formas n</span><span style="background-color: white; color: #222222;">o es tu culpa que ahora lo uses (aunque como regla, <b>no todo lo que exista en el lenguaje, necesariamente es 100% recomendable usar para un buen diseño general o para POO en concreto</b>).</span></span></div>
<div style="text-align: justify;">
<span style="background-color: white; color: #222222;"><span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></span></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<div style="background-color: white; line-height: 19px; margin-bottom: 1em; padding: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Agrego más info sobre el GOTO, de casualidad llegué hoy leyendo otros temas: </span></div>
<div style="background-color: white; line-height: 19px; margin-bottom: 1em; padding: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Cito biografía de un grán científico de la computación:</b><i> "Respecto a su carácter árido y ácido, conocidas son su oposición a la instrucción <a href="http://es.wikipedia.org/wiki/GOTO" style="color: #69804e; text-decoration: none;" title="GOTO">GOTO</a> y al lenguaje <a href="http://es.wikipedia.org/wiki/BASIC" style="color: #69804e; text-decoration: none;" title="BASIC">BASIC</a> ("mutila la mente más allá de toda recuperación")."</i></span></div>
<div style="background-color: white; line-height: 19px; margin-bottom: 1em; padding: 0px; text-align: justify;">
<a href="http://es.wikipedia.org/wiki/Edsger_Dijkstra" style="color: #69804e; text-decoration: none;"><span style="font-family: Arial, Helvetica, sans-serif;">http://es.wikipedia.org/wiki/Edsger_Dijkstra</span></a></div>
<div style="background-color: white; line-height: 19px; margin-bottom: 1em; padding: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Cito:</b><i> "<span style="line-height: 1.4;">A diferencia de la llamada a una función, no se requiere ningún tipo de preparación o estructura de código para utilizar un </span><span style="line-height: 1.4;">GOTO</span><span style="line-height: 1.4;">. <b>Como resultado, es más sencillo obtener código inconsistente, incompleto o complicado de mantener</b>. Justamente por ello en los </span><a href="http://es.wikipedia.org/wiki/A%C3%B1os_1960" style="color: #69804e; line-height: 1.4; text-decoration: none;" title="Años 1960">años 60</a><span style="line-height: 1.4;"> y </span><a href="http://es.wikipedia.org/wiki/A%C3%B1os_1970" style="color: #69804e; line-height: 1.4; text-decoration: none;" title="Años 1970">70</a><span style="line-height: 1.4;">, cuando surgió la </span><a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada" style="color: #69804e; line-height: 1.4; text-decoration: none;" title="Programación estructurada">programación estructurada</a><span style="line-height: 1.4;">, la comunidad informática se expresó a favor de otras instrucciones de control (</span><a class="mw-redirect" href="http://es.wikipedia.org/wiki/If" style="color: #69804e; line-height: 1.4; text-decoration: none;" title="If">if</a><span style="line-height: 1.4;"> ó </span><a href="http://es.wikipedia.org/wiki/Bucle" style="color: #69804e; line-height: 1.4; text-decoration: none;" title="Bucle">bucles</a><span style="line-height: 1.4;"> </span><a class="mw-redirect" href="http://es.wikipedia.org/wiki/For" style="color: #69804e; line-height: 1.4; text-decoration: none;" title="For">for</a><span style="line-height: 1.4;"> y </span><a href="http://es.wikipedia.org/wiki/Bucle_do" style="color: #69804e; line-height: 1.4; text-decoration: none;" title="Bucle do">do</a><span style="line-height: 1.4;">/</span><a class="mw-redirect" href="http://es.wikipedia.org/wiki/While" style="color: #69804e; line-height: 1.4; text-decoration: none;" title="While">while</a><span style="line-height: 1.4;">) en lugar de </span><span style="line-height: 1.4;">GOTO</span><span style="line-height: 1.4;">.</span></i></span></div>
<div style="background-color: white; line-height: 19px; margin-bottom: 1em; padding: 0px; text-align: justify;">
<i><span style="font-family: Arial, Helvetica, sans-serif;">Tal creencia está tan arraigada que el GOTO es muy criticado por los dedicados a la enseñanza de la programación, que lo suelen desaconsejar.<span style="line-height: 1.4;">"</span></span></i></div>
<div style="background-color: white; line-height: 19px; margin-bottom: 1em; padding: 0px; text-align: justify;">
<span style="color: #69804e; font-family: Arial, Helvetica, sans-serif; text-decoration: none;"><a href="http://es.wikipedia.org/wiki/GOTO" style="color: #69804e; text-decoration: none;">http://es.wikipedia.org/wiki/GOTO</a></span></div>
<div style="background-color: white; line-height: 19px; margin-bottom: 1em; padding: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Esto es otra demostración el <b>caos</b> que en muchos sentidos existe en el lenguaje PHP, que luego de tantos años, ahora, agreguen otra vez el GOTO!!! ;-) </span></div>
<div style="background-color: white; line-height: 19px; margin-bottom: 1em; padding: 0px; text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Saludos! </span></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com1tag:blogger.com,1999:blog-19450532.post-40422085424946893382013-03-05T00:15:00.000-03:002013-03-05T00:34:55.028-03:00Instalar PHP 5.4 en Ubuntu 12.04Como no es la primera vez que me lo preguntan, lo dejo documentado aquí, de todas formas, no es complicado hacerlo:<br />
<br />
<span style="background-color: white;"><b style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;">sudo add-apt-repository ppa:ondrej/php5</b><br style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;" /><br style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;" /><b style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;">sudo apt-get update</b><br style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;" /><br style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;" /><b style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;">sudo apt-get install php5</b></span><br />
<span style="background-color: white;"><b style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;"><br /></b></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;">Y listo, luego verifica en consola con un php -v ó un phpinfo() desde apache</span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;"><br /></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;"><br /></span></span>
<br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px; margin: 0px; padding: 0px;"><b><u>Problemas: Si falla el xdebug luego de ejecutar php -v</u></b></span></span><br />
<b style="background-color: white; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px;"><br /></b>
<b style="background-color: white; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px;">Failed loading</b><span style="background-color: white; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 18px;"> /usr/lib/php5/20090626+lfs/xdebug.so: /usr/lib/php5/20090626+lfs/xdebug.so: </span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">cannot open shared object file: No such file or directory</span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">PHP 5.4.12-1~precise+1 (cli) (built: Feb 25 2013 17:23:55) </span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">Copyright (c) 1997-2013 The PHP Group</span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies</span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><b>Hay que corregir la instalación de xdebug</b>, ya que cambió el lugar donde se encuentra la librería xdebug.so</span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><b>Pasos</b></span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">Actualiza la base que te permite encontrar la ubicación de tu archivo (si haces un locate sin actualizar, te dirá una ubicación vieja)</span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><b>sudo updatedb</b></span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">Cuando termine de indexar, realiza la búsqueda de la librería</span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><b>locate xdebug.so</b></span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">Edita el archivo de configuración para ajustar la nueva ruta en</span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><b>sudo vim /etc/php5/mods-available/xdebug.ini</b></span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">agrega tu ruta actualizada, en este caso sería </span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><b>zend_extension=/usr/lib/php5/20100525+lfs/xdebug.so</b></span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">Finalmente, ejecuta </span><span style="font-size: 15px; line-height: 18px;"><b>php -v </b></span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"><br /></span></span></span>
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">PHP 5.4.12-1~precise+1 (cli) (built: Feb 25 2013 17:23:55) </span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">Copyright (c) 1997-2013 The PHP Group</span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;">Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies</span></span></span><br />
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><span style="font-size: 15px; line-height: 18px;"> with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans</span></span></span><br />
<div style="font-size: 15px; line-height: 18px;">
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><br /></span></span></div>
<div style="font-size: 15px; line-height: 18px;">
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;">Listo, ya no falla xdebug! ;-) </span></span></div>
<div style="font-size: 15px; line-height: 18px;">
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;"><br /></span></span></div>
<div style="font-size: 15px; line-height: 18px;">
<span style="background-color: white;"><span style="border: 0px; font-family: 'Helvetica Neue', Arial, sans-serif; margin: 0px; padding: 0px;">Saludos! </span></span></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-79442669319229058822012-12-20T14:25:00.001-03:002012-12-20T14:29:00.541-03:00Zend Framework 1 no está muerto, se sigue actualizando! Recientemente actualizada la rama 1 a la versión 1.12.1, la que incluye más de 50 correcciones, entre ellas, además de fallos, varios problemas de seguridad importantes, relacionados con:<br />
<ul>
<li>correcciones de seguridad en Zend_Feed_Rss y Zend_Feed_Atom</li>
<li>se sube el mínimo de versión requerida de PHP: 5.2.11</li>
<li>Se elimina Zend_Markup_Parser_Textile</li>
</ul>
<div>
El plan de actualización, mejoras y soporte se mantendrá hasta el año 2014
</div>
<div>
Se puede hacer un seguimiento de todo lo que se está trabajando a través del <a href="http://framework.zend.com/issues/secure/IssueNavigator.jspa?mode=hide&requestId=12879">issue tracker</a>
</div>
<div>
<b><br /></b>
<b>Fuente:</b> <a href="http://akrabat.com/zend-framework/zend-framework-1-is-not-dead-ensure-you-upgrade/">akrabat.com</a>
</div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-9151035849430359022012-11-16T10:24:00.001-03:002012-11-16T10:24:35.477-03:00Disponible nueva versión para testear: PHP 5.5.0 Alpha1Anuncia el equipo de desarrollo de PHP que se encuentra disponible para testear la versión 5.5.0alpha1 y con esto, marcan el inicio del ciclo de desarrollo de la rama 5.5.0. Avisan que tengan cuidado ya que es una versión de pruebas, no es para usar en producción, e invitan a reportar los bugs que encuentren.<br />
<br />
Las nuevas características (lista no completa) son:<br />
<ul>
<li>support for Generators, </li>
</ul>
<ul>
<li>a new password hashing API, </li>
</ul>
<ul>
<li>support for finally in try/catch blocks </li>
</ul>
<ul>
<li>support for list() in foreach, </li>
</ul>
<ul>
<li>constant array/string dereferencing, </li>
</ul>
<ul>
<li>ext/intl improvement.</li>
</ul>
Me parece muy interesante que ya hayan agregado la opción "finally" en los try/catch (tarde, pero llegó). Para quienes hayan trabajando en Java, sabrán que todo lo que está en try, si falla, pasa a la lista de catch (como si fueran reglas de un firewall), y sí o sí, cierra con la ejecución del código que hay en finally (ej, ya que tu sistema cayó por algo, te aseguras de hacer un cierre limpio, sin importar el tipo de error).<br />
<br />
Indispensable. ;-) <br />
<br />
<b>Fuente: </b><br />
<a href="http://www.php.net/archive/2012.php#id2012-11-15-1">PHP 5.5.0 Alpha1</a><br />
<br />Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com1tag:blogger.com,1999:blog-19450532.post-48934559983712702642012-11-10T14:08:00.000-03:002012-11-10T14:10:10.797-03:00Beta 2 de NetBeans 7.3!<b>NetBeans 7.3 Beta2</b> ya está disponible y ya lo puedes <a href="http://netbeans.org/community/releases/73/">descargar</a>.<br />
<br />
<div style="text-align: justify;">
Lo vengo probando desde hace un tiempo y tiene muchas mejoras, si bien están las más evidentes listadas y parecen pocas, hay que tomarse un tiempo y analizar las nuevas configuraciones que se viene habilitando, por ejemplo, una que me parece muy útil, <b>la posibilidad de decirle que automáticamente te indente el código una vez que grabas el código</b>, ó, si estás versionando y no quieres indentarlo todo (por que para el svn quedará como si lo que cambió fue todo y no se verán claramente las modificaciones, y el resto de tu equipo te odiará), <b>que solo indente el código nuevo que agregas. </b></div>
<br />
<b>Listado de mejoras generales para PHP</b><br />
<ul>
<li>Parsers for Namespaced Annotations (Symfony 2, Doctrine 2, etc.),</li>
<li>Basic Composer Integration (Dependency Manager for PHP),</li>
<li>Twig Code Completion (with documentation),</li>
<li>Smarty Braces Matching for Related Tags,</li>
<li>Smarty Parser Errors of Unmatched Tags.</li>
</ul>
<div>
<b>Lástima que aún no tiene soporte para ZF2</b>, pero aún así, toda la ayuda con los namespace es muy bienvenida.<br />
</div>
<div>
</div>
<div>
Fuente: <a href="https://blogs.oracle.com/netbeansphp/entry/netbeans_7_3_beta2_is">Netbeans </a></div>
Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-40817746007947117052012-10-20T10:35:00.000-03:002012-10-20T10:35:24.870-03:00Nueva versión: Netbeans 7.3 Beta! <div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV4NfBLpu-ZzidYI9MbtnqBlK6pwICbQTUoiqYrqQMxefY2JDY2M3ZZ0jI5KydW3S2jSLeziZf4L7A1FF7KoscSE21nh-fETbP4tXIgmOCAC4pUqAr87779PU2Wa2Vs1LY5qssGA/s1600/netbeans-logo.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="69" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV4NfBLpu-ZzidYI9MbtnqBlK6pwICbQTUoiqYrqQMxefY2JDY2M3ZZ0jI5KydW3S2jSLeziZf4L7A1FF7KoscSE21nh-fETbP4tXIgmOCAC4pUqAr87779PU2Wa2Vs1LY5qssGA/s320/netbeans-logo.gif" width="320" /></a></div>
<br />
Para todos los que usamos IDEs abiertos, <a href="http://netbeans.org/community/releases/73/">Netbeans es una muy buena opción</a> para trabajar tanto en Java como PHP y hasta usando frameworks como <a href="http://framework.zend.com/">Zend Framework</a> ó <a href="http://www.symfony-project.org/">Symfony</a>, o si quieres usar <a href="http://www.doctrine-project.org/">Doctrine</a>. Ya <b>desde la versión anterior soporta namespaces</b>, lo cual te soluciona muchos problemas a la hora de estar completando las rutas y verificando si está todo correctamente especificado.<br />
<br />
<b>Herramienta muy recomendada</b>, para trabajar en distintos lenguajes e instalar en distintos sistemas operativos, y que también sugerimos <a href="http://surforce.com/">en todos los cursos</a>.<br />
<br />
<span style="font-weight: bold;">Cambios más importantes relaciones con PHP</span><br />
<ul>
<li>Parsers
for Namespaced Annotations (Symfony 2, Doctrine 2, etc.)</li>
<li>Basic
Composer Integration (Dependency Manager for PHP)</li>
<li>Twig Code Completion (with documentation)</li>
<li>Smarty Braces Matching for Related Tags</li>
<li>Smarty Parser Errors of Unmatched Tags</li>
</ul>
<a href="http://netbeans.org/community/releases/73/">Lista completa</a><br />
<br />
<b>Fuente:</b> <a href="http://netbeans.org/">Netbeans.org</a><br />
<br />
<br />
<br />
<br />
<br />
<br />Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-85670203547905674422012-10-20T09:54:00.000-03:002012-10-20T09:54:00.997-03:00Nueva versión: Zend Framework 2.0.3!Nueva versión de Zend Framework 2 disponible (la cual incorporaremos en <a href="http://surforce.com/">los cursos que iniciaremos en breve</a>):<br />
<br />
<h2>
Zend Framework 2.0.3 Released!</h2>
The Zend Framework community is pleased to announce the immediate availability
of Zend Framework 2.0.3! Packages and installation instructions are
available at:
<br />
<ul>
<li>
<a href="http://framework.zend.com/downloads/latest">http://framework.zend.com/downloads/latest</a>
</li>
</ul>
<h2>
Changelog</h2>
This release included 115 changes, ranging from minor docblock improvements to bugfixes.
The full list is as follows:
<br />
<ul>
<li><a href="https://github.com/zendframework/zf2/issues/2244">2244: Fix for issue ZF2-503</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2318">2318: [WIP - help] Allow to remove decimals in CurrencyFormat</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2363">2363: Hotfix db features with eventfeature</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2380">2380: ZF2-482 Attempt to fix the buffer. Also added extra unit tests.</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2392">2392: Update library/Zend/Db/Adapter/Platform/Mysql.php</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2395">2395: Fix for http://framework.zend.com/issues/browse/ZF2-571</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2397">2397: Memcached option merge issuse</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2402">2402: Adding missing dependencies</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2404">2404: Fix to comments</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2406">2406: No, sir, that's not a boolean.</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2416">2416: Fix expressionParamIndex for AbstractSql</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2420">2420: Zend\Db\Sql\Select: Fixed issue with join expression named parameters overlapping.</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2421">2421: Update library/Zend/Http/Header/SetCookie.php</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2422">2422: fix add 2 space after @param in Zend\Loader</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2423">2423: ManagerInterface must be interface, remove 'interface' description</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2425">2425: Use built-in Travis composer</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2426">2426: [BC] Remove need of setter in ClassMethods hydrator</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2432">2432: Prevent space before end of tag with HTML5 doctype</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2433">2433: fix for setJsonpCallback not called when recieved JsonModel + test</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2434">2434: added phpdoc in Zend\Db</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2437">2437: Hotfix/console 404 reporting</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2438">2438: Improved previous fix for ZF2-558. </a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2440">2440: Turkish Translations for Captcha and Validate</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2441">2441: Allow form collection to have any helper</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2516">2516: limit(20) -> generates LIMIT '20' and throws an IllegalQueryException</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2545">2545: getSqlStringForSqlObject() returns an invalid SQL statement with LIMIT and OFFSET clauses</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2595">2595: Pgsql adapater has codes related to MySQL</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2613">2613: Prevent password to be rendered if form validation fails</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2617">2617: Fixed Zend\Validator\Iban class name</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2619">2619: [Fix/Master] Form enctype fix when File elements are within a collection</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2620">2620: [Fix/Master] InputFilter/Input when merging was not using raw value</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2622">2622: Added ability to specify port</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2624">2624: [Fix/Master] Form's default input filters added multiple times</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2630">2630: fix relative link ( remove the relative links ) in README.md</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2631">2631: Update library/Zend/Loader/AutoloaderFactory.php</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2633">2633: fix redundance errors "The input does not appear to be a valid date" show twice</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2635">2635: Fix potential issue with Sitemap test</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2636">2636: add isset checks around timeout and maxredirects</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2641">2641: hotfix : formRow() element error multi-checkbox and radio renderError not shown</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2642">2642: Fix Travis build for CS issue</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2643">2643: fix for setJsonpCallback not called when recieved JsonModel + test</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2644">2644: Add fluidity to the prepare() function for a form</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2652">2652: Zucchi/filter tweaks</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2665">2665: pdftest fix</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2666">2666: fixed url change</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2667">2667: Possible fix for rartests</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2669">2669: skip whem gmp is loaded</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2673">2673: Input fallback value option</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2676">2676: mysqli::close() never called</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2677">2677: added phpdoc to Zend\Stdlib</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2678">2678: Zend\Db\Adapter\Sqlsrv\Sqlsrv never calls Statement\initialize() (fix within)</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2679">2679: Zend/Log/Logger.php using incorrect php errorLevel</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2680">2680: Cache: fixed bug on getTotalSpace of filesystem and dba adapter</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2681">2681: Cache/Dba: fixed notices on tearDown db4 tests</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2682">2682: Replace 'Configuration' with 'Config' when retrieving configuration</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2683">2683: Hotfix: Allow items from Abstract Factories to have setShared() called</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2685">2685: Remove unused Uses</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2686">2686: Adding code to allow EventManager trigger listeners using wildcard identifier</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2687">2687: Hotfix/db sql nested expressions</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2688">2688: Hotfix/tablegateway event feature</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2689">2689: Hotfix/composer phpunit</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2690">2690: Use RFC-3339 full-date format (Y-m-d) in Date element</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2691">2691: join on conditions don't accept alternatives to columns</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2693">2693: Update library/Zend/Db/Adapter/Driver/Mysqli/Connection.php</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2694">2694: Bring fluid interface to Feed Writer</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2698">2698: fix typo in # should be :: in exception</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2699">2699: fix elseif in javascript Upload Demo</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2700">2700: fix cs in casting variable</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2705">2705: Fix french translation</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2707">2707: Improved error message when ServiceManager does not find an invokable class</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2710">2710: #2461 - correcting the url encoding of path segments</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2711">2711: Fix/demos ProgressBar/ZendForm.php : Object of class Zend\Form\Form could not be converted to string</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2712">2712: fix cs casting variable for (array)</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2713">2713: Update library/Zend/Mvc/Service/ViewHelperManagerFactory.php</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2714">2714: Don't add separator if not prefixing columns</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2717">2717: Extends when it can : Validator\DateStep extends Validator\Date to reduce code redundancy</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2719">2719: Fixing the Cache Storage Factory Adapter Factory</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2728">2728: [Bug][Mail] Bad Regex for Content Type header</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2731">2731: Reset the Order part when resetting Select</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2732">2732: Removed references to Mysqli in Zend\Db\Adapter\Driver\Pgsql</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2733">2733: fix @package Zend_Validate should be Zend_Validator</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2734">2734: fix i18n @package and @subpackage value</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2736">2736: fix captcha helper test.</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2737">2737: Issue #2728 - Bad Regex for Content Type header</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2738">2738: fix link 'quickstart' to version 2.0</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2739">2739: remove '@subpackage' because Zend\Math is not in subpackage</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2742">2742: remove () in echo-ing</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2749">2749: Fix for #2678 (Zend\Db's Sqlsrv Driver)</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2750">2750: Adds the ability to instanciate by factory to AbstractPluginManager</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2754">2754: add the support to register module paths over namespace</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2755">2755: remove Zend\Mvc\Controller\PluginBroker from aliases in "$defaultServiceConfig"</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2759">2759: Fix Zend\Code\Scanner\TokenArrayScanner</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2764">2764: Fixed Zend\Math\Rand::getString() to pass the parameter $strong to ::getBytes()</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2765">2765: Csrf: always use dedicated setter</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2766">2766: Session\Storage: always preserve _REQUEST_ACCESS_TIME</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2768">2768: Zend\Validator dependency is missed in Zend\Cache composer.json</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2769">2769: change valueToLDAP to valueToLdap and valueFromLDAP to valueFromLdap</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2770">2770: [WIP] Memcached</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2775">2775: Zend\Db\Sql: Fix for Mysql quoting during limit and offset</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2776">2776: Allow whitespace in Iban</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2777">2777: Fix issue when PREG_BAD_UTF8_OFFSET_ERROR is defined but Unicode support is not enabled on PCRE</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2778">2778: Undefined Index fix in ViewHelperManagerFactory</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2779">2779: Allow forms that have been added as fieldsets to bind values to bound ob...</a></li>
<li><a href="https://github.com/zendframework/zf2/issues/2782">2782: Issue 2781</a></li>
</ul>
<h2>
Thank You!</h2>
Many thanks to all contributors to this release!
<br />
<h2>
Reminder</h2>
Maintenance releases happen monthly on the third Wednesday. Additionally,
we have the next minor release, 2.1.0, slated for sometime next month.<br />
<br />
Fuente: <a href="http://framework.zend.com/blog/zend-framework-2-0-3-released.html">ZF Blog</a> Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0tag:blogger.com,1999:blog-19450532.post-68958773067016003602012-10-09T00:41:00.002-03:002012-10-09T00:41:51.271-03:00Promo: hasta el 10 de Octubre paquetes de cursos al precio de uno!<span><span><span><span><span><span><span><span></span></span></span></span></span></span></span></span><br />
<span><span><span>Iniciamos preventa con descuentos para paquetes de cursos Octubre 2012, <strong>descuentos válidos solo hasta el 10 de octubre</strong></span></span></span><br />
<span><span><span>
<u><b></b></u></span></span></span><br />
<br />
<span><span><span><span><span><span><span><span><u><b> Paquetes</b></u><br />
<br /><b>1)</b> <b>CURSO COMPLETO PHP</b> = POO + UML + LIBRO + Intro PHP 5.3/4 <br /><br /><b>2) CURSO DIRECTO ZF2</b> = Intro PHP 5.3/4 + Intro ZF 2 <br /><br /><b>3) CURSO COMPLETO ZEND</b> = Intro ZF 1 + Intro PHP 5.3 + Intro ZF 2</span></span><strong><br />
<br /><u>Nuevo: Introducción a Zend Framework 2</u></strong></span></span></span></span></span></span><br />
<br />
<span><span><span>Destinado a todos todos los alumnos que ya han participado de los
cursos de POO / UML / PHP, Introducción Zend Framework 1.11, Zend
Framework Avanzado y Actualización PHP 5.3 / 4</span></span></span><br />
<br />
<span><span><span>
<u><strong>Cursos con descuentos del 15%</strong></u><br />
<br />
Para los cursos de: <br />
<br />
<b>- Análisis y Diseño Orientado a Objetos</b><br />
<br />
<b>- Patrones de Diseño</b><br />
<br />
Inicio sujeto a cupo, PROMO válida hasta el 10 de Octubre<br />
<br />
<b>Más información</b> en <a href="http://surforce.com/">surforce.com</a> <br />
<br />
<b>En caso de decidirte, la compra la debes hacer a través de</b> <a href="http://usuarios.surforce.com/" target="_blank">usuarios.surforce.com</a><br />
<br />
<b>Cualquier duda puedes enviarnos un mail a info en surforce.com</b><br />
</span></span></span>Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.com0