Archivo de la etiqueta: php

empleo-frameworks-php

Frameworks para desarrollo web: PHP

Para cualquiera que se dedique a programar aplicaciones web sabe que hoy día es una locura empezar a desarrollar desde cero. Para hacernos la vida más fácil existen muchas herramientas que nos ayudarán a programar mejor y más rápido nuestras webs. Y son muy útiles para aquellas personas que no saben cómo crear su página web o que tienen poca experiencia. Estas herramientas suelen recibir el anglicismo “framework“.

La mayoría de estos frameworks siguen la arquitectura MVC (Modelo-Vista-Controlador), que permite un desarrollo estructurado que sea más ágil y colaborativo. A continuación os presento una lista de los frameworks más usados para desarrollo web agrupados por lenguaje. En este primer post trataremos los frameworks PHP más populares.

PHP

  • WordPress: aunque inicialmente fue ideado como un software de creación blogs, hoy día es usado para multitud de sitios webs. Su amplia comunidad, la facilidad de instalación y el extenso repositorio de plugins lo hacen una buena elección. Este es uno de mis favoritos.
  • Drupal: al igual que WordPress, es uno de los más populares. Su versatilidad y su amplia comunidad lo hacen uno de los mejores. Es quizá uno de los más longevos, ya que su primera versión fue lanzada en 2001.
  • Joomla: junto con WordPress y Drupal, es uno de los más extendidos. Personalmente no he tenido buenas experiencias con él, ya que su interfaz de administración me parece poco intuitiva. Puedes ver un infografía de WordPress, Drupal y Joomla aquí.
  • CakePHP: surgió inicialmente para llevar la filosofía de Ruby on Rails a PHP, de manera que se ofrece como un framework de desarrollo ágil. De los mismos creadores de CakePHP surgió Lithium, que parte desde PHP 5.3 para aprovechar al máximo las posibilidades de este lenguaje y permite la conexión con bases de datos NoSQL.
  • Zend: es uno de los frameworks más robustos y con un buen apoyo de la industria. Se autodefine como extremedamente simple y productivo, pero no he tenido la ocasión de comprobarlo.
  • Symfony: uno de sus puntos fuertes es el rendimiento. Usa twig como sistema de plantillas (derivado del de django). Al igual que Zend, tampoco lo he probado, pero he oído buenas críticas de él.

En el próximo post veremos los frameworks para python. Espero que aportéis vuestras experiencias con los distintos framworks y cuál es vuestro favorito.

Podéis consultar una comparativa más extensa de frameworks en la Wikipedia (sólo en inglés).

Problemas con el redimensionado de imágenes en WordPress

Os pongo en situación. Web con WordPress + BuddyPress + algún que otro plugin + alojamiento en 1&1. Al intentar subir una imagen salta un error del tipo: Fatal Error: Allowed memory size of X bytes exhausted….

Por lo que he podido averiguar, el problema viene de que el alojamiento compartido de 1&1 está limitado a 30MB de RAM por usuario, y la instalación de WordPress que tenemos está sobre los 28 y 29MB. WordPress utiliza por defecto la librería GD de PHP para redimensionar imágenes, acción que realiza una vez subida dicha imagen, y este proceso requiere cargar la imagen en memoria y realizar las operaciones oportunas, dando como resultado que exceda de la memoria permitida.

Tras probar diversas soluciones que consisten en ampliar la memoria asignada a PHP a través de los archivos .htaccess, php.ini y wp-config.php, ninguna de ellas me servía. De hecho, en el propio código de WordPress, antes de redimensionar la imagen, realiza esa misma ampliación hasta los 256MB, así que tampoco solucionaba nada.

La solución final por la que he optado, ha sido doble. En primer lugar, desactivar el plugin de Akismet y cerrar los comentarios para evitar el spam, de manera que solo puedan comentar los usuarios registrados. Esto arreglaba algunas cosas, pero seguía sin solucionar el problema de las imágenes. Finalmente encontré en WordPress Answers un plugin para reemplazar GD por ImageMagick, de esta manera evitamos que la operación de redimensionado se realice usando PHP. El plugin se llama ImageMagick Engine. Además, con esto conseguimos una mejor calidad de imagen.

substr HTML seguro en PHP

Si habéis programado en PHP seguramente habréis utilizado la función substr que sirve para obtener una subcadena de una cadena de texto mayor tamaño. Por ejemplo:

Obtendríamos como resultado ‘Hola’.

Pero si estamos usando una cadena que contiene código HTML, es posible que se queden etiquetas abiertas y nos de problemas. Por ejemplo:

Obtendríamos como resultado ‘<a h’. Y no es lo que quería.

He encontrado una solución en los comentarios de la propia web de PHP. Sería usar la siguiente función en vez de substr.

Por tanto, si ahora cambiamos substr por csubstr, obtendríamos como resultado ‘<a href=”helloworld.php”>Hello</a>’. Que a la hora de imprimirlo en una web quedaría correctamente.