corp. in. tec. s.a. - capacitaciones en informática - programación con codeigniter

35
Introducción a CodeIgniter Curso teórico / práctico introductorio Departamento de Capacitación CORPORACIÓN DE INDUSTRIAS TECNOLÓGICAS S.A. www.CorpintecSA.com [email protected]

Upload: corporacion-de-industrias-tecnologicas-sa

Post on 13-Jun-2015

544 views

Category:

Documents


6 download

DESCRIPTION

Corporación de Industrias Tecnológicas S.A. - Capacitaciones en Informática - Programación con CodeIgniter www.CorpintecSA.com [email protected]

TRANSCRIPT

Page 1: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Introducción a CodeIgniter

Curso teórico / práctico introductorioDepartamento de Capacitación

CORPORACIÓN DE INDUSTRIAS TECNOLÓGICAS S.A.www.CorpintecSA.com – [email protected]

Page 2: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

¿Qué es CodeIgniter?

CodeIgniter es un marco de trabajo para desarrollo de aplicaciones – un kit de herramientas – para personas que crean aplicaciones web en PHP.

Su finalidad es permitirnos desarrollar nuestros proyectos mucho más rápido de lo que tardaríamos escribiendo nuestro propio código y funcionalidades desde cero, proveyendonos de un rico grupo de librerías para realizar tareas comunes, así como también una simple interfaz y estructura lógica para acceder a estas librerías.

CodeIgniter nos permite concentrarnos creativamente en nuestro proyecto, reduciendo la cantidad de código a escribir para una tarea determinada. CodeIgniter es un proyecto de código abierto, por lo tanto disponible para cualquiera de nosotros gratis.

Page 3: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

¿Cuándo se aplica CodeIgniter?

Cuando necesitamos un marco de trabajo (framework) liviano.

Cuando necesitamos una óptima performance en medianos y grandes proyectos.

Cuando necesitamos amplia compatibilidad con cuentas de hosting estándar que corren una variedad distinta de versiones de PHP y configuraciones.

Cuando necesitamos un framework que necesita casi cero configuración.

Cuando necesitamos un framework con una curva de aprendizaje mínima.

Cuando necesitamos una documentación clara.

Page 4: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Requisitos del servidor

PHP version 4.3.2 o superior.La mayoría de las aplicaciones web necesita acceso a

una base de datos, CodeIgniter actualmente soporta MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, and ODBC.

Page 5: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Instalación

CodeIgniter se instala en 5 sencillos pasos:1. Descargar el paquete con una versión reciente de CodeIgniter.2. Descomprimir el paquete.3. Subir los archivos de la carpeta CodeIgniter al servidor. En una

instalación normal, el archivo index.php reside en la raíz del servidor web.

4. Abrir el archivo application/config/config.php con un editor de texto y configurar nuestra URL base. Si pretendemos utilizar encriptación y sesiones, debemos proveer una clave de encriptación.

5. Si deseamos utilizar una base de datos, editaremos el archivo application/config/database.php y llenaremos los datos necesarios para realizar la conexión a la DB.

Eso es todo!

Page 6: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Bondades de CodeIgniter

CodeIgniter es gratuitoCodeIgniter soporta PHP 4CodeIgniter es livianoCodeIgniter es rápidoCodeIgniter utiliza el patrón de diseño M-V-CCodeIgniter genera URL’s limpiasCodeIgniter es extensibleCodeIgniter posee una basta comunidad onlineCodeIgniter está excelentemente documentado

Page 7: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Características de CodeIgniter

Basado en el patrón de diseño Modelo-Vista-Controlador.Soporta Active Record DatabaseValidación de datos y formularios.Seguridad y filtrado XSSManejo de sesiones.Clase de envío de Email, con soporte de adjuntos, texto y

html y múltiples protocolos de envío (sendmail, SMTP, and Mail).

Librería de manupulación de imágenes (cortar, cambiar tamaño, rotar, etc.). Soporte de librerías GD, ImageMagick, y NetPBM

Page 8: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Más características de CodeIgniter

Clase para subida de archivosClase para conexión FTPLocalizaciónPaginaciónEncriptación de datosCachéLog de erroresClase de calendarioClase de agente de usuarioClase de codificación ZIP

Page 9: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Y más características de CodeIgniter…

Librerías XML-RPCLibrerías para Unit TestingURL amigables para motores de búsqueda.Enrutamiento flexible de URI’sSoporte de Hooks, Extensiones de clases, y PluginsUna larga librería de funciones “helpers”

Page 10: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Gráfico de flujo de la aplicación

Page 11: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Flujo de la aplicación

El archivo index.php sirve como frente de la aplicación, inicializando los recursos básicos necesarios para correr CodeIgniter.

El router examina las peticiones HTTP para determinar qué debe hacer con ella.

Si existe una archivo de caché, es enviado directamente al nevagador, haciendo un bypass en el camino normal de ejecución.

