HI I´M AN IDEA
WANNA PLAY
WITH ME?
 

Todas las entradas de tutoriales

15 Consejos o buenas prácticas para empezar a programar en PHP

15 Consejos para programar en php

En estos últimos meses cada semana que pasa me doy cuenta de todos los fallos que he tenido a lo largo de estos año en mi forma de enfocar el desarrollo de aplicaciones en PHP.

Muchos de estos fallos, o vicios, en verdad han sido necesarios. Muchas veces aprendemos a base de reutilizar código y conforme pasan los días ver pequeños errores incluso líneas de código innecesarias que hemos reutilizado prácticamente sin saber para que sirven y que realmente, si no sabíamos porque estaba ahí era porque no valían para nada.

Por ello hoy he decidido compartir ciertos consejos, con los que espero ayudar a mas de uno a no caer en los mismos errores que yo, o simplemente seguro que alguno se siente identificado con ellos.

1. El manual oficial de Php será tu mejor amigo, sobretodo sus comentarios.

Oh bendito manual de php, posiblemente la web que mas he visitado en mi vida, allí encontraremos la mayoría de las respuestas a nuestras preguntas del día a día. A veces recurriremos a ella incluso para las cosas mas básicas una y otra vez hasta que se nos graben con fuego en nuestra memoria. En los comentarios de las funciones hay mas sabiduría que en cualquier tutorial que encontremos por la web.

2. Tener activado Error Reporting siempre que trabajemos con nuestro código.

Una de las maravillas de los lenguajes como php es que al ser un lenguaje de programación interpretado puede funcionar incluso dando errores por ello muchos proveedores de hosting tienen deshabilitada la depuración de errores, siempre que trabajemos depurando nuestro código deberemos tenerlo activado de la manera mas restrictiva posible (E_ALL).

3. Utiliza entornos de desarrollo.

El bloc de notas está genial, pero a mi parecer se queda bastante corto. Los IDE (Integrated Development Environments) nos ayudarán con sugerencias de código, resaltando la sintaxis, depuración de errores… Los hay de todos los tipos solo tienes que encontrar el tuyo.

4. No utilices código redundante.

El concepto DRY (Don’t repeat yourself) es aplicable para todos los lenguajes de programación, intenta parametrizar todo lo que puedas, las constantes son tus amigas. Además combinado con un buen IDE nos ayudará a evitar errores absurdos.

5. Sangra tu código, lo agradecerás.

Hay que acostumbrase a sangrar el código y utilizar espacios en blanco haciendo nuestro código lo mas legible posible. Nos ayudara a movernos a la hora de hacer cambios.

6. Dale una estructura coherente a tu código.

Debemos acostumbrarnos a estructurar nuestro código en distintos componentes, nos ayudará a realizar cambios en un futuro próximo.En php hay una ley no escrita en la que se dice que debemos estructurar nuestro código en 3 grandes grupos.

Por regla general en cualquier aplicación desarrollada sobre php conectaremos con una base de datos, implementaremos una lógica de negocio y por último implementaremos el html que mostraremos en el navegador. Esta debe ser nuestra forma de trabajar, no debemos mezclar el código.

Por poner un ejemplo práctico, si queremos mostrar una tabla con los resultados de una query deberemos estructurarlo de la siguiente manera:

  • Primero nos encontraremos con la parametrización de la base de datos y la conexión con el servidor.
  • En la lógica de negocio inicializaremos un array con los resultados y los valores que queremos mostrar.
  • En la capa visual recorreremos el array creando la tabla.

7. Debemos utilizar estándares para encapsular nuestro código.

Algunas veces podemos utilizar pequeños atajos para ahorrarnos unos segundos a la hora de escribir nuestro código, estos atajos no son oficiales y pueden darnos problemas, por ejemplo en IIS dan errores.

<?
    echo "Hola Mundo";
?>

<?="Hola Mundo"; ?>

