miércoles, 23 de julio de 2014

Buenas prácticas - Tip #5 - Probar con un Framework de PHP


Usted puede aprender mucho acerca de PHP simplemente experimentando con los frameworks de PHP. Frameworks como Zend, CakePHP o CodeIgniter le permiten crear rápidamente aplicaciones PHP, sin tener que ser un experto en PHP. En cierto sentido, podemos aprovecharlos en forma de entrenamiento sobre PHP.  Mostrandonos lo que una aplicación de PHP debe parecerse, y podemos observar los conceptos de programación de gran utilidad (como la separación de la lógica sobre el diseño, etc.)

Para mostrarlo con un ejemplo práctico, realizaremos la implementación de un framework utilizando NetBeans.  Creamos un nuevo proyecto, con el IDE que hemos instalado previamente, utilizando el PHP 5.5 que hemos instalado, en un ambiente Windows 8.1



Un poco de noción sobre Zend Framework:

Zend Framework es un framework PHP orientado a objetos 100%, con una fuerte implementación del patrón MVC, una abstracción de datos muy simple de usar y un rendimiento muy estable, siendo uno de los frameworks más robustos de la actualidad. Además, al ser un framework de código abierto, evitaremos posibles problemas con licencias como nos podría ocurrir con algún framework restrictivo o de pago. Para conocer más podemos visitar su página oficial.

Paso 1: Descargar el Zend Framework 2 Skeleton

Como vámos crear un proyecto usando Zend Framework 2 desde nuestro IDE NetBeans, requerimos Zend Framework 2 Skeleton en formato Zip.



Descargar desde la siguiente ubicación: https://github.com/zendframework/ZendSkeletonApplication

Paso 2: Creamos un nuevo Proyecto

Hacemos click en la opción de Nuevo Proyecto:



Luego seleccionamos PHP y en el lado derecho PHP Application y luego click en Siguiente.



En Project Name colocamos el nombre de nuestro proyecto, para este ejemplo utilizaremos DominandoPHP, luego en Sources Folder colocamos donde serán ubicados los fuentes de nuestro proyecto. Utilizaremos la carpeta que hemos utilizadon en otros tips, C:\html_publico. Elegimos la versión más nueva soportada, en este caso PHP 5.4 y en Default Encoding, UTF-8. Hacemos click en Siguiente.



En la configuración de arranque, ya que estamos en la etapa de desarrollo, podemos sacar provecho al Servidor Interno que viene en nuestro PHP, elegimos en Run As, la opción PHP Built-in Web Server, y dejamos los parametros siguientes por defecto. Hostname: localhost, Port: 8000. Hacemos click en Siguiente.



Marcamos la opción Zend2 PHP Web Framework de los mostrados y podemos verificar si nos muestra alguna advertencia. Hacemos click en Terminar. (Podemos corregirla iendo a Herramientas -> Opciones en la barra principal de NetBeans)



Ahora comienza el proceso de generación del nuevo Proyecto utilizando ZF2.



Una vez generados las respectivas carpetas y archivos, ubicamos el archivo module.config.php que esta ubicado dentro de nuestro proyecto en Source Files\module\Application\config



Y modificamos la línea 65, relatica al idioma, lo cambiamos por 'locale' => 'es_ES', esto nos permitirá generar los archivos es español.



Ahora hacemos click en Ejecutar el Proyecto DominandoPHP.



Vemos como se activa el Internal WebServer con el comando:

C:\php\php.exe -S localhost:8000 -t public


Anteriormente hemos mostrado como funciona el Servidor Web Interno de PHP, aunque no escribimos sobre la opción -t, con ella especificamos cual va a ser la ruta del directorio raiz de nuestro servidor. En el caso de ZF2 es la carpeta public.

Abrimos nuestro navegador en http://localhost:8000


Observamos la ejecución del ZF2.

Nota: Es posible que se requiera la instalación y configuración de Composer para utilizarlo con NetBeans. Lo cual mostraremos en un futuro artículo. Así como un mayor detalle de las características, ventajas y desventajas de cada uno de los frameworks que podemos encontrar para PHP.

Creative Commons License
Tip 5 - Probar con un Framework de PHP por G G Salazar es licenciado bajo Creative Commons Attribution-NonCommercial 4.0 International License.

martes, 22 de julio de 2014

Buenas prácticas - Tip #4 - Probar un IDE