Security. Antes que el controlador de la aplicación sea cargado, la petición HTTP e información enviada por el usuario es filtrada por seguridad.

El controlador carga el modelo, librerías de núcleo, plugins, helpers y cualquier otro recurso necesario para procesar la petición.

Luego la vista final es enviada al navegador para ser mostrada al usuario. Si el caché está habilitado, la vista es almacenada en la memoria caché para las peticiones subsiguientes.

Page 12: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Patrón de diseño MVC

CodeIgniter está basado en el patrón de diseño Modelo-Vista-Controlador (MVC). El patrón MVC es un acercamiento de software que separa la lógica de la aplicación de la presentación de los datos. En la práctica, permite que nuestras páginas contengan un mínimo de código, ya que la presentación está separada de la lógica.El Modelo representa nuestras estructuras de datos. Normalmente,

nuestros modelos contandrán funciones que nos ayudarán a traer, insertar y actualizar información en nuestra base de datos.

La Vista contiene la información que es presentada al usuario. La vista normalmente será una página web, pero en CodeIgniter, una vista también puede representar un fragmento de una página, como un encabezado o pie de página. También puede ser un archivo XML, RSS o cualquier otra clase de “página”.

El Controlador actúa como intermediario entre el Modelo y la Vista, y cualquier otro recurso necesario para procesar la petición HTTP y generar una página.

Page 13: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Comenzando con CodeIgniter

En las siguientes diapositivas vamos a ir conociendo la manera en que funciona CodeIgniter, los controladores, modelos, vistas y demás características.

¿Preguntas hasta el momento?

Page 14: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Las URL’s en CodeIgniter

Por defecto, las URL’s en CodeIgniter están diseñadas para ser amigables con los motores de búsqueda y personas.

CodeIgniter utiliza segmentos en las URL que identifican controladores y métodos:ejemplo.com/noticias/articulos/mi_articuloCada uno de los segmentos señalados en colores representan

algo distinto para la aplicación.

Page 15: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Segmentos

ejemplo.com/controlador/funcion/ID1. El segmento controlador representa el controlador que debería ser

invocado.2. El segmento funcion representa la función a llamar dentro del controlador

previamente invocado.3. El último segmento, ID, y los subsiguientes segmentos representan

parámetros, o argumentos, de la función en cuestión.

Page 16: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Controladores

Los controladores son el corazón de nuestra aplicación, ya que ellos determinan como deberían ser manejadas las peticiones HTTP.

¿Qué es un controlador?Un controlador es simplemente una clase que está nombrada

de una forma en la que puede ser asociada con una URL.Consideremos esta URL:• ejemplo.com/blog/• En este ejemplo CodeIgniter buscará un controlador llamado blog.php e

intentará ejecutarlo.

Page 17: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Hola Mundo!

Crearemos un controlador simple para ver un poco de acción.

En la carpeta application/controllers/ creamos un archivo llamado blog.php

Dentro del archivo colocaremos el siguiente código:

<?phpclass Blog extends Controller {

function index(){

echo “Hola Mundo!”;}

}?>

Page 18: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Funciones dentro de Controladores

En el código del ejemplo anterior creamos una función llamada index().

La función index() siempre es llamada por defecto cuando el segundo segmento de la URL está vacío.

Ahora crearemos otra función dentro del mismo controlador, llamada prueba()

function prueba(){

echo “Probando 1234!!”;}

Page 19: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Enviando parámetros a nuestras funciones

Si nuestra URL contiene más de 2 segmentos, éstos serán enviados a la función invocada como parámetros de la misma.

Consideremos esta URL:ejemplo.com/productos/calzados/zapatillas/24A nuestra función calzados le enviaremos el contenido de los

segmentos 3 y 4 en nuestra URL, por lo tanto:<?phpclass Productos extends Controller {

    function calzados($tipo, $id)    {        echo $tipo;        echo $id;    }}?>

Page 20: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Controlador por defecto

En el caso de que la URL solicitada no contenga ningún segmento, se debe especificar un controlador por defecto para ser cargado.

Para especificar un controlador por defecto abrimos el archivo application/config/routes.php y modificamos la línea $route['default_controller'] = 'Blog'; donde Blog será nuestro controlador por defecto.

Page 21: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Vistas

Una vista es simplemente una página web, o un fragmento de una, como un encabezado, pie de página o barra lateral. De hecho las vistas pueden ser anidadas una dentro de otra, si necesitamos ese tipo de jerarquía.

Las vistas nunca son llamadas directamente, deben ser cargadas por un controlador. En el patrón MVC los controladores son los responsables de la aplicación, por lo tanto ellos son los encargados de llamar a las vistas.

Page 22: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Creando una vista

Dentro de la carpeta application/views creamos un archivo llamado vista_blog.php, dentro del mismo colocaremos el siguiente código:

<html><head>

<title>Mi Blog</title></head><body>

<h1>Bienvenido a mi blog</h1></body>

</html>

Page 23: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Cargando una vista

