SlideShare ist ein Scribd-Unternehmen logo
1 von 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 – contacto@CorpintecSA.com
¿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.
¿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.
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.
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!
Bondades de CodeIgniter

CodeIgniter es gratuito
CodeIgniter soporta PHP 4
CodeIgniter es liviano
CodeIgniter es rápido
CodeIgniter utiliza el patrón de diseño M-V-C
CodeIgniter genera URL’s limpias
CodeIgniter es extensible
CodeIgniter posee una basta comunidad online
CodeIgniter está excelentemente documentado
Características de CodeIgniter
Basado en el patrón de diseño Modelo-Vista-Controlador.
Soporta Active Record Database
Validación de datos y formularios.
Seguridad y filtrado XSS
Manejo 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
Más características de CodeIgniter
Clase para subida de archivos
Clase para conexión FTP
Localización
Paginación
Encriptación de datos
Caché
Log de errores
Clase de calendario
Clase de agente de usuario
Clase de codificación ZIP
Y más características de CodeIgniter…

Librerías XML-RPC
Librerías para Unit Testing
URL amigables para motores de búsqueda.
Enrutamiento flexible de URI’s
Soporte de Hooks, Extensiones de clases, y Plugins
Una larga librería de funciones “helpers”
Gráfico de flujo de la aplicación
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.
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.
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?
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_articulo
  Cada uno de los segmentos señalados en colores representan
   algo distinto para la aplicación.
Segmentos
 ejemplo.com/controlador/funcion/ID
 1.   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.
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.
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:
  <?php
  class Blog extends Controller {

           function index()
           {
                    echo “Hola Mundo!”;
           }
  }
  ?>
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!!”;
           }
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/24
  A nuestra función calzados le enviaremos el contenido de los
   segmentos 3 y 4 en nuestra URL, por lo tanto:
   <?php
   class Productos extends Controller {

        function calzados($tipo, $id)
        {
            echo $tipo;
            echo $id;
        }
   }
   ?>
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.
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.
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>
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:
    <?php
    class Blog extends Controller {

                function index()
                {
                            $this->load->view(‘vista_blog’);
                }
    }
    ?>
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);
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>
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.
Modelos

Los modelos se almacenan dentro de la carpeta
 application/models/
Siguiendo con el ejemplo del Blog, nuestro modelo
 podría ser el siguiente:
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();
    }

}
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:
Cargando un Modelo


class Blog extends Controller {

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

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

        $this->load->view('vista_blog', $data);
    }
}
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.
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.
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.
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();
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?

Weitere ähnliche Inhalte

Was ist angesagt?

UDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloUDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloAnder Martinez
 
Manual desarrollo de aplicaciones web ii
Manual desarrollo de aplicaciones web iiManual desarrollo de aplicaciones web ii
Manual desarrollo de aplicaciones web iiKarina Villavicencio
 
Presentación de programacion
Presentación  de programacionPresentación  de programacion
Presentación de programacionlajokito
 
Trabajo programacion jose (1)
Trabajo programacion jose (1)Trabajo programacion jose (1)
Trabajo programacion jose (1)jose valles
 
Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Antonio Torres
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androideJomicast
 
UDA-Arquitectura conceptual
UDA-Arquitectura conceptualUDA-Arquitectura conceptual
UDA-Arquitectura conceptualAnder Martinez
 
Visual basic 6.0
Visual basic 6.0 Visual basic 6.0
Visual basic 6.0 Adrian Daza
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETJavier Roig
 
Tema 1 introduccion a la programacion en visual basic
Tema 1 introduccion a la programacion en visual basicTema 1 introduccion a la programacion en visual basic
Tema 1 introduccion a la programacion en visual basicaristeo23
 

Was ist angesagt? (19)

UDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloUDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrollo
 
Manual desarrollo de aplicaciones web ii
Manual desarrollo de aplicaciones web iiManual desarrollo de aplicaciones web ii
Manual desarrollo de aplicaciones web ii
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Presentación de programacion
Presentación  de programacionPresentación  de programacion
Presentación de programacion
 
Trabajo programacion jose (1)
Trabajo programacion jose (1)Trabajo programacion jose (1)
Trabajo programacion jose (1)
 
Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]
 
Tarea 1
Tarea 1Tarea 1
Tarea 1
 
