pateketrueke
Estudiante, músico y desarrollador web freelance!
Entradas de pateketrueke
Sugerencia del editor: programar “al punto” III
13 Ene
Tercero, separar y mantener ordenados nuestros scripts. Algunos problemas casi míticos resultan de un mal manejo de nuestros includes -entre otras cosas-, y no solo de su contenido, sino que también el punto en el que hacemos uso de ellos.
Por lo general debemos separar nuestra lógica de aplicación de la forma en que la representamos:
- Hacer los cálculos en un solo script, y si necesitamos imprimir resultados utilizamos un include
- No mezclar grandes cantidades de HTML en un script con bastante código PHP y viceversa
- Agrupar las funciones en uno o varios scripts, por tipo o categoría, procurar incluirlas una sola ves
- Como dicta la regla: si el script contiene solo código PHP, omitir el ?> al final del script
- Cualquier acción que implique enviar cabeceras debe hacerse primero en el flujo del código
- Procurar obtener los datos mucho antes de utilizarlos, no justo antes de utilizarlos
Definitivamente la lista puede tornarse redundante, me ha tocado ver scripts horriblemente programados y cientos de veces el mismo horror una y otra ves.
No importa si usas un framework o haces todo “a mano”, tampoco debes seguir estas recomendaciones, pero una cosa es segura: si comienzas bien ahora, después no tendrás problemas.
Sugerencia del editor: programar “al punto” II
13 Ene
Segundo, el interprete de PHP y su configuración es un tema delicado. Si queremos hacerlo bien, debemos configurarlo de la mejor manera posible.
En la mayoría de los casos, los problemas provienen del uso inconsciente de alguna opción del php.ini. Ya sea por costumbre o falta de información, tenemos la obligación de abolir estos malos hábitos y seguir un estándar próximo a la realidad de PHP:
- Reporte de errores al máximo – error_reporting = E_ALL|E_STRICT
- Procurar etiquetas normales – short_open_tag = OFF
- Sin comillas mágicas – magic_quotes_* = OFF
- Cancelar globales – register_globals = OFF
Muchas mas opciones pueden ser consideradas para tener el entorno adecuado, pero en esencia el detectar y depurar problemas es la mejor solución a los “errores”. Lo mas fácil no siempre es lo correcto.
Sugerencia del editor: programar “al punto”
13 Ene
Primero, necesitamos elegir el editor adecuado, y editores de texto existen muchos, IDEs reconocidos y multi-plataforma. También con resaltado de sintaxis, de errores, etc.
Uno muy bueno para empezar es KomodoEdit. Por una lado sus extensiones lo hacen competir directamente con cualquier IDE, mas adelante su integración con casi cualquier lenguaje y el resaltado sintáctico lo hacen ganarse mi admiración.
Y eso es todo lo que necesito:
- Algún administrador de archivos con soporte para FTP – JSTreeDrive
- Explorador de código lateral, lista de clases, funciones, etc. – Komodo SourceTree
- Asistente para pendientes y notas – TODO Helper
- Modificaciones de interfaz – Tweak UI
- Opciones extra – Dafizilla MoreKomodo
- Comparar – Dafizilla Visual Differ
- Resaltado de errores y sintaxis integrado*
- WebBrowser, Calltips, Macros, Snippets, …
* hay que tener instalado el interprete y configurarlo en el dialogo de preferencias
Además podemos configurar los colores del resaltado de sintaxis, importar y exportar estilos, definir carpetas para el indexado de calltips, y toneladas de funcionalidades nuevas. Después de todo usa la misma tecnología que Firefox.
Sencillamente para todos, Gracias.
Rastro de migas…
9 Ene
Eventualmente hemos desarrollado sistemas que contienen categorías, sub-categorías, etc. Y un requerimiento es casi siempre: indicar donde estamos, de donde venimos y como volver.
Para eso sirven los breadcrumbs, ellos nos indican en todo momento donde estamos ubicados.
Independientemente de como implementemos nuestro desarrollo, casi siempre existe una relación inherente entre unos elementos y otros. Esta relación se manifiesta de la siguiente manera:
<?php
// este arreglo lo obtenemos de nuestra base de datos
// y tiene mas-o-menos la siguiente estructura:
// ID => array(NOMBRE, CATEGORIA)
$set = array(
1 => array('Foo', 0),
2 => array('Bar', 1),
3 => array('Candy', 4),
4 => array('Algo', 5),
5 => array('Es', 7),
6 => array('Mejor', 9),
7 => array('A', 2),
8 => array('Veces', 3),
9 => array('Genial', 8),
);
$out = array();
$top = array_rand($set);
// el manejo de la profundidad es recursiva
// y siempre se utilizan los índices
while (isset($set[$top]))
{
$test = $set[$top];
$top = $test[1];
$str = $test[0];
$out[] = $str;
}
echo join(' › ', $out);
?>
Posiblemente no es muy claro el código, pero con un poco de serenidad y reflexión lo comprenderemos…
¡Suerte!
Ordenar archivos con PHP
7 Ene
Cuando necesitamos listar archivos de una determina carpeta, muchas veces necesitamos hacerlo en determinado orden. Por ejemplo, los mas antiguos primero, o los que no han sufrido modificaciones recientemente al final, por tamaño, etc.
Aquí una solución genérica para este tipo de ordenamientos:
<?php
function archivos($carpeta = '.', $limite = NULL, $reversa = FALSE)
{
// arreglo de salida
$out = array();
// abrimos la carpeta
$tmp = opendir($carpeta);
// mientras leemos la carpeta
while (FALSE !== ($old = readdir($tmp)))
{
// ruta compuesta
$new = $carpeta . DIRECTORY_SEPARATOR . $old;
// debe ser un archivo...
if (($old != '.' && $old != '..') && is_file($new))
{
// archivo => fecha de modificacion
$out[$new] = filemtime($new);
}
}
// cerramos
closedir($tmp);
// ordenamos (nuevos primero)
arsort($out);
// invertimos orden??
if ($reversa === TRUE) $out = array_reverse($out);
if ($limite > 0)
{
// limitamos...
$out = array_slice($out, 0, $limite);
}
// regresamos el arreglo
return $out;
}
// modo de uso
$aqui = dirname(__FILE__);
var_dump(archivos($aqui, 3));
?>
Las aplicaciones son diversas, y no solo se puede ordenar por dicho atributo… ¡A divertirse!
Nuestro propio servicio web: Postable*
7 Ene
En ocasiones, algunos blogs o foros no permiten o mejor dicho, no facilitan el correcto formato de nuestros mensajes cuando usamos código.
Cuando utilizamos HTML sobre todo, necesitamos escapar los caracteres <, “, &, > ya que son especiales. Algunas veces hemos necesitado de algún servicio parecido:
<form action="" method="post"><textarea name="p" cols="85" rows="20"><?php
if (isset($_POST['p']))
{
$p = trim($_POST['p']);
if (ini_get('magic_quotes_gpc')) $p = stripslashes($p);
$p = str_replace('&', '&', $p);//FIX
$p = str_replace("\t", ' ', $p);
$p = str_replace('<', '<', $p);
$p = str_replace('>', '>', $p);
echo htmlspecialchars($p);
}
?></textarea>
<br /><input type="submit" value="Postable*"></form>
Es bastante sencillo, aunque bien podemos utilizar solo htmlspecialchars() lo hicimos al final para obtener un mejor control sobre los reemplazos.
¡Ojala les haya gustado!
