Recetas Código: PHP

De Daniel Pecos

Contenido

Habilitar el mostrar errores en la salida generada:

<? 
error_reporting(E_ALL);
ini_set('display_errors', '1'); 
?>
<? 
// usefull during development
if( isset($showerrors) && $showerrors ) {
	error_reporting( E_ALL | E_NOTICE );
} else {
	error_reporting( E_ERROR | E_WARNING | E_PARSE );
}
?>

Evitar la cache del navegador:

<?
header("Expires: Sat, 01 Jan 2000 01:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

Borrado de cookies y de sesión:

<?
session_start();

foreach($_COOKIE as $key => $value) {
        if ($key != session_name())
                setcookie($key, "", time()-42000);
}

session_unset();
if (session_id != "" || isset($_COOKIE[session_name()])) {        
        setcookie(session_name(), '', time()-42000);
}
session_destroy();

header("Location: /");
exit;
?>

Uso de Gettext:

1 - Extraer las cadenas del código fuente (tanto como para la creación inicial del fichero, como para actualizaciones):

xgettext ../src/*.php --output=index.pot --from-code=ISO-8859-1
xgettext -j ../src/admin/*.php --output=index.pot --from-code=ISO-8859-1
xgettext -j ../src/npshop/*.php --output=index.pot --from-code=ISO-8859-1
...

2 - Convertir el fichero a ISO, si es necesario

msgconv -t iso-8859-1 index.pot > indexISO.pot

3 - En caso de estar creando el fichero inicial:

msginit --input=indexISO.pot --output=messages.po --locale=en_US

4 - En caso de estar actualizando un fichero previamente traducido con las posibles nuevas cadenas:

msgmerge --update messages.po indexISO.pot 

5 - Finalmente, y después de haber traducido las cadenas (con gtranslator o poedit), generar el fichero binario:

msgfmt messages.po -o messages.mo
Herramientas personales