CodeIgniter el más veloz

Últimamente se estoy leyendo en muchos blogs comparativas entre varios Frameworks (php), midiendo la velocidad, aplicaciones, librerías, etc.. Ahora hago eco de un articulo que he leído en VivaPHP! donde podemos leer que CodeIgniter es más rápido, en muchos de los casos, que CakePHP e incluso que Zend Framework.

Podéis leer el artículo entero aquí.

Gestor de noticias (Sexta parte): Crear un buscador

Aprovechando la aplicación que estamos creando del Gestor de Noticias, voy a intentar satisfacer algunas peticiones de algunos usuarios que me preguntan cómo hacer un buscador en CodeIgniter (aunque en PHP es lo mismo ya que para esto apenas uso nada de CodeIgniter).

Antes de empezar la explicación aclarar que lo que lo que estoy haciendo es un buscador muy simple y funcional, el hacer un buscador tiene muchos caminos y complicaciones extras pero no entraré en ello, al menos hoy, así que si estáis buscando cómo hacer un buscador completo y complejo este no es vuestro articulo, aquí vamos a tratarlo desde un punto de vista de iniciación.

Primero de todo necesitaremos crear unos índices FULLTEXT en nuestra base de datos para que podamos realizar bien la búsqueda con la sintaxis MATCH…AGAINST, para ello lo haremos con este código SQL:

ALTER TABLE `noticias` ADD FULLTEXT(`titulo`, `cuerpo`);

Seguir leyendo…

Sistema de Usuarios (Segunda parte): Clase ‘Centinela’ I

En la primera publicación de este taller planificamos de forma muy genérica como queríamos nuestro sistema de usuarios. Hoy vamos a concretar un poco más y empezaremos a definir como sera nuestra clase ‘Centinela’ que se encargará de controlar nuestro sistema.

Nuestra ‘clase’, será una librería por lo tanto nos miraremos en la fantástica guía de CodeIgniter cómo funcionan las librerías. En definitiva lo que nos interesa es que alojaremos nuestro “Centinela.php” en application/libraries. Nuestro archivo empezará con una mayúscula. Al principio de nuestro php pondremos para que no puedan acceder de manera no controlada a nuestra clase:

	if(!defined('BASEPATH'))
		exit('No direct script access allowed');

Nuestra clase necesitará de unas variables para que podamos almacenar los datos que usaremos:

  • id: será la id de nuestro usuario un valor numerico y único.
  • nick: será el nombre de nuestro usuario.
  • clave: será la contraseña de nuestro usuario (encriptada)
  • nivel: se refiere al nivel del usuario (invitado, operador, administrador, etc..). Como mayor sea el valor más alto será el cargo.
  • auth: será una variable booleana. Si vale “TRUE”, es que el usuario estará bien autentificado.

Seguir leyendo…

Sistema de Usuarios (Primera parte): Planificación y estructuras

Un elemento siempre importante en una web es el sistema de autentificación, es decir un sistema de control de usuarios, con login, registro de usuarios y todo esto. A diferencia de otros frameworks en PHP, CodeIgniter no tiene uno por defecto así que lo mejor es crear uno suficientemente “genérico” para que nos sirva en todas nuestra aplicaciones.

Nota: si es vuestra primera toma de contacto con CodeIgniter os recomiendo que probéis primero con el Gestor de Noticias, ya que en este tutorial no repetiré aquellas cosas que ya expliqué en ese otro.

En este sistema introduciremos:

  • Crear librerías en CodeIgniter
  • Usar la Session Class
  • Trabajar con el Cookie Helper
  • Enviar emails con Email Class
  • Y seguramente alguna cosa más que ira surgiendo a medida que avancemos.

Seguir leyendo…

Malditos exámenes!

Bueno pido disculpas por este periodo de tiempo que no estoy escribiendo nada, pero la razón es esta: estoy de exámenes!

Así que lo primero es lo primero, hay que aplicarse para no suspender ninguna y asi tener todo el verano libre, de manera que intentare ir avanzando algo pero no puedo deciros exactamente cuando publicaré el siguiente post, estad atentos pues.

Para ir abriendo boca os diré cuales serán mis siguientes tres artículos, espero que os gusten:

  • “Validation Class” y los buenos formularios
  • Gestor de noticias (Sexta parte): Crear un buscador
  • Sistema de Usuarios (Primera parte): Planificación y estructuras

