programar. • Facilita la cohesión y homogeneización del código de nuestra aplicación. Expecialmente en grupos de trabajo. • Proporciona clases y helpers ya existentes que podemos utilizar directamente en nuestra aplicación.
http://local.kumbba.com/graficas/ver/1 • Podemos ampliarlo con nuestras propias clases, helpers etc • La documentación de CodeIgniter es muy buena, y el propio framework tiene una curva de aprendizaje muy suave.
( Modelo – Vista – Controlador ) – Modelo: representa estructuras de datos, comúnmente será una tabla de una base de datos, pero podría ser un fichero XML, un fichero de texto, web service etc – Vista: aquí es donde se muestran los datos recogidos en el modelo, ya sea en html, pdf etc En CodeIgniter un fichero de vista puede representar un fragmento (cabecera, pie) lo que en ZF haríamos con Layouts / Partials … es más simple.
– Seleccionar datos – Insertar – Actualizar – Eliminar • Todo ello sin utilizar SQL = Mayor portabilidad de nuestro sitio a otros gestores de bases de datos.
ejemplo ZF no se requiere una clase que represente a cada tabla de la base de datos. Se pierde potencia pero se gana simplicidad. • Veamos un ejemplo, una consulta SQL normal y corriente:
sencillo trasladar nuestras consultas a la clase Active Record de CodeIgniter. • Evitamos tener código SQL mezclado con nuestro código PHP, personalmente lo prefiero por que así solo tenemos código PHP en el fichero, lo encuentro más legible. • Si disponemos de PHP 5 podemos concatenar los métodos y nuestra consulta quedaría...
inputs: – Uno tipo text, de name nombre – Otro tipo text, de name pass – Otro tipo submit, de name enviar • El action dirigirá la petición a controller unirse método index
controlador unirse (ejemplo): – Primero comprobamos que estemos enviando el formulario. – Después comprobamos los campos requeridos – Por último llamamos al método insertar del modelo
considero más útiles e interesantes. • Muy práctico usarlo junto a la Form Validation Class • Veamos un ejemplo con el formulario de la imagen de la izquierda.
Form Validation para validar nuestro formulario. • El primer paso es añadir una forma de mostrar los errores. • Después en nuestro controlador tendremos:
librería form_validation • El segundo paso es definir las reglas de validación – form_validation->set_rules • El tercer paso es ejecutar la validación (devuelve TRUE o FALSE): – form_validation->run() • NOTA: si no añadimos ninguna regla la validación siempre devuelve FALSE
es utilizando el método set_message, contando que: – Hemos de indicar en el primer parámetro la regla objetivo. – Podemos utilizar %s para sustituir el nombre indicado en la regla
de CodeIgniter es la librería Language Class que nos permite realizar sitios web en varios idiomas de forma rápida y sencilla. • No es tan potente como otros frameworks (Localization en ZF) • Veamos unos pasos de ejemplo muy básicos para utilizar esta clases de idioma:
necesarias para cada idioma. • Estas carpetas las crearemos dentro de la carpeta language • Dentro de las carpetas crearemos los ficheros: english\textosweb_lan g.php
$lang donde cada elemento es una traducción. Tenemos por un lado el índice del array y por otro lado el valor. • El segundo paso es cargar el fichero de idioma
comprobamos si tenemos el idioma definido en la sesión, en caso contrario lo iniciamos al idioma que deseemos por defecto. • Definimos un sufijo de idioma, que nos servirá para los campos de la base de datos • Cargamos el fichero de idioma con $this->lang- >load
reglas de validación en un formulario con set_rules • Por ejemplo tenemos la siguiente regla: – $this->form_validation->set_rules('nombre', 'nombre', 'required'); • En este caso, ¿Como traduciriamos el nombre del campo que aparecerá en el error? • Veamoslo...
que utilizaremos más a menudo es la clase de email. • La podemos ver aquí: • codeigniter.com/user_guide/libraries/email.html • Veamos un ejemplo de uso...
podemos usar sus métodos normalmente. • También vemos como usamos la clase session para establecer un mensaje flashdata, que solo permanece durante una petición • Después efectuamos una redirección
CI de forma fácil. • Por ejemplo, veamos como extender al controlador de base. • Al principio vimos que nuestros controladores extendian siempre al CI_Controller de la siguiente forma: – class Home extends CI_Controller
un método o código se repite entre varios controladores, podemos extraerlo a una clase superior. Por ejemplo en mis controladores repetía mucho la carga de las vistas cabecera y pie.
utilizada en prácticamente todos los proyectos. • En su forma más reducida son unas 8 líneas de código, que prácticamente siempre será el mismo. Por lo tanto es un buen candidato a ser extraído a la clase padre. • Los parametros son base_url, total_rows, uri_segment, per_page, first_link, last_link • En la ayuda de CI hay muchas más opciones...
En el fichero index.php, podemos modificar dos variables que indican donde están nuestra carpeta system y application. • Moviendo estas carpetas fuera del webroot del servidor evitaría el acceso directo por web.
site_url, que no solo devuelve la base_url, más los segmentos indicados como parámetros, sino que además añade el sufijo que hayamos definido en nuestra configuración.
<a> con tres parámetros, segmentos, texto y atributos • uri_string() devuelve el segmento URI de la URL actual. Muy útil junto a la clase de cambio de idioma que comentábamos hace algunas diapositivas