Los Entornos Integrados de Desarrollo (En ingles IDE) son herramientas útiles para cualquier desarrollador. Si bien no son para todo el mundo, un IDE tiene su utilidad. El IDE nos proporciona herramientas como:
  • Resaltado de sintaxis 
  • Completación de código 
  • Avisos de errores
  • Refactorización
Y muchas otras características. Hay un montón de grandes entornos de desarrollo que hay que apoyar PHP.

Explicaremos brevemente como podemos instalar Netbeans, la versión 7.4 en idioma español. En un ambiente de Window 8.1

Paso 1: Visitamos la página oficial de Netbeans y descargamos el IDE.

Vamos al enlace: netbeans.org


Buscamos el buton de descargas (download), una vez estemos en la página de descargas, seleccionamos la versión IDE 7.4, que viene en español (aún la comunidad de desarrolladores están trabajando en la traducción de la versión 8.0). Y le damós descargar a Netbeans IDE PHP.


Paso 2: Instalar Netbeans PHP IDE 7.4

Una vez descargado el archivo netbeans-7.4-php-windows.exe procedemos a la instalación del mismo.


Luego de aceptar los terminos de la licencia, nos preguntara por las carpetas donde instalará Netbeans y Java, en nuestro caso las dejamos por defecto.


Después, procedemos con la instalación en si mismo.


Paso 3: Configurar Netbeans para el lenguaje en Español

Ahora debemos dirigirnos al archivo de configuración de Netbeans, llamado netbeans.conf en nuestro caso esta ubicado en C:\Program Files\NetBeans 7.4\etc

Lo abrimos con editor de texto (en modo de administrador), y buscamos la opción netbeans_default_options y agregamos al final -J-Duser.language=es de la declaración.


Luego ejecutamos Netbeans, y ya estamos listos para poder utilizarlo en nuestros proyectos de PHP.


Algo a destacar, es que con NetBeans podemos sacarle provecho al Sevidor Interno de PHP, explicado en el tip anterior, ya que al crear un nuevo proyecto en PHP, nos pregunta en cual servidor queremos implementarlo, y una de las opciones es Built-in Server. Lo explicaremos con mayor detalle en la creación de un nuevo proyecto.

Creative Commons License
Tip 4 - Probar un IDE por G G Salazar es licenciado bajo Creative Commons Attribution-NonCommercial 4.0 International License.

lunes, 21 de julio de 2014

Nuevo Zend Studio incrementa el soporte de en Eclipse PHP y la productividad de los desarrolladores


Zend es una de las compañías líderes de PHP ha anunciado la disponibilidad de la nueva versión de Zend Studio, el galardonado entorno de desarrollo integrado (IDE). Ofrece uno de los IDE PHP más abierto con una biblioteca completa de plug-ins elaborados por terceros.

Entre sus novedades:
  • Integración con Apigility
  • Aplicaciones listas para puesta en Producción
  • Mayor integración con servidores de aplicaciones
  • Mejorada Integración con composer
  • Tamaño reducido, mejor rendimiento, mejor calidad.

Puedes conseguir mayor información visitando el blog oficial de Zend.

Video introductorio sobre Zend Studio 11 (en ingles)

viernes, 18 de julio de 2014

Buenas prácticas - Tip #3 - Utilizar el principio DRY (No te repitas - Don't Repeat yourself)


El principio DRY es una buena practica que debemos procurar para todos aquellos que estamos comenzando a desarrollar en PHP, se base en que un código funcional se realice una y solo una vez, de modo tal que pueda ser reutilizable en múltiples aplicaciones. DRY por sus siglas en ingles (Don’t Repeat Yourself) o No te Repitas, es una filosofía de procesos la cual promueve la reducción de código duplicado.

Según este principio ninguna pieza de información debería estar duplicada nunca debido a que la duplicación incrementa la dificultad en los cambios y evolución posterior, puede perjudicar la claridad y crea un espacio para posibles inconsistencias. Por “pieza de información” podemos, en un sentido amplio, entender desde datos almacenados en una base de datos pasando por el código fuente de una aplicación hasta llegar a información textual o documentación.

El código duplicado hace que nuestro código sea más difícil de mantener y comprender además de generar posibles inconsistencias. Para ello, dependiendo del caso concreto, la refactorización, la abstracción o el uso de patrones de diseño pueden ser alternativas viables.

La frase utilizada en idioma inglés es "Don’t be WET, stay DRY", que implica principios de programación opuestos.  El término WET (inglés: mojado), al cual se le han dado muchos significados: “We Edit Terribly”, “We Enjoy Typing”, “Write Everything Twice”, etc. Obviamente, significa que existen “piezas de conocimiento” con múltiples representaciones, que podría traducirse como tener la misma información repetida varias veces.

