|

Zend Framework: métodos estáticos

Antes de meternos a estudiar los componentes que nos facilita el framework de Zend, es necesario ver los métodos estáticos, los cuales a parte de sernos útiles, también se usan dentro de los distintos componentes.

  • loadFile(): carga cualquier archivo con código php, envuelve a la funcion include(). Tiene 3 parámetros, el nombre del archivo, el directorio dónde se situa, si es NULL buscará solamente en el include_path y un flag para indicar si se usa include o include_once. Si se produce cualquier error lanza una excepción Zend_Exception.
  • loadClass(): carga una clase, la cual se indica como parámetro, a parte se puede decir el directorio donde se encuentra. Si el directorio es null y el nombre de la clase tiene guiones bajos (_), usará los subrayados para localizar los directorios: p.e. Paquete_Componente_Clase lo sustituirá por Paquete/Componente/Clase.php. Si se produce algun error, se lanza una Zend_Exception.
  • loadInterface(): funciona igual que loadClass pero para interfaces.
  • isReadable(): es igual que la función is_readable de PHP pero con la posibilidad de buscar en el include_path.
  • dump(): ejecuta la función var_dump de PHP pero usando etiquetas pre de HTML y seleccionando se si realiza un echo o no.
  • register(): registra un objeto en el espacio de la aplicación, una vez registrado, cuando se recupera, siempre será la misma instancia. Se le debe pasar por parámetro el nombre y la variable.
  • registry(): devuelve una variable del registro cuando se le pasa su nombre por parámetro o una lista de todas las variables del registro cuando se pasa null.
|

Introducción al Zend Framework

zendframework.pngLos creadores de PHP tambien son los autores de uno de los mejores frameworks de PHP (¿hay alguno más?), su filosofía es clara, la ley del mínimo esfuerzo, ¿para qué vas a crearte unas librerías cuando ya existen?.
Este framework está formado por una serie de métodos estáticos y componentes (que usarán estos métodos). Los componentes son varios y variados y aunque alguno es posible que no lo usemos nunca (aplicaicones que tiren de Amazon o de Flickr no es algo que solemos necesitar con frecuencia), hay otras que puede que las usemos hasta la saciedad, por ejemplo el componente para la BD. Entre los componentes que destacaría se encuentran: Zend_Config para temas de configuración de aplicaciones web, Zend_Db para tratar con bases de datos, Zend_Search o Zend_Feed entre otros.
La instalación es sencilla, tan solo tendremos que añadir en el fichero de configuracion php.ini, el path hasta la carpeta library del framework con la instruccion include_path.
En entradas posteriores intentaremos ir presentando cada uno de los componentes.
Zend Framework
Descarga
Manual

| | |

Nueva versión de WAMP5

wamp.pngHa salido una nueva version de WAMP 1.6.4, una aplicación que te instala Apache, PHP5, MySQL, PHPmyadmin y SQLitemanager en tu ordenador, la cual recomiendo sin lugar a dudas.
La nueva versión permite limitar el acceso al servidor web desde internet, que solo se pueda acceder desde localhost, y hacer lo mismo para PHPmyadmin y SQLitemanager. También añade las Zend Optimizer add-ons.
WAMP5
Vía / dzone

| |

Crear un sistema de registro con PHP y MySQL

Algo común en muchas de las páginas que visitamos, por ejemplo en foros, es la necesidad de registrarnos para poder acceder a los contenidos. El tutorial que ponemos a continuación explica muy bien como hacerlo paso a paso:

Creating a Membership System with PHP and MySQL

Vía / dzone

| | |

Laboratorio: marcar búsquedas de Google

Algo que suele ser interesante es cuando realizamos una búsqueda en Google, que en la página a la que accedemos desde los resultados de Google, nos resalte las palabras que hemos buscado, aunque la barra de Google ya te da la oportunidad de hacerlo.

El proceso es sencillo, tenemos que capturar la URL desde la que nos llaman, dada por $_SERVER[‘HTTP_REFERER’], obtener las palabras que hemos puesto a buscar el Google (vienen en el parámetro q) y después capturar la salida, como se realizaba en el caso de la caché, y cuando tenemos lo que vamos a enviar por la salida, sustituir cada una de las palabras por el código HTML que queramos que resalte la palabra en cuestión.

