aqui les dejo el listado
- Inicializa las variables antes de utilizarlas
- Incrementar una variable global es dos veces mas lento que una variable local
- Declarar una variable global realentiza tu script
- Usar ip2long() y long2ip() para almacenar direcciones IPs como enteros en lugar de cadenas en la base de datos. Esto reducirá el espacio de almacenamiento en cuatro veces (15 bytes por carácter char(15) contra 4 bytes del entero), además de facilitar el calcular cuanto una dirección entra en un rango, y acelerar las busquedas y ordenaciones.
- Validar direcciones de email mediante checkdnsrr(). Es una función de PHP que comprueba si un dominio existe.
- Si usas PHP 5 con MySQL 4.1 o superior, deberías utilizar las funciones de mysqli_ en lugar de mysql_, ya que son más rápidas y puedes utilizar hasta sentencias preparadas.
- Utiliza el operador ternario
- Utilizar PEAR para no tener que programar funciones ya programadas
- Prevenir que el sistema proporcione mensajes de error al usuario utilizando la función error_reporting(0), cuando programamos los mensajes de error son útiles, pero el usuario final no debería verlos.
- Utilizar gzcompress() y gzuncompress() para almacenar cadenas largas en la base de datos, esto puede ahorrarnos hasta un 90% de espacio
- Devolver múltiples valores de una función pasándolos mediante referencia.
- Comprender el peligro de utilizar magic_quotes y la inyección SQL
- Utilizar Smarty o algún otro motor de plantillas para separar la lógica de la presentación, ahorrarás muchos dolores de cabeza
- Sustituir $i++; por ++$i;
- Sustituir $i += 1; por ++$i;
- Sustituir rand($min,$max); por mt_rand($min,$max);
- Sustituir $i = 0; while($array[$i]){ ++$i; } por $i = 0; $count = count($array); while($i < $count){ ++$i; }
- Utilizar echo en lugar de print como salida de resultados
- Sustituir ob_start(); echo '..'; ob_end_flush(); por ob_start(); print '..'; ob_end_flush();
- Escribir una cadena con etiquetas HTML o algún otro texto fijo directamente, sin utilizar echo ni print
- Sustituir include('output/contain_no_php'); por readfile('output/contain_no_php');
- Sustituir echo "$variable cadena "; por echo $variable.'cadena';
- Emplear variables en lugar de contantes
- Siempre utilizar una función existente en PHP antes de crearla por nosotros mismos
- Las operaciones en formato expandido son habitualmente más lentas
- Utilizar triple = para los if
- En un if siempre que hagamos una comparación de una variable con un valor constante, colocar primero el valor constante que la variable. Ejem: if(10 == $x)
- Crea tu propios manejadores de error, utiliza set_error_handler('funcion_que_maneja_errores');
- Cada vez que llamas a una página se llama al compilador y se vuelve a procesar, aunque no haya cambiado. Si se cachean los objetos de PHP, la primera vez se compilaría y la siguiente se usaría la compilada. Una herramienta gratuita que nos permite realizarlo es Turck MMCache for PHP
- Desactiva el acceso a ficheros remotos, en php.ini: allow_url_fopen = Off
- Desactiva también register_globals, en php.ini: register_globals = Off
- Restringe a qué ficheros puede acceder PHP, en php.ini: open_basedir = /www/ficheros
- Activa el modo seguro en PHP, en php.ini: safe_mode = Off safe_mode_gid = On
- Al activar el modo seguro no se pueden ejecutar ficheros binarios, por lo que deberás indicar donde se situan los binarios que si se pueden ejecutar, en php.ini: safe_mode_exec_dir = /www/ejecutables
- Tampoco está permitido acceder a variables de entorno en el modo seguro, pero se puede inluir una lista (separada por comas) de prefijos que se permiten para estas variables, en php.ini: safe_mode_allowed_env_vars = PHP_
- Evitar la ejecución de la shell, en php.ini: disable_functions = system, exec, shell_exec, passthru, pcntl_exec, putenv, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, popen, pclose, set_time_limit, ini_alter, virtual, openlog, escapeshellcmd, escapeshellarg, dl, curl_exec, parse_ini_file, show_source
- Trata de tener la mayoría de la BD en memoria, usando para ello memcached
- Utiliza clases para realizar los accesos a la base de datos, por ejemplo PEAR DB, es más seguro y flexible a la hora de cambiar de unab ase de datos, por ejemplo de MySQL a SQLite
- Require es más rapido que require_once, lo mismo pasa con include e include_once
- Comprobar que todas las variables, sobre todo las obtenidas mediante $_GET y $_POST son válidas, para ello puedes emplear expresiones regulares
- No poner a los archivos importantes nombres simples como config.php, etc... ni en carpetas simples como includes/config.php y cosas así
- En las consultas MySQL seleccionar sólo los campos que necesitemos extraer de la base de datos, no todos
- Sí sólo quieres extraer una fila utiliza LIMIT 1, para que al encontrarla no siga buscando más
- Utiliza mysql_fetch_assoc para extraer los resultados de una variable al realizar una consulta MySQL, ya que al utilizar mysql_fetch_array se extrae la información en un array el doble de largo
- Utiliza valores por defectos y NOT NULL en tu base de datos, hará las consultas e inserciones más rápidas
- Intenta no concatenar texto cuando no sea necesario
- Utiliza la comilla simple (') en vez de la comilla doble (") siempre que no vayas a usar variables dentro, la comilla doble hace que el intérprete analice lo que hay dentro de las comillas, además a la hora de concatenar es más rápido también utilizar comillas simples
- Cuando uses echo, separa los strings por comas mejor que con puntos, es más rápido. Esto solo funciona con echo
- Indica el valor máximo para tus bucles for fuera del bucle en vez de dentro del bucle, porque si no, se evaluará la expresión en cada pasada del bucle
- Libera variables siempre que puedas, sobre todo arrays pesados.
descubierto en meth blog
No hay comentarios.:
Publicar un comentario