rulu ruru

postOptimizar PHP.

June 24th, 2009

Filed under: PHP — admin @ 6:43 pm

Estaba leyendo el siguiente articulo : http://code.google.com/intl/es-ES/speed/articles/optimizing-php.html : Y me encontré con una explicación, que si bien conocía, nunca se me habia dado por explicarla en este blog.

Paso a explicar los conceptos.
Para empezar el articulo nos pide practicamente que no declaremos variables que ya están declaradas. Por ejemplo

$FirstName = $_POST['firstname'];
echo $FirstName;

El pasado ejemplo está mal, debido a que re-declaramos la variable, cuando podría enviarse directamente con:

echo $_POST['firstname'];

Al tutorial le agregaría que: De no utilizar más la variable en el script, la eliminemos con
unset($_POST['firstname'];

Nos pide que no utilicemos Comillas dobles sino comillas simples para imprimir STRINGS. ¿La razón? Las comillas dobles buscan variables en el string, convirtiendolas a su valor original. Por ejemplo:

$FirstName = “Nicolás”;

echo “Hola, mi nombre es $FirstName”;

Ese ejemplo, está mal, debido a que NO concatenamos debidamente, Un buen ejemplo de uso sería:

$FirstName = ‘Nicolás’;
echo ‘Hola, mi nombre es’ , $FirstName;
unset($FirstName); //No utilizamos más la variable FirstName

Ahora se preguntarán por qué utilicé una coma en vez de concatenar con un punto. La respuesta es simple, utilizando una coma evitamos que PHP primero concatene el string, pasamos directamente a mostrar el string y las variables en orden. Por ejemplo:

$FirstName = “Nicolás”;
$LastName = “Bogado”;

echo ‘Hola, Mi nombre es ‘.$FirstName.’ ‘.$LastName.’ Y te saludo con mi primer script en PHP’;

El ejemplo sigue estando mal, la mejor manera es:

$FirstName = “Nicolás”;
$LastName = “Bogado”;

echo ‘Hola, Mi nombre es ‘ , $FirstName , ‘ ‘ , $LastName.’ Y te saludo con mi primer script en PHP’;
unset($LastName); unset($FirstName);

Y por último, la url hace referencia a que no utilicemos “IF / Elseif” si podemos usar “Switch”. (Siempre es preferible usar switch)

if($_POST['action'] == ‘add’) {
addUser();
} elseif ($_POST['action'] == ‘delete’) {
deleteUser();
} elseif ($_POST['action'] == ‘edit’) {
editUser();
} else {
defaultAction();
}

El ejemplo está mal, lo ideal sería utilizar:

switch($_POST['action']) {
case ‘add’:
addUser();
break;
case ‘delete’:
deleteUser();
break;
case ‘edit’:
editUser();
break;
default:
defaultAction();
break;
}

En la URL también se explica que no se debe usar “Print” para hacer lo que ECHO debería hacer, pero doy por sabido ese capitulo para todos.

Entre otras tantas cosas. Viendo que es un capitulo interesante, a la brevedad voy a escribir otras formas de optimización de código PHP. (Como liberar ejecuciones mysql)

Enlaces pagos


No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

You must be logged in to post a comment.

ruldrurd
Entries (RSS) and Comments (RSS)