<% echo "Hola Mundo"; %>

8. Utiliza una nomenclatura comprensible.

No hay nada peor como verselas con un código en el que no encontremos lo que buscamos. Tu nombre puede ser muy bonito pero no es aconsejable para una variable (verídico).

9. Comenta todo lo que puedas.

Comentar entre líneas a veces puede resultar una tarea tediosa, pero siempre tenemos que intentar dedicarle unos minutos. Cuando nos acostumbremos saldrá solo, creeme lo agradecerás en un futuro.

10. Utiliza límites para tus scripts.

La función set_time_limit especificará un tiempo máximo para la ejecución de nuestros scripts en nuestra aplicación, puede sernos útil en muchas ocasiones. Nos servirá para establecer un máximo en la ejecución de bucles infinitos.

Consejo personal, si nos vemos obligados a incrementar el límite para la ejecución de algún script, suele ser un mal síntoma.

11. Usa Objetos.

La programación orientada a objetos no solo nos ayudará a separar nuestra aplicación en secciones coherentes sino que simplificará nuestro código evitando redundancias y nos hará mas eficientes.

12. Recuerda borrar los ficheros phpinfo().

La función phpinfo nos resulta francamente útil cuando queremos obtener información sobre el servidor en el que estamos trabajando, no solo te muestra la versión de php con la que estamos trabajando sino las extensiones activadas y demás.

Cuando trabajas con webs de clientes resulta básico a la hora de conocer las características de un hosting compartido donde vas a alojar la web, sin embargo, toda esta información en los ojos equivocados puede llevarnos a la ruina, por ello, una buena práctica es borrar los ficheros phpinfo que utilicemos después de trabajar con ellos.

13. Prevé ataques en tus formularios de login.

Los usuarios de nuestra web son nuestra razón de ser, pero no por ello debemos fiarnos de ellos (con cariño jeje), hemos de tener en cuenta que si tenemos formularios de acceso, mas tarde o mas temprano alguien va a intentar reventarlos.

Una buena para práctica para ello es inicializar nuestras variables, así vamos a evitar ataques del tipo Cross Site Scripting (XSS), en PHP.net tenemos un sencillo ejemplo de como desarrollar un formulario seguro.

	<?php
	if (correct_user($_POST['user'], $_POST['password']) {
	    $login = true;
	}

	if ($login) {
	    forward_to_secure_environment();
	}
	?>

14. Encripta tus contraseñas.

Cuando no tenemos mucha idea o simplemente estamos empezando tendemos a almacenar las claves de nuestros usuarios tal y como ellos la han escrito. Esto es una muy mala práctica y muy insegura. Debemos encriptar las contraseñas antes de almacenarlas aplicándoles un algoritmo de “un solo sentido”.

Normalmente se ha utilizado el md5 pero recientemente se descubrió como romperlo por lo que si la información que queremos almacenar es importante deberemos desecharlo también. Actualmente el método mas correcto es aplicando bcrypt.

Para ello primero deberemos comprobar que nuestro servidor es compatible con el algoritmo.

<?php
if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) {
    echo "CRYPT_BLOWFISH está activo!";
}
else {
    echo "CRYPT_BLOWFISH no está activo";
}

El sistema es similar al de aplicar una hash key con la condición de que debe empezar por $2a$ seguido de dos dígitos numéricos, un símbolo de dolar y 22 dígitos alfanuméricos.

<?php
$salt = '$2a$07$R.gJb2U2N.FmZ4hPp1y2CN$';
crypt("clavesupersecreta", $salt);
?>

15. Prueba sistemas de mapeo del tipo ORM.

Si utilizamos programación orientada a objetos en nuestra aplicación PHP entonces podremos utilizar librerías ORM (object relational mapping) que nos permiten convertir datos entre bases de datos relacionales y lenguajes de programación orientados a objetos, así trabajaremos con nuestra base de datos de una manera similar a la que trabajamos con objetos y clases en php.