Cuando el principio DRY se aplica de forma eficiente los cambios en cualquier parte del proceso requieren cambios en un único lugar. Por el contrario, si algunas partes del proceso están repetidas por varios sitios, los cambios pueden provocar fallos con mayor facilidad si todos los sitios en los que aparece no se encuentran sincronizados.

Veamos un ejemplo práctico, es común utilizar esta codificación:
<?php
 $mysql  = mysql_connect ( 'localhost',  'usuario_mysqladmin', 'clave_mysqladmin' );
 mysql_select_db( 'DB_NAME' ) or die( "¡Disculpe !! No se pudo seleccionar la Base de Datos.");
?>

Utilizando el principio DRY, el codigo anterior puede reflejarse de esta forma:

<?php
 $db_host = 'localhost';
 $db_usuario = 'usuario_mysqladmin';
 $db_clave = 'clave_mysqladmin ';
 $db_database = 'DB_NAME';
 $mysql = mysql_connect($db_host, $db_usuario, $db_clave);
 mysql_select_db($db_database);
?>

Veamos un ejemplo utilizando la función printf().

Ejemplo de codificación "incorrecta":

<?php
echo '<ul>';
foreach ($aArticulos as $aArticulo)
{
// <li><a href="enlace.html" title="título">título</a> (enlace.html)</li>

 printf('<li><a href="%s" title="%s">%s</a> (%s)</li>',
  $aArticulo['enlace.html'],
  $aArticulo['título'],
  $aArticulo['título'],
  $aArticulo['enlace.html']);
}
echo '</ul>';
?>

El mismo código aplicando el principio DRY:

<?php
echo '<ul>';
foreach ($aItems as $aItem)
{
 printf('<li><a href="%1$s" title="%2$s">%2$s</a> (%1$s)</li>',
   $aArticulo['enlace.html'],
   $aArticulo['título']);
}
echo '</ul>';
?>

Una sugerencia de cuando podemos aplicar este principio:

  1. Si se repite el mismo código varias veces en sucesión, probablemente debería estar usando un bucle
  2. Si se repite el mismo código varias veces en su programa, probablemente deba a dividir ese código a cabo en una función
  3. Si usted se encuentra escribiendo el mismo código en varios programas, probablemente debería estar usando un archivo incluido
  4. Si usted se encuentra escribiendo código complejo para hacer una tarea simple común es probable que haya una función integrada para ayudarle. 
  5. Si usted se encuentra escribiendo código que -. Seguramente - alguien ha hecho antes, mira las bibliotecas de recursos para el idioma que está utilizando - PEAR, PECL, CPAN, Gems ... o en SourceForge.

Para mayor información pueden consultar la Wikipedia | Wikipedia en Inglés | Consejos de Programación

miércoles, 16 de julio de 2014

Buenas prácticas - Tip #2 - Usar el Servidor Web Interno para desarrollar

Podemos comenzar a aprender o desarrollar en PHP sin tener que instalar y configurar un servidor web completo (se requiere mínimo la versión PHP 5.4). 

Paso 1: Activar el Servidor Web Interno de PHP

Sólo debemos ir a la línea de comandos en Windows, Mac o Linux. Debemos posicionarnos en la carpeta donde nuestra aplicación resida, y ejecutar el comando:


php -S localhost:8000

Esto ejecurará un servidor web basado en la consola. La raíz (root) de los documentos se ubicará en la carpeta actual:

PHP 5.5.14 Development Server started at Wed Jul 16 16:22:06 2014
Listening on http://localhost:8000
Document root is C:\html_publico
Press Ctrl-C to quit

Paso 2: Probar que se esta ejecutando el Servidor
A continuación, preparamos un sencillo archivo index.php dentro del directorio C:\html_publico con el siguiente contenido:
<?php
 // Muestra información sobre la configuración de PHP
 phpinfo();
?>

Y procedemos en abrir http://localhost:8000/ en nuestro navegador. Al no incluir explícitamente un nombre de archivo, el servidor devolverá o bien index.php o index.html de la carpeta raíz. Todas las solicitudes de archivos se registran en la ventana de la consola:


[Wed Jul 16 16:22:39 2014] ::1:64411 [200]: /


El navegador en este caso nos mostrará la información sobre la configuración actual de PHP del servidor web interno. Podemos observarlo:

Server API Built-in HTTP server