Asp.net
Asp.netAsp.net
Asp.net
 
Programacion
ProgramacionProgramacion
Programacion
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androide
 
Java ee 6
Java ee 6Java ee 6
Java ee 6
 
UDA-Arquitectura conceptual
UDA-Arquitectura conceptualUDA-Arquitectura conceptual
UDA-Arquitectura conceptual
 
Asp.net
Asp.netAsp.net
Asp.net
 
Visual basic 6.0
Visual basic 6.0 Visual basic 6.0
Visual basic 6.0
 
Programando en html
Programando en htmlProgramando en html
Programando en html
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NET
 
Tema 1 introduccion a la programacion en visual basic
Tema 1 introduccion a la programacion en visual basicTema 1 introduccion a la programacion en visual basic
Tema 1 introduccion a la programacion en visual basic
 
MVC en CakePHP 2.0
MVC en CakePHP 2.0MVC en CakePHP 2.0
MVC en CakePHP 2.0
 
Visual basic .NET
Visual basic .NETVisual basic .NET
Visual basic .NET
 

Andere mochten auch (10)

Yii php framework
Yii php frameworkYii php framework
Yii php framework
 
Presentacion YII
Presentacion YIIPresentacion YII
Presentacion YII
 
Taller de laravel
Taller de laravelTaller de laravel
Taller de laravel
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
Cakephp 3
Cakephp 3 Cakephp 3
Cakephp 3
 
PPT - A slice of cake php
PPT - A slice of cake phpPPT - A slice of cake php
PPT - A slice of cake php
 
Cakephp
CakephpCakephp
Cakephp
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
 
Entendiendo Yii
Entendiendo YiiEntendiendo Yii
Entendiendo Yii
 
Documentacion de Codeigniter en español
Documentacion de Codeigniter en españolDocumentacion de Codeigniter en español
Documentacion de Codeigniter en español
 

Ähnlich wie Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter

API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...Héctor Curbelo Barrios
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptxSibilinoAndante
 
Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7Juan Fede
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...JaenFrankcezco
 
Introducción a Cake PHP Framework
Introducción a Cake PHP FrameworkIntroducción a Cake PHP Framework
Introducción a Cake PHP FrameworkJomicast
 
CLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxCLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxDiseoGrfico14
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxLuis775803
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosJaziel Torres
 

Ähnlich wie Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIgniter (20)

nn
nnnn
nn
 
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
 
5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web
 
CodeIgniter
CodeIgniterCodeIgniter
CodeIgniter
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
 
Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
 
Introduccion mvc
Introduccion mvcIntroduccion mvc
Introduccion mvc
 
Introducción a Cake PHP Framework
Introducción a Cake PHP FrameworkIntroducción a Cake PHP Framework
Introducción a Cake PHP Framework
 
Manualcake
ManualcakeManualcake
Manualcake
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
CLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxCLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptx
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
 
Framework
FrameworkFramework
Framework
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Framework
FrameworkFramework
Framework
 
Jquery Hmvc
Jquery HmvcJquery Hmvc
Jquery Hmvc
 

Mehr von Corporacion de Industrias Tecnologicas S.A.

Mehr von Corporacion de Industrias Tecnologicas S.A. (7)

Corp. In. Tec. S.A. - Trend Argentina Certified Partners - Soluciones en segu...
Corp. In. Tec. S.A. - Trend Argentina Certified Partners - Soluciones en segu...Corp. In. Tec. S.A. - Trend Argentina Certified Partners - Soluciones en segu...
Corp. In. Tec. S.A. - Trend Argentina Certified Partners - Soluciones en segu...
 
Corp. In. Tec. S.A. - Capacitaciones en Redes - Seminario de Enrutamiento con...
Corp. In. Tec. S.A. - Capacitaciones en Redes - Seminario de Enrutamiento con...Corp. In. Tec. S.A. - Capacitaciones en Redes - Seminario de Enrutamiento con...
Corp. In. Tec. S.A. - Capacitaciones en Redes - Seminario de Enrutamiento con...
 
Corp. In. Tec. S.A. - Trend Argentina Partners - Seguridad de la Red
Corp. In. Tec. S.A. - Trend Argentina Partners - Seguridad de la RedCorp. In. Tec. S.A. - Trend Argentina Partners - Seguridad de la Red
Corp. In. Tec. S.A. - Trend Argentina Partners - Seguridad de la Red
 