Deseadme suerte ;-)

Gestor de noticias (Quinta parte): Paginación

Bueno hoy dedicaré esté post a la paginación en CodeIgniter, ya que es un tema que para una cosa o para otra siempre acaba saliendo y acabamos con un quebradero de cabeza monumental cuando intentamos crear una buena paginación.

Cómo toda aplicación web típica, CodeIgniter nos plantea una solución, así que siempre haced uso de su guía y buscad lo que os haga falta, que os aseguro que la mayor parte del tiempo lo encontraréis. En este caso haremos uso de la “Pagination Class“.

[DEMO] Podéis ver aquí cómo quedará todo después de lo que os explicaré a continuación.

Ojo: si veis que no hay ninguna noticia puesta, probad de añadirlas con el link que hay ya que en un post anterior puse el scaffolding para testear y es posible que alguien lo haya borrado para probarlo.

Para usar la paginación en nuestra web necesitaremos proceder en 3 pasos:

  1. En el controlador: cargar la librería con la configuración que deseemos.
  2. Modificar la consulta de la base de datos para que nos muestre sólo una parte en vez de todos los resultados.
  3. Añadir los enlaces (los números) para que el usuario pueda navegar a través de las páginas generadas.

Seguir leyendo…

Introduciendo JQuery

Hoy en día usar Javascript en tus webs se ha convertido en algo imprescindible, para formularios, controlar elementos de tu web sin “recargar”, usar AJAX o darle algunos toques “flasheros” a tus diseños.

Cómo todo lenguaje de programación, se puede empezar a aprender desde 0 y programando tus códigos al 100% o usar librerías o frameworks que otra gente se ocupa de testear, mejorar y reparar por ti, con lo que te simplifica y en muchos casos te mejora el resultado de estos mismos.

De las muchas librerías “famosas” que existen para Javascript a mi me gustaría hablaros de JQuery porque de las que he probado es la que me ha parecido mejor documentada, la que tiene mas plugins disponibles y en general una comunidad mas grande detrás del proyecto.

Tal y como nos cuentan los autores de JQuery en su web:

  • Escribe menos haz mas
  • JQuery es rápido y conciso
  • Te simplifica el trabajo de recorre tus documentos HTML
  • Manejar eventos
  • Hacer animaciones
  • Añadir interacciones AJAX en tus webs
  • JQuery esta diseñado para cambiar la manera de programar en Javascript.

Mas adelante escribiré artículos mas concretos sobre JQuery y alguno de sus plugins mas famosos y utilizados, pero para este post de introducción he preparado unos cuantos ejemplos típicos para comparar como serian unos códigos en Javascript básico y otros usando JQuery (sin contar la seguridad, compatibilidad y optimización en general).

VER EJEMPLOS

Fuente: JQuery.com

Nueva versión de CodeIgniter 1.62

Ayer salió la nueva versión de CodeIgniter, la 1.62, que trae bastante mejoras y correcciones de fallos y bugs en general. Podéis ver la lista de cambios aquí.

Para actualizaros a la nueva versión de CodeIgniter, no tenéis mas que sustituir toda la carpeta system de la nueva versión, menos la carpeta application claro está ya que ahí es dónde tenemos todo nuestro código de la aplicación.

Gestor de noticias (Cuarta parte): Formularios y validación

El otro día, en la tercera parte de estos tutoriales os enseñé lo que era el scaffolding y como nos servía para testear rápidamente nuestra aplicaciones, pero realmente no sirve como una herramienta de administración, así que para ello deberemos crear un formulario que nos permita añadir nuevas noticias a la web.

Para ello necesitaremos:

  1. Formulario para añadir los datos
  2. Código que nos valide que los datos del formulario son correctos
  3. Código que nos añada lo que recogemos del “1″ a la base de datos.

Seguir leyendo…

Formularios en CSS y XHTML

Hoy me gustaría hablaros de los formularios. Muchos de nosotros aun no hemos hecho el cambio de HTML a XHTML y aun seguimos haciendo nuestros formularios sin las etiquetas que nos brinda XHTML o (dios no lo quiera) con … TABLAS! (nooo…)

Por eso he elaborado una pequeña demo para que veáis que se puede hacer un formulario bonito y bien estructurado usando hojas de estilo.

VER DEMO