Existen otros parametros que podemos asignarle al comando del servidor que iremos mostrando en otros tips. Por ahora, si requiere mayor información sobre el Servidor Web Interno puede visitar la documentación oficial.

Creative Commons License
Tip #2 - Usar el Servidor Web Interno para desarrollar por G G Salazar es licenciado bajo Creative Commons Attribution-NonCommercial 4.0 International License.

martes, 15 de julio de 2014

Buenas prácticas - Tip #1 - Usar la versión más estable actualmente (5.5)

Para aquellos que están comenzando, es importante arrancar con la última versión estable de PHP (5.5). En los últimos años ha estado en un proceso de continuo desarrollo y mejoras, sobre las caracteristicas de PHP.  Uno pudiera considerar que las mejoras entre versiones son mínimas, pero en realidad se reflejan en un notable incremento en el rendimiento del sistema.

Cualquier detalle en partícular sobre las funciones, métodos o mejoras, en la documentación oficial en php.net podra obtener la respuesta.

Comenzamos a explicar los pasos para instalar la última versión de PHP 5.5 en Windows 8.1 sin tener instalado ningún servidor WEB (Apache o IIS por ejemplo). Ya que por ahora, si es para aprendizaje o desarrollo, podemos empezar sólo con PHP instalado, una facilidad que estudiaremos en el próximo tip.

La siguiente instalación, de "forma manual", ya que no requerimos de ningún instalador en particular, nos permite tener un mayor control sobre PHP.

Paso 1: Descargar los archivos

Para obtener la ultima versión de PHP 5, en formato .zip, podemos visitar la página www.php.net/downloads.php en virtud que vamos a bajar la versión en especifíco para Windows 8.1 podemos ir directamente al sitio: windows.php.net/download/


Entre las opciones para descargar (binarios o fuentes) elegimos VC11 x64 Thread Safe, particularmente porque la máquina donde estamos ejecutando las pruebas es de 64 bits, la nomeclatura VC11 se refiere a que fue compilado con Visual Studio 2012, y el modo Thread Safe (TS) es una característica que permite optimizar PHP para un entorno multihilo como lo es Windows.



Paso 2: Extraemos los archivos

Procedemos a descomprimir los archivos, a efectos de nuestro tutorial lo instalaremos en C:\php




Por lo que creamos la carpeta en el directorio raiz con el nombre de "php", y extraemos el contenido del archivo php-5.5.14-Win32-VC11-x64.zip dentro del mismo.

Nota: PHP puede ser instalado en cualquier parte de nuestro sistema, pero debemos referenciar la ubicación de su ruta en los siguientes pasos.

Paso 3: Configurar php.ini

Copiamos el archivo C:\ php.ini-development como C:\php.ini adicionalmente debemos utilizar un editor de texto para cambiar algunas líneas.

Definir el directorio de extensiones:
extension_dir = "ext"

Habilitar extensiones. Este proceso dependerá de las librerias que requeramos utilizar, pero las siguientes librerias deberían ser suficientes para adaptarse a una buena cantidad de proyectos (quitamos el punto y coma que tienes al comienzo de cada extensión que requerimos activar):


extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_xmlrpc.dll

Si queremos enviar correos electrónicos usando la función mail() de PHP, entonces debemos escribir los detalles del servidor SMTP que utilicemos.

[mail function]
; For Win32 only.
SMTP = mail.miservidordecorreos.com
smtp_port = 25

; For Win32 only.
sendmail_from = dominandophp@miservidordecorreos.com

Paso 4: Agregar C:\php a la variable de ambiente de ruta.

Para asegurarse que Windows pueda encontrar la aplicación PHP, hay que cambiar la variable de ambiente. Para ello, ir a Control Panel -> Configuración avanzada del Sistema y en la pantalla de Dialogo de Propiedades del Sistema, hacer clic en Variables de entorno. 
Buscamos la variable de sistema PATH y agregamos el siguiente código:
";C:\php;" 
al final de la línea de valor de la variable.

Posiblemente requira reiniciar el sistema.

Paso 5: Probar que PHP esta ejecutandose.

Abrimos el prompt de comandos de windows y ejecutamos la siguiente línea de código:
cd C:\php
php -v

Deberíamos obtener como resultado una respuesta de cual versión de PHP esta instalado.


Creative Commons License
Tip #1 - Usar la versión más estable actualmente (5.5) por G G Salazar es licenciado bajo Creative Commons Attribution-NonCommercial 4.0 International License.