<?php
// Filtro para el array para quedarnos solo con la QUERY
function filtro($val) {
return strpos($val, 'q=') === 0;
}
// Obtenemos la página desde la que nos llaman
$url = $_SERVER['HTTP_REFERER'];
// Nos quedamos solo con los parámetros
$url = parse_url($url);
$url = $url['query'];
// Nos quedamos solo con el parámetro que nos interesa
$parametros = split("&", $url);
$cadena = array_filter($parametros, "filtro");
$cadena = urldecode(substr(array_shift($cadena), 2));
// Cacheamos la salida
ob_start();
?>
...
Página HTML
...
<?php
// Recuperamos el buffer de salida
$html = ob_get_clean();
// Por cada palabra de la cadena de búsqueda, la sustituimos por el HTML necesario para resaltar
$palabras = split(" ",$cadena);
foreach ($palabras as $palabra) {
$html = preg_replace('/('.$palabra.')/i', '<b>$1</b>', $html);
}
// Mostramos el buffer por la saliad
echo $html;
?>

Código

|

15 tutoriales de PHP para principiantes

PHPZend, los creadores de PHP, han desarrollado 15 tutoriales de PHP para principiantes, bueno, y para quienes no lo somos, que siempre vienen bien.

La verdad es que los nombres de los títulos de los tutoriales son poco descriptivos, por eso, para quien lo necesite, vamos a indicar el contenido de estos:

  • Fundamentos de PHP: crear un ‘Hola Mundo’, comentarios, variables, tipos, … Lo más básico y necesario de PHP.
  • Parámetros de entrada y condicionales: cómo se reciben los datos que nos llegan desde la URL y el uso de comparaciones e instrucciones condicionales.
  • Bucles y más condiciones: Bucles (for, while, …) y cómo comprobar si una variable está definida.
  • Arrays: tratamiento de arrays, incluyendo el foreach.
  • Ficheros: abrir, leer, escribir en ficheros.
  • Funciones: uso de funciones, sus parámetros de entrada y variables globales.
  • Clases: todo lo necesario para la programación orientada a objetos mediante PHP.
  • MYSQL: acceso a base de datos MYSQL, imprescindible si quieres realizar alguna aplicación web.
  • SQLite: otra base de datos.
  • Sesiones: tratamiento de sesiones y coockies.
  • XML: tratamiento de XML, solo para PHP5, en PHP4 también se pueden tratar.
  • Tratamiento de errores: si vas a realizar una aplicación, gasta bastante tiempo en el tratamiento de errores, algo para mí fundamental.
  • Principios de seguridad: validación de los campos de entrada, sobre todo para cuestiones de BD.
  • Nuestra primera aplicación web: una vez conocido todo lo anterior, ya estamos preparados para hacer nuestra primera aplicación web.
  • Agregador RSS: creación de un pequeño agregador RSS.

PHP Tutorials for Absolute Beginners

Vía / DZone

|

Realizar caché mediante PHP

Interesante artículo sobre como cachear nuestras páginas cuando usan la base de datos para almacenar la información. Usar la BD para guardar los datos es bastante útil cuando se quiere modificar la página con facilidad o cuando se quieren usar plantillas.
El caso es que estas páginas no suelen modificarse con frecuencia, por lo que al acceder a ella, se accede a la BD para obtener los mismos datos, generar la página web y mostrarla, cosa que se ha hecho anteriormente. Por eso, este script propone guardar la página en un directorio y acceder a ella cuando el tiempo de creación y el actual no supera un cierto valor.
Para realizar este script, el auto usa las funciones de control de salida que ofrece PHP. Un script fácil de entender y que nos puede ser muy útil.
PhP Caching
Vía / Dzone

| |

Laboratorio: calcular fondo de imagen con PHP

Hace tiempo contábamos como rotar imágenes aleatoriamente, algo que se puede utilizar para la cabecera del blog (como hace mucha gente). El problema es cuando las imágenes son completamente distintas y hay que buscar un fondo que le convenga. Para ello nada mejor que un script PHP que te calcule el fondo según los colores de la imagen, ya sea calculando la media o la mediana (el que más aparece). Como veréis en el ejemplo, la media (arriba) y la mediana (abajo) devuelven valores distintos.
backgrounds.png

Read More “Laboratorio: calcular fondo de imagen con PHP”

Estudio sobre PHP5

PHPInteresante estudio sobre comparativa de sentencias en PHP5 que obtienen el mismo resultado, para conocer cual de ellas es la más rápida. Por ejemplo: es más rápido concatenar una cadena a una variable usando el punto (.) que incluyéndo la variable entre comillas dobles, para expresiones regulares es más rápido usar preg_match que eregi, es 8 veces más rápido usar explode que split. También es una buena referencia para saber como hacer lo mismo de distintas formas. Pero lo que más me ha sorprendido es que comparando con PHP4 las expresiones regulares se han vuelto más lentas (casi 7 veces más rápido en PHP4 que en PHP5), lo cual me hace pensar que o bien es debido a una mejora que completa las expresiones regulares, o antes no se hacían muy bien, porque ir a peor no tiene mucho sentido.
PHP5
PHP4
Vía / Digg