Corp. In. Tec. S.A. - Seguridad Digital y Riesgos empresariales
Corp. In. Tec. S.A. - Seguridad Digital y Riesgos empresarialesCorp. In. Tec. S.A. - Seguridad Digital y Riesgos empresariales
Corp. In. Tec. S.A. - Seguridad Digital y Riesgos empresariales
 
Corp. In. Tec. S.A. - Seguridad de la Información en Oficinas Domésticas o Pe...
Corp. In. Tec. S.A. - Seguridad de la Información en Oficinas Domésticas o Pe...Corp. In. Tec. S.A. - Seguridad de la Información en Oficinas Domésticas o Pe...
Corp. In. Tec. S.A. - Seguridad de la Información en Oficinas Domésticas o Pe...
 
Corp. In. Tec. S.A. - Trend Partners - Protección de activos digitales
Corp. In. Tec. S.A. - Trend Partners - Protección de activos digitalesCorp. In. Tec. S.A. - Trend Partners - Protección de activos digitales
Corp. In. Tec. S.A. - Trend Partners - Protección de activos digitales
 
Corp. In. Tec. S.A. - Redes sociales y posicionamiento
Corp. In. Tec. S.A. - Redes sociales y posicionamientoCorp. In. Tec. S.A. - Redes sociales y posicionamiento
Corp. In. Tec. S.A. - Redes sociales y posicionamiento
 

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

  • 1. 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 – contacto@CorpintecSA.com
  • 2. ¿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.
  • 3. ¿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.
  • 4. 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.
  • 5. 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!
  • 6. Bondades de CodeIgniter CodeIgniter es gratuito CodeIgniter soporta PHP 4 CodeIgniter es liviano CodeIgniter es rápido CodeIgniter utiliza el patrón de diseño M-V-C CodeIgniter genera URL’s limpias CodeIgniter es extensible CodeIgniter posee una basta comunidad online CodeIgniter está excelentemente documentado
  • 7. Características de CodeIgniter Basado en el patrón de diseño Modelo-Vista-Controlador. Soporta Active Record Database Validación de datos y formularios. Seguridad y filtrado XSS Manejo 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
  • 8. Más características de CodeIgniter Clase para subida de archivos Clase para conexión FTP Localización Paginación Encriptación de datos Caché Log de errores Clase de calendario Clase de agente de usuario Clase de codificación ZIP
  • 9. Y más características de CodeIgniter… Librerías XML-RPC Librerías para Unit Testing URL amigables para motores de búsqueda. Enrutamiento flexible de URI’s Soporte de Hooks, Extensiones de clases, y Plugins Una larga librería de funciones “helpers”
  • 10. Gráfico de flujo de la aplicación
  • 11. 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.
  • 12. 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.
  • 13. 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?
  • 14. 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_articulo Cada uno de los segmentos señalados en colores representan algo distinto para la aplicación.
  • 15. Segmentos  ejemplo.com/controlador/funcion/ID 1. 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.
  • 16. 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.
  • 17. 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: <?php class Blog extends Controller { function index() { echo “Hola Mundo!”; } } ?>
  • 18. 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!!”; }
  • 19. 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/24 A nuestra función calzados le enviaremos el contenido de los segmentos 3 y 4 en nuestra URL, por lo tanto: <?php class Productos extends Controller { function calzados($tipo, $id) { echo $tipo; echo $id; } } ?>
  • 20. 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.
  • 21. 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.
  • 22. 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>
  • 23. 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: <?php class Blog extends Controller { function index() { $this->load->view(‘vista_blog’); } } ?>
  • 24. 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);
  • 25. 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>
  • 26. 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.
  • 27. Modelos Los modelos se almacenan dentro de la carpeta application/models/ Siguiendo con el ejemplo del Blog, nuestro modelo podría ser el siguiente:
  • 28. 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(); } }
  • 29. 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:
  • 30. Cargando un Modelo class Blog extends Controller { function blog() { $this->load->model('ModeloBlog'); $data['notas'] = $this->ModeloBlog->traerNotas(); $this->load->view('vista_blog', $data); } }
  • 31. 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.
  • 32. 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.
  • 33. 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.
  • 34. 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();
  • 35. 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?