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

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

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! ;-)

[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!

Pasar objetos por sesión

Como no es la primera vez que me lo han preguntado, y tampoco es la primera vez que veo esta duda en un foro, les agrego un ejemplo sobre el tema. ;-)

En sí, la única "complejidad técnica", más que nada asociada a la falta de experiencia en cómo trabaja PHP, es que debemos siempre requerir los fuentes de la clase del objeto en cuestión, y particularidad mediante, antes de iniciar la sesión.







No hace falta serializar los objetos, las sentencias de sesión ya se encargan de todo el trabajo, ante dudas de cómo trabaja, siempre el manual oficial.

Saludos!

Herramientas: compartir / comentar / publicar código de ejemplo via web

Para los que estamos regularmente respondiendo dudas de código y dando ejemplos, herramientas como Pastie son muy útiles gracias a lo "independiente" de la plataforma. Bien podemos enviar el enlace al código, o directamente "embeberlo" en un post:



Y lo bueno es que puedes colorear la sintaxis según el lenguaje que sea, respeta la indentación, etc... muy práctico! ;-)

Ejemplo de composición: Factura y detalle de factura

Este es un ejemplo publicado a partir de la duda de un usuario, y como son preguntas que se hacen reiteradamente, les dejo el ejemplo aquí (cualquier duda la discutimos en los comentarios de este post):

La relación debería ser "composición" (no tiene sentido la existencia de "detalle" sin la relación con factura, por lo tanto es una "relación de vida" entre ambas clases) y el diagrama UML sería el siguiente:



y la traducción a código sería:

Factura.php

Código PHP:
require_once 'FacturaDetalle.php';

class 
Factura 

{
   private 
$_colDetalle = array();

   public function 
addDetalle(FacturaDetalle $detalle)
   {
      
$this->_colDetalle[] = $detalle;
   }
} 
FacturaDetalle.php
Código PHP:
class FacturaDetalle 
{
   
/** código de la clase **/ 

} 
Forma de uso: index.php

Código PHP:
require_once 'Factura.php';
require_once 
'FacturaDetalle.php';

abstract 
Index
{
   public static function 
main()
   {
      
$factura = new Factura();

      
// Agrego 4 detalles a la factura

      
$factura->addDetalle(new FacturaDetalle());
      
$factura->addDetalle(new FacturaDetalle());
      
$factura->addDetalle(new FacturaDetalle());
      
$factura->addDetalle(new FacturaDetalle());
   }
}
Index::main(); 
Más información sobre el tema de diagramas y traducción de relaciones

Saludos!

Ejecución de scripts en modalidad "batch" y validar sintaxis

Muchas veces necesitamos correr procesos "batch" que se ejecutarán a determinada hora desde un cron (unix/linux) y no tienen ningún tipo de interacción con el usuario, a lo sumo, generarán un reporte de resultados del proceso en un log. Este tipo de procesos pueden ser tan variados como respaldos, transferencias de datos entre sistemas, envío masivo de mails a la base de usuarios, etc.

Por ejemplo:


30 13 * * *  enrique php /var/www/batch/sincronizarBases.php &>/dev/null

Aquí se ve la ejecución para el usuario enrique, el cual llegada las 13:30 hs ejecutará el comando php /var/www/batch/sincronizarBases.php y toda la salida de mensajes internamente será redireccionada a un archivo de log.

También se puede evitar tener que llamar desde consola el comando php y decirle internamente que el ejecutable es el binario de php, además de tener que darle permisos de ejecución al archivo en cuestión (chmod +x ), por lo que la invocación quedaría así (sin la invocación de php):

 30 13 * * *  enrique /var/www/batch/sincronizarBases.php &>/dev/null

y la primera línea de nuestro scripts debería ser:

#!/usr/bin/php -q

// código fuente


Bien podríamos usar otro tipo de lenguaje o simple scripting bash, pero tener todo un sistema desarrollado en PHP permite luego reusar componentes o clases dentro de estos scripts "batch", así que bien podemos seguir usando nuestro lenguaje base de desarrollo.

Como último detalle que quería comentarles, es que amén que siempre hay que probar todo en consola antes de agregarlo al crontab, sucede que si bien sabemos que funciona todo correctamente, a veces tenemos que hacer modificaciones al scripts y que probablemente luego no nos tomamos el trabajo de volver a revisar nuevamente. Para estas situaciones les dejo un pequeño "tips" que puede ser de ayuda con errores básicos que nos pueden suceder sin darnos cuenta:

Luego de editar nuestro fuente, podemos verificar la sintaxis básica del código, evitando por lo menos no cometer un error en algun ";" o similar (obviamente, esto no asegura que no hayamos cometido un error de lógica):

php -l sincronizarBases.php


No syntax errors detected in sincronizarBases.php

En caso contrario

Parse error: syntax error, unexpected T_INCLUDE in sincronizarBases.php on line 33
Errors parsing sincronizarBases.php 



Espero que les sea de utilidad ;-)

¿tienen alguna sugerencia más o experiencias en estos temas que quieran compartir?

[screencast] Cómo usar Zend Framework en Netbeans 6.9

Hace un buen tiempo que vengo usando Netbeans como IDE "todo terreno", tanto para PHP5 puro como para desarrollar bajo Zend Framework. Si bien usar Zend bajo Netbeans no aportaba ninguna ayuda especial, es muy bienvenido que lo hayan incorporado ahora con la nueva versión (ya puedes bajar la versión 6.9 Beta, en pocos días ya estará la versión final).

Aquí una explicación de los primeros pasos para sacarle el máximo de provecho:



¿y tú, ya lo probaste? ;-)

Entradas populares