Colabora para que NetBeans soporte Symfony

Acabo de leer en el blog de Symfony en español que la versión 6.5 de netbeans incluirá soporte para PHP y que además se espera que soporte algún framework PHP. Los desarrolladores de netbenas han decidido someter a votación que 2 frameworks serán soportados en esta nueva versión.

En este post del blog en español de Symfony explican como dar nuestro voto a Symfony :)

HOWTO: Obtener el tipo MIME de un archivo mediante PHP

Edito sábado, 09 de agosto de 2008: Corregido un error en el nombre del paquete de PEAR en Ubuntu. Gracias david.

Sigo peleándome con mi proyecto fin de carrera, y mi última batalla ha consistido en obtener el tipo MIME de un archivo mediante PHP. Tras un vistazo al manual de PHP me encontré con esta extensión de PHP que hace lo que necesito y mucho más.

Se puede instalar mediante PEAR, para ello seguimos el siguiente procedimiento.

  1. Instalamos PEAR, las librerías para desarrollo de PHP y de libmagic.
    1.  
    2. sudo aptitude install php-pear php5-dev libmagic-dev
    3.  
  2. Usamos el comando pecl para instalar la extensión
    1.  
    2. sudo pecl install fileinfo
    3.  
  3. Añadimos la extensión a nuestro php.ini, para ello accedemos creamos un nuevo archivo llamado extensiones.ini en la carpeta /etc/php5/conf.d y añadimos dentro la linea:

    extension=fileinfo.so
    
  4. Por último reiniciamos apache
    1.  
    2. sudo /etc/init.d/apache2 restart
    3.  

Ya tenemos la extensión instalada, ahora para obtener el tipo mime podemos usar un código parecido a este.

  1.  
  2. $finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic");
  3. $filename = ‘/ruta/al/archivo.jpg’;
  4. $mime_type = $finfo->file($filename);
  5.  

Tras esto tendremos el tipo MIME almacenado en la variable mime_type. Para más ejemplos de uso de la extensión se puede acudir a la página del manual de PHP.

Enlaces útiles para comenzar con Symfony Framework

Como el nombre del post indica, ahí va una lista de enlaces que pueden ser bastante útiles a la hora de comenzar a desarrollar aplicaciones con Symfony.

HOWTO: symfony framework en Ubuntu Hardy 8.04

Edito (15 de junio de 2008 - 11:52 ): He añadido un par de modificaciones que hay que hacer a la configuración de apache.
Edito (16 de junio de 2008 - 12:10): Otra corrección necesaria en la configuración de apache.

Symfony es un framework para desarrollar aplicaciones web basándonos en el patrón MVC. Me estoy peleando a fondo con él por que lo estoy usando para mi proyecto fin de carrera y me viene genial por que me evita pelearme con muchas cosas a la hora de desarrollar la parte de mi proyecto que es una aplicación web.

La instalación es bastante cómoda y se puede realizar a través de PEAR o mediante un paquete .deb. Yo he elegido la opción de PEAR por que me ha parecido más cómoda y así evito tener que añadir otro repositorio a Ubuntu. El proceso es muy simple:

  1. Instalamos Apache. Yo tengo la mala costumbre de usar para ello un método bastante “cutre” que consiste en instalar phpmyadmin, ya que así se resuelven todas las dependencias necesarias para Apache y PHP

    1.  
    2. sudo aptitude install phpmyadmin
    3.  
  2. Instalamos pear:

    1.  
    2. sudo aptitude install php-pear
    3.  
  3. Añadimos el canal de Symfony:

    1.  
    2. sudo pear channel-discover pear.symfony-project.com
    3.  
  4. Instalamos Symfony mediante PEAR:

    1.  
    2. sudo pear install symfony/symfony
    3.  

Por último solo nos resta configurar Apache. Para mi proyecto he configurado un host virtual con un log separado, así podré testear y depurar cómodamente. Configurarlo en Ubuntu es muy sencillo, solo es necesario añadir una entrada a /etc/hosts y crear el archivo de configuracion del host virtual. Veamos como hacerlo por pasos.

  1. Añadimos la entrada con el dominio que queramos a /etc/hosts. Yo he elegido dominio.com para el ejemplo, pero se puede elegir otro

    1.  
    2. echo "127.0.0.1 dominio.com" >> /etc/hosts
    3.  
  2. Ahora creamos una entrada en /etc/apache2/sites-available/dominio.com con el siguiente contenido

    1.  
    2. NameVirtualHost *
    3. <virtualHost *>
    4.         ServerName dominio.com
    5.         ServerAdmin webmaster@dominio.com
    6.  
    7.         DocumentRoot /var/www/src/web
    8.         DirectoryIndex index.php
    9.  
    10.         ## Cambiamos esta ruta por la que nos convenga
    11.         ErrorLog /ruta/al/fichero/de/log/archivo.log
    12.  
    13.         # Possible values include: debug, info, notice, warn, error, crit,
    14.         # alert, emerg.
    15.         ## Podemos cambiar también el nivel de log por el que más nos convenga
    16.         LogLevel warn
    17.  
    18.         CustomLog /ruta/al/fichero/de/log/archivo.log combined
    19.         ServerSignature On
    20.  
    21. #Configuracion de symfony
    22.  
    23.     Alias /sf /usr/share/php/data/symfony/web/sf
    24.  
    25.     <directory "/usr/share/php/data/symfony/web/sf">
    26.         AllowOverride All
    27.         Allow from All
    28.     </directory>
    29.  
    30.  
    31.     <directory "/var/www/src/web">
    32.         AllowOverride All
    33.         Allow from All
    34.     </directory>
    35.  
    36. </virtualHost>
    37.  
  3. Por último activamos el host virtual, mod_rewrite y reiniciamos apache

    1.  
    2. sudo a2ensite dominio.com
    3. sudo a2enmod rewrite
    4. sudo /etc/init.d/apache2/reload
    5.  

