martes, marzo 05, 2013

El GOTO en PHP

En sí, hace muchos años que dejé de usar un goto 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) y me sorprendió cuando lo revivieron de forma reciente en PHP 5.3.0, pero bueno, sigo la "vieja escuela", aún me parece innecesario y muy peligroso usar un goto... de todas formas no es tu culpa que ahora lo uses (aunque como regla, no todo lo que exista en el lenguaje, necesariamente es 100% recomendable usar para un buen diseño general o para POO en concreto).


Agrego más info sobre el GOTO, de casualidad llegué hoy leyendo otros temas: 
Cito biografía de un grán científico de la computación: "Respecto a su carácter árido y ácido, conocidas son su oposición a la instrucción GOTO y al lenguaje BASIC ("mutila la mente más allá de toda recuperación")."
Cito: "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 GOTO. Como resultado, es más sencillo obtener código inconsistente, incompleto o complicado de mantener. Justamente por ello en los años 60 y 70, cuando surgió la programación estructurada, la comunidad informática se expresó a favor de otras instrucciones de control (if ó bucles for y do/while) en lugar de GOTO.
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."
Esto es otra demostración el caos que en muchos sentidos existe en el lenguaje PHP, que luego de tantos años, ahora, agreguen otra vez el GOTO!!! ;-) 
Saludos! 

Instalar PHP 5.4 en Ubuntu 12.04

Como no es la primera vez que me lo preguntan, lo dejo documentado aquí, de todas formas, no es complicado hacerlo:

sudo add-apt-repository ppa:ondrej/php5

sudo apt-get update

sudo apt-get install php5


Y listo, luego verifica en consola con un php -v ó un phpinfo() desde apache



Problemas: Si falla el xdebug luego de ejecutar php -v

Failed loading /usr/lib/php5/20090626+lfs/xdebug.so:  /usr/lib/php5/20090626+lfs/xdebug.so: 
cannot open shared object file: No such file or directory

PHP 5.4.12-1~precise+1 (cli) (built: Feb 25 2013 17:23:55) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

Hay que corregir la instalación de xdebug, ya que cambió el lugar donde se encuentra la librería xdebug.so

Pasos

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)


sudo updatedb

Cuando termine de indexar, realiza la búsqueda de la librería

locate xdebug.so

Edita el archivo de configuración para ajustar la nueva ruta en

sudo vim /etc/php5/mods-available/xdebug.ini

agrega tu ruta actualizada, en este caso sería 

zend_extension=/usr/lib/php5/20100525+lfs/xdebug.so

Finalmente, ejecuta php -v 


PHP 5.4.12-1~precise+1 (cli) (built: Feb 25 2013 17:23:55) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans

Listo, ya no falla xdebug! ;-) 

Saludos! 

jueves, diciembre 20, 2012

Zend 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:
  • correcciones de seguridad en Zend_Feed_Rss y Zend_Feed_Atom
  • se sube el mínimo de versión requerida de PHP:  5.2.11
  • Se elimina Zend_Markup_Parser_Textile
El plan de actualización, mejoras y soporte se mantendrá hasta el año 2014
Se puede hacer un seguimiento de todo lo que se está trabajando a través del issue tracker

Fuente: akrabat.com

viernes, noviembre 16, 2012

Disponible nueva versión para testear: PHP 5.5.0 Alpha1

Anuncia 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.

Las nuevas características (lista no completa) son:
  • support for Generators,
  • a new password hashing API,
  • support for finally in try/catch blocks
  • support for list() in foreach,
  • constant array/string dereferencing,
  • ext/intl improvement.
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).

Indispensable. ;-)

Fuente: 
PHP 5.5.0 Alpha1

sábado, noviembre 10, 2012

Beta 2 de NetBeans 7.3!

NetBeans 7.3 Beta2 ya está disponible y ya lo puedes descargar.

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, la posibilidad de decirle que automáticamente te indente el código una vez que grabas el código, ó, 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á), que solo indente el código nuevo que agregas. 

Listado de mejoras generales para PHP
  • Parsers for Namespaced Annotations (Symfony 2, Doctrine 2, etc.),
  • Basic Composer Integration (Dependency Manager for PHP),
  • Twig Code Completion (with documentation),
  • Smarty Braces Matching for Related Tags,
  • Smarty Parser Errors of Unmatched Tags.
Lástima que aún no tiene soporte para ZF2, pero aún así, toda la ayuda con los namespace es muy bienvenida.
Fuente: Netbeans

sábado, octubre 20, 2012

Nueva versión: Netbeans 7.3 Beta!


Para todos los que usamos IDEs abiertos, Netbeans es una muy buena opción para trabajar tanto en Java como PHP y hasta usando frameworks como Zend Framework ó Symfony, o si quieres usar Doctrine. Ya desde la versión anterior soporta namespaces, lo cual te soluciona muchos problemas a la hora de estar completando las rutas y verificando si está todo correctamente especificado.

Herramienta muy recomendada, para trabajar en distintos lenguajes e instalar en distintos sistemas operativos, y que también sugerimos en todos los cursos.

Cambios más importantes relaciones con PHP
  • Parsers for Namespaced Annotations (Symfony 2, Doctrine 2, etc.)
  • Basic Composer Integration (Dependency Manager for PHP)
  • Twig Code Completion (with documentation)
  • Smarty Braces Matching for Related Tags
  • Smarty Parser Errors of Unmatched Tags
Lista completa

Fuente: Netbeans.org






Nueva versión: Zend Framework 2.0.3!