Hay muchas librerías y frameworks de este tipo para php, solo tenemos que buscar y dar con la que mejor se adapte a nuestras necesidades.

 

VN:F [1.9.20_1166]
Rating: 9.8/10 (6 votes cast)

Instalar xentools en una instancia de turnkey linux

Instalar xentools en una instancia ubuntu de turnkeylinux

Últimamente en la oficina utilizo de servidor de pruebas una “appliance” de las que tiene disponibles para descarga la empresa turnkey, por cierto mas que recomendables, virtualizada sobre un xenserver que es el entorno que estamos acostumbrados a montar en la empresa, muy recomendable también.

Hace unos meses que trabajo con este sistema y la verdad es que creo que no podría tenerlo mejor montando.

Por un lado tengo un servidor web donde hago mis pruebas y accedo vía sftp. Y por otro tengo otra con mi redmine montado corriendo sobre ruby y un sistema de control de versiones mediante svn.

Para el que no esté familiarizado con este tipo de plataformas de virtualización, una vez que hayamos montado nuestra instancia siempre nos recomiendan que instalemos una serie de utilidades que nos van a proporcionar un rendimiento mayor de nuestra máquina virtual. En el caso de xenserver son las conocidas xentools.

seguir leyendo “Instalar xentools en una instancia de turnkey linux” »

VN:F [1.9.20_1166]
Rating: 7.0/10 (1 vote cast)

Introducción a JSON y principales usos (II)

Trabajando con la API de twitter en JSON

Uno de los usos mas extendidos de la notación JSON es en el uso de llamadas en las distintas APIs.

Para nuestro ejemplo vamos a usar la API de Twitter debido a lo facil que es de comprender y lo bien estructurada y documentada que está.

Cargando el objeto

Si repasamos la API de Twitter, podemos ver podemos ojear la cantidad de llamadas que nos proporciona como por ejemplo la que nos permite acceder al timeline completo de un usuario. El formato de la URI para la llamada se forma así:
https://twitter.com/statuses/user_timeline/jacobMulero.json
seguir leyendo “Introducción a JSON y principales usos (II)” »

VN:F [1.9.20_1166]
Rating: 5.5/10 (2 votes cast)

Introducción a JSON y principales usos

He decidido escribir una serie de artículos dedicados a la notación JSON y sus distintas implementaciones.

JSON (JavaScript Object Notation) ha adquirido en estos últimos años dentro de la comunidad web debido principalmente a la sencillez de su implementación y que su uso está muy extendido en las respuestas de las APIs mas conocidas.

Cuando hablamos de JSON no estamos refiriéndonos solo a una forma de representar los objetos en javascript sino que es la forma en que javascript mapea los objetos en memoria, en conclusión, una manera extremadamente rápida de pasar datos entre dos interfaces.
seguir leyendo “Introducción a JSON y principales usos” »

VN:F [1.9.20_1166]
Rating: 6.0/10 (2 votes cast)

Desarrollando una sencilla web PHP orientada a objetos.

Buenas!

Después de muchos meses sin escribir nada he decidido retomar el blog dándole una nueva tónica intentando pequeños tutoriales o snippets de mi uso diario y no sólo limitándome a android, sino a mi pan de cada día.

Éstos últimos meses estoy intentando cambiar muchos vicios en mi forma de desarrollar intentando dedicar mas tiempo a realizar un buen análisis evitando ponerme a picar código sin más como hacía anteriormente.

Hoy he comenzado el desarrollo de una web y he decidido darle una pequeña vuelta a forma de enfocar proyectos de este tipo y hacer esta web orientada a objetos desde un primer momento.

Voy a explicar como lo he enfocado.

seguir leyendo “Desarrollando una sencilla web PHP orientada a objetos.” »

VN:F [1.9.20_1166]
Rating: 10.0/10 (1 vote cast)