Solo falta editar el archivo /etc/php5/apache2/php.ini y cambiar la linea magic_quotes_gpc = On por magic_quotes_gpc = On

Algunas aclaraciones. En mi caso el código fuente de la aplicación va en una carpeta de mi directorio de usuario y la carpeta /var/www/src es un enlace simbólico a esa carpeta. Este directorio también queda a vuestra elección, pero hay que tener en cuenta que suele ser necesario hacer cambios en el directorio con el código, por lo que es conveniente tener acceso de escritura y también que hay que hacer los cambios pertinentes en el fichero del host virtual de Apache.

Para comenzar a desarrollar podemos acudir a la página de Symfony y seguir su increíble “tutorial” escrito en forma de libro o en librosweb si preferís el libro en español.

Actualizado… o casi

Ya casi he terminado de actualizar la plantilla de OBG. Creo que tiene un aspecto más claro así, sin embargo se aceptan sugerencias (como siempre). Una de las cosas que he hecho es eliminar el soporte para internacionalización de Sandbox en un intento por hacer la plantilla algo más rápida. Me he basado, principalmente, en los consejos de este post de Andrés Nieto.

Todavía tengo algunas modificaciones pendientes y algunos añadidos que me gustaría añadir. En cuanto estén listos la publicaré por si le sirve a alguien. De todas maneras si alguien quiere el código solo tiene que pedirlo, pero aviso de que es una auténtica chapuza, no está terminado en absoluto y tiene fallos y remiendos por todos lados.

Lista de provincias, poblaciones y códigos postales

Hace unos días necesité una lista los más extensa posible de provincias españolas, con sus poblaciones y códigos postales correspondientes. El caso es que después de buscar durante un buen rato encontré esto.

La lista está en tres formatos: XML, texto plano y MySQL. Al final yo no conseguí averiguar como subir la base de datos en MySQL a mi servidor… así que tuve que optar por escribir un script en php para extraer la información que necesitaba del archivo de texto. Al final, como soy un poco descuidado lo perdí. Pero para los que necesiten escribir uno nuevo un par de pistas.

Hace falta usar las funciones: fopen, strtok y fgets.

Joomla 1.5

Por motivos de trabajo llevo una temporada trabajando y destripando Joomla 1.5. Es el principal culpable de que últimamente postee con cuentagotas.

Este CMS es uno de los más usados del mercado y en esta nueva versión han mejorado bastante. Su licencia es GPL 2 y está programado en PHP.

Ya había usado las versiones 1.0.X con anterioridad y me sorprendían enormemente su facilidad de uso y la cantidad de extensiones, plugins y módulos que se podían encontrar para él. Aunque administrar una página web no es una tarea trivial Joomla facilita enormemente la tarea. Dispone de herramientas para administrar usuarios, artículos (en forma de weblog), contactos, enlaces, etc. y además su API para la creación de plugins y componentes es bastante extensa y soporta el patrón MVC.

Hasta ahora nunca había tenido que programar un componente para Joomla, sin embargo la tarea no es imposible. En la página web de Joomla podemos encontrar una ayuda bastante buena para esta tarea: un API bastante completo (aunque algo caótico) y algunos ejemplos de código además de un foro con bastante actividad.

El principal problema es que la documentación de la versión 1.5 aún no está completa y claro, tarde o temprano tienes que acabar buceando en el código de los componentes que forma el núcleo de Joomla a los cuales, dicho sea de paso, les falta un poquito de documentación. Esa es la única pega que le veo, aunque quizá sea por que estoy muy acostumbrado a Java y la documentación que incluye de serie me resultaba muy cómoda.

Por cierto en Leandono’s Blog se puede encontrar la primera parte de un tutorial bastante prometedor para la creación de plantillas de Joomla.

Por último recomendaros algo de bibliografía sobre el tema: Learning Joomla 1.5 Extension Development de Packt publishing esta muy bien y además de incluir muchos ejemplos de código avanza paso a paso en el desarrollo de una web completa con Joomla y explica muchas cosas acerca del API de Joomla que no son fáciles de averiguar.

Si el trabajo me deja un poco de tiempo intentaré postear algún ejemplo “tonto” de un componente muy básico.