Nueva versión de Zend Framework 2 disponible (la cual incorporaremos en los cursos que iniciaremos en breve):

Zend Framework 2.0.3 Released!

The Zend Framework community is pleased to announce the immediate availability of Zend Framework 2.0.3! Packages and installation instructions are available at:

Changelog

This release included 115 changes, ranging from minor docblock improvements to bugfixes. The full list is as follows:

Thank You!

Many thanks to all contributors to this release!

Reminder

Maintenance releases happen monthly on the third Wednesday. Additionally, we have the next minor release, 2.1.0, slated for sometime next month.

Fuente: ZF Blog

martes, octubre 09, 2012

Promo: hasta el 10 de Octubre paquetes de cursos al precio de uno!


Iniciamos preventa con descuentos para paquetes de cursos Octubre 2012, descuentos válidos solo hasta el 10 de octubre


 Paquetes

1) CURSO COMPLETO PHP = POO + UML + LIBRO + Intro PHP 5.3/4

2) CURSO DIRECTO ZF2 = Intro PHP 5.3/4 + Intro ZF 2

3) CURSO COMPLETO ZEND = Intro ZF 1 + Intro PHP 5.3 + Intro ZF 2


Nuevo: Introducción a Zend Framework 2


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

Cursos con descuentos del 15%

Para los cursos de:

- Análisis y Diseño Orientado a Objetos

- Patrones de Diseño

Inicio sujeto a cupo, PROMO válida hasta el 10 de Octubre

Más información en surforce.com

En caso de decidirte, la compra la debes hacer a través de usuarios.surforce.com

Cualquier duda puedes enviarnos un mail a info en surforce.com

domingo, abril 22, 2012

Encuesta: ¿Qué versión de PHP estás usando actualmente?

Creo que a todos nos despierta muchas dudas e inseguridades tal fragmentación de versiones de PHP... que lo más interesante es que ya pasamos por una campaña mundial para motivar que todos migráramos a PHP5 y dejáramos atrás PHP4 (2007) y el resultado de esta campaña ya quedó obsoleto.


Versiones disponibles
Actualmente todas las versiones que nos podemos encontrar en el mercado: 
  • PHP 5.4.*
  • PHP 5.3.*
  • PHP 5.2.*
  • PHP 5.1.*
  • PHP 5.0.*
  • PHP 4.*
(veo la lista y es para asustarse)

Ahora bien, si prestamos atención, recientemente salió PHP5.4, que estimo será una versión difundida y ampliamente utilizada (según dicta la experiencia) dentro de 2 años. La versión 5.3, si bien ya tiene un poco más de 2 años (mediados 2009), está empezando a aparecer en los servidores de hosting y en las instalaciones más estables de GNU/Linux, pero está aún lejos de ser común ver esta versión, creo que en la actualidad lo más probable es encontrarnos con PHP 5.2.


¿Debemos hacer otra campaña de migración?

Por lo pronto creo que, o mejoramos la forma de actualizar PHP para que sea mucho más fácil y transparente, y no dependa de un empaquetado o una instalación / migración (sea una simple actualización que se pueda hacer "en el aire / on the fly"), vamos a tener que hacer OTRA campaña de "migración" (que como toda migración, esto significa sacrificio, costos, problemas, no hay migraciones indoloras, o no se llamarían migraciones), a por lo menos PHP 5.3 (principalmente por hacer el quiebre con los namespaces).

Encuesta

Así que hacemos una encuesta pública en el margen derecho del blog con la pregunta , ¿qué versión de PHP estás usando actualmente? ... usando realmente, no que quieras usar a futuro... y es algo que también nos determina y clasifica en nuestros conocimientos, ya que si no usamos PHP 5.3 en adelante, quiere decir que aún no empezaste a trabajar con namespaces (y se entiende, no todo el mundo puede tener su servidor propio, no siempre uno puede actualizar el servidor de producción, muchas veces se depende de un hosting externo y no siempre tendremos la última versión disponible).

Visto en perspectiva, es complicado actualizarse y aprovechar lo último que nos ofrece PHP, ya que la pregunta es inmediata... a cual versión? (no tiene sentido decir la última si no sabes cuando tendrás acceso a la misma para probar todas sus características)


Qué uso?

Me estoy moviendo en dos versiones, PHP 5.2.* y PHP 5.3.* y haciendo pruebas con PHP 5.4. Particularmente, por un tema de "sistemas legados" y complejidad de actualización de servidores en producción, mayormente los sistemas están sin namespaces (5.2) y los sistemas nuevos se están desarrollando con namespaces (5.3).


Veremos cómo resulta la encuesta, a ver si está dentro de los parámetros que espero: creo que un buen grupo estará en PHP 5.2, muy tibio 5.3, pero la mayoría de 5.1 para abajo... espero equivocarme ;-)

Saludos! ;-)

jueves, marzo 15, 2012

[SURFORCE] Nuevo Curso: Actualización POO para nueva versión PHP 5.3 !!!

Estimados todos, estamos organizándonos para iniciar el nuevo período de cursos para el lunes próximo, como siempre, todos cursos relacionados con PHP en particular y POO en general.

Como novedad, iniciamos un curso nuevo, dirigido a todos los alumnos que ya han cursado POO para PHP5 o leído el libro de POO, nos actualizaremos a todas las mejoras de PHP 5.3, particularmente, con el nuevo uso de namespaces, que cambia sustancialmente el trabajo con objetos.

Toda la información en surforce.com

Saludos!