Para carga una vista particular utilice la siguiente función dentro de un controlador:$this->load->view(‘nombre_vista’);Por lo tanto, con el anterior ejemplo del blog, para cargar la

vista recién creada deberíamos tener el siguiente código en nuestro controlador:

<?phpclass Blog extends Controller {

function index(){

$this->load->view(‘vista_blog’);}

}?>

Page 24: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Enviando datos a las vistas

Los datos son enviados a las vistas en forma de arreglos u objetos, en el segundo parámetro de la función de carga de vistas:

$data = array(               ”titulo” => “Mi Blog”,               ”encabezado” => “Bienvenidos”,               ”mensaje” => “Este es mi blog”          );

$data['lista_tareas'] = array('Compar azucar', 'Estudiar PHP');

$this->load->view(“vista_blog”, $data);

Page 25: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Enviando datos a las vistas

Por lo tanto, nuestra vista vista_blog.php podría quedar así:<html>

<head><title><?php echo $titulo;?></title>

</head><body>

<h1><?php echo $encabezado;?></h1>

<h3><?php echo $mensaje;?></h3>

<ul><?php foreach($lista_tareas as $tarea):?>

<li><?php echo $tarea;?></li>

<?php endforeach;?></ul>

</body></html>

Page 26: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Modelos

¿Qué es un modelo?Los modelos son clases en PHP que están diseñadas para

trabajar con nuestra información almacenada en la base de datos. Por ejemplo, si utilizáramos CodeIgniter para crear un Blog, nuestro modelo contendría las funciones necesarias para insertar, actualizar, eliminar y buscar información relacionada al blog dentro de nuestra base de datos.

Page 27: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Modelos

Los modelos se almacenan dentro de la carpeta application/models/

Siguiendo con el ejemplo del Blog, nuestro modelo podría ser el siguiente:

Page 28: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Modelos

class ModeloBlog extends Model {

    function ModeloBlog()    {        parent::Model();    }

    function insertar()    {        $data = array( “titulo” => $_POST[‘titulo’], “texto” => $_POST[‘texto’]);        $this->db->insert('notas', $data);    }

    function traerNotas()    {

$consulta = $this->db->get('notas');return $consulta->result();

    }

}

Page 29: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Cargando un Modelo

Los modelos son siempre cargados desde las funciones dentro de un controlador

Para cargar un modelo usamos la siguiente función:$this->load->model('nombre_modelo');Una vez cargado el modelo, tendremos acceso a las funciones

contenidas dentro de el, de la siguiente forma:$this->nombre_modelo->funcion();Observemos el siguiente ejemplo de un controlador que carga

un modelo, utiliza una función del mismo y luego envía el resultado a la vista:

Page 30: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Cargando un Modelo

class Blog extends Controller {

    function blog()    {        $this->load->model('ModeloBlog');

        $data['notas'] = $this->ModeloBlog->traerNotas();

        $this->load->view('vista_blog', $data);    }}

Page 31: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Cargando Modelos automáticamente

En algunas aplicaciones puede suceder que necesitemos un modelo a lo largo de toda la aplicación, que esté disponible para todos los controladores, sin necesidad de invocarlo cada vez que se lo necesite.

Para ello podemos incluir el nombre de nuestro modelo en el archivo autoload.php dentro de la carpeta application/config/

En este archivo podemos definir qué recursos deberían ser cargados automáticamente, tales como librerías, helpers, modelos, etc.

Page 32: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Helpers

Los Helpers, como el nombre en inglés lo sugiere, no ayudan a realizar tareas. Cada archivo helper es simplemente una colección de funciones de una categoría en particular.

Existen helpers para la URL, que nos asisten en la tarea de crear links, helpers de formularios, helpers para texto, helpers de cookies, helpers para trabajar con archivos, etc.

CodeIgniter, por defecto, no carga estos helpers. Por lo tanto tenemos que invocarlos cada vez que necesitemos usarlos, o bien incluirlos en el archivo autoload.php

Los helpers se encuentran en la carpeta system/helpers ó bien en system/application/helpers. CodeIgniter primero buscará en application/helpers y sino encuentra el archivo lo buscará en system/helpers.

Page 33: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Cargando un Helper

Para cargar un helper tenemos que llamar a la función de carga de helpers.

$this->load->helper('name');Hecho esto tenemos a disposición todas las funciones

que incluya el helper.

Page 34: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Utilizando librerías

CodeIgniter cuenta con varias librerías que nos simplifican el trabajo.

Para acceder a ellas, debemos utilizar la funcion de carga:

$this->load->library(‘nombre_lib’);Una vez cargada, podemos acceder a los recursos

contenidos en ella de la siguiente forma:$this->nombre_lib->funcion_a_usar();

Page 35: Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

Fin

A lo largo del curso se desarrollarán específicamente el uso de las librerías incluídas por defecto en CodeIgniter, como implementar nuevas librerías y el desarrollo de una aplicación de prueba.

¿Preguntas?