SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
Iniciación al desarrollo PHP con el
                                      Framework CodeIgniter

                                por José Manuel Lucas / @jmlweb

miércoles 29 de junio de 2011
Hashtag #adwe_mur




miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                             framework Codeigniter




                          Indice
                          - Introducción
                                -¿Qué es un framework? ¿Qué es MVC?
                                -¿Qué alternativas hay?, ¿Por qué CodeIgniter?

                          - Primeros pasos con Codeigniter
                                -Instalación, configuración y enrutado con CI
                                -Flujo de trabajo: Controladores, Modelos y Vistas
                                -Librerías y Helpers

                          - Extra

                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                          framework Codeigniter




                          Introducción


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                           framework Codeigniter




                          ¿Qué es un framework?
                          -CONVENCIONES + FUNCIONALIDADES + LIBRERÍAS
                          -OBJETIVO: Agilizar y organizar desarrollo, evitar tareas
                          repetitivas...

                          EJEMPLOS EN FRAMEWORKS PHP:
                          -Librerías: Enrutado, MVC, Plantillas
                          -Abstracción de BBDD (Las consultas son independientes del
                          motor, MySQL, Oracle, MSSQL...)


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                  framework Codeigniter




                          ¿Qué es MVC?
                          -Separación entre lógica y presentación, dividiendo las tareas en
                          3 partes:

                                                        Controlador
                                Recibe los datos, los interpreta y los dirige al modelo o a la
                                                            vista.
                                                              1



                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                           framework Codeigniter




                          ¿Qué es MVC?
                          -Separación entre lógica y presentación, dividiendo las tareas en
                          3 partes:

                                              Modelo               Controlador
                                Encargado de obtener los       Recibe los datos, los
                                   datos de la BBDD          interpreta y los dirige al
                                                               modelo o a la vista.
                                                2                        1


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                               framework Codeigniter




                          ¿Qué es MVC?
                          -Separación entre lógica y presentación, dividiendo las tareas en
                          3 partes:
                                      Modelo              Vista                Controlador
                                 Encargado de       Presenta los datos Recibe los datos,
                                obtener los datos    (capa de layout)   los interpreta y los
                                  de la BBDD                           dirige al modelo o a
                                                                              la vista.
                                              2             3                     1

                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                         framework Codeigniter




                          ¿Qué alternativas hay?
                          -Yo me lo guiso, yo me lo como:

                                VENTAJAS: Conocimiento profundo del funcionamiento
                                interno
                                DESVENTAJAS: Mayor tiempo de desarrollo, menor
                                revisión del código




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                          framework Codeigniter




                          ¿Qué alternativas hay?
                          -CMS (Wordpress, Drupal...):

                                VENTAJAS: Mayor velocidad de desarrollo, código
                                mantenido por la comunidad
                                DESVENTAJAS: Menor control sobre el código, no
                                siempre es posible, rendimiento...




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                               framework Codeigniter




                          ¿Qué alternativas hay?
                          -Otros frameworks:
                          Symfony
                          Zend Framework
                          CakePHP
                          Vevui
                          YII
                          FuelPHP
                          Yupp
                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                      framework Codeigniter




                          ¿Por qué CodeIgniter?
                          Recomendado por el creador de PHP


                                                     Llévale la contraria...
                                                     ...si te atreves




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                        framework Codeigniter




                          ¿Por qué CodeIgniter?

                          1) Abierto
                          Puedes copiar, modificar, crear proyectos relacionados...
                          El código fuente está disponible en BitBucket
                          Propiedad de Ellislab
                          Proyectos derivados: FuelCMS, planet-ci...



                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                          framework Codeigniter




                          ¿Por qué CodeIgniter?

                          2) Configuración MUY sencilla
                          -Vectores definidos en ficheros, dentro del directorio “config”
                          -Por defecto: config.php, database.php, autoload.php, etc
                          -Podemos añadir otros: nav.php, twitter.php, etc...
                          EJEMPLO: $config[ʻtitleʼ] = ʻCharla sobre CodeIgniterʼ



                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                          framework Codeigniter




                          ¿Por qué CodeIgniter?

                          3) Arquitectura MVC
                          a) CONTROLADORES: “application/controllers”
                          Cargan y gestionan recursos (modelos, vistas, librerías...)
                          Redirigen la URL al método correspondiente:
                          “http://www.url.com/controlador/método/parámetro1/
                          parámetro2/...” => BUENO PARA EL SEO ;)

                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                         framework Codeigniter




                          ¿Por qué CodeIgniter?

                          3) Arquitectura MVC
                          b) MODELOS: “application/models”
                          Lógica de negocio e información del sistema
                          “Parte de la Base de Datos” en términos coloquiales :)
                          Independiente del sistema gestor de BBDD



                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                          framework Codeigniter




                          ¿Por qué CodeIgniter?

                          3) Arquitectura MVC
                          c) VISTAS: “application/views”
                          Parte de presentación de datos
                          Mayormente HTML, con un poco de PHP
                          Puede utilizar pseudovariables => {title}



                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                              framework Codeigniter




                          ¿Por qué CodeIgniter?

                          4) Soporte para diferentes motores de BBDD
                          MySQL/MySQLi
                          PostgreSQL
                          ODBC & MSSQL
                          SQLITE
                          Oracle

                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                         framework Codeigniter




                          ¿Por qué CodeIgniter?

                          5) Amplia Comunidad
                          Wiki, foro, bugtracker, etc en http://www.codeigniter.com
                          Muchos tutoriales, presentaciones, directorios de recursos...
                          “CodeIgniter Community Chieftain” = MODERADOR
                          CICON => Conferencia a nivel mundial



                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                        framework Codeigniter




                          ¿Por qué CodeIgniter?

                          6) Librerías para casi todo
                          Seguridad, Validación de formularios, Sesiones, Email, FTP,
                          Redimensionar imágenes, Paginación...
                          +
                          LIBRERÍAS EXTERNAS (Twitter, Facebook, etc...)
                          http://www.codeigniterdirectory.com

                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                         framework Codeigniter




                          ¿Por qué CodeIgniter?

                          7) Curva de aprendizaje corta
                          No obliga a estudiar nueva sintaxis.


                          “Lo bueno, si breve, dos veces bueno y aún lo malo, si poco, no
                          tan malo”, Baltasar Gracián (¿Hace falta más explicación?)



                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                       framework Codeigniter




                          ¿Por qué CodeIgniter?

                          8) Soporte para plantillas
                          Aunque no es necesario, se pueden usar pseudovariables en las
                          vistas. => Más cómodo para diseñadores
                          {blog_entries}
                          <h5>{title}</h5>
                          <p>{body}</p>
                          {/blog_entries}


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                          framework Codeigniter




                          Primeros pasos con
                          CodeIgniter


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                         framework Codeigniter




                          Instalación y configuración mínima
                          1) Configurar un host virtual (Wamp, Mamp, XAMPP...)
                          2) Descargar última versión de CodeIgniter
                          (http://www.codeigniter.com/downloads)
                          3) Descomprimir el fichero en el directorio al que apunta el host
                          virtual.




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                     framework Codeigniter




                          Instalación y configuración mínima
                          application/config/config.php

                          $config['base_url']	
   	
  'http://mihost.com/';
                                                =
                          $config['index_page']	
   =	
  '';	
  //modificar	
  el	
  .htaccess
                          $config['global_xss_filtering']	
   =	
  TRUE;	
  //Más	
  seguro




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                              framework Codeigniter




                          Instalación y configuración mínima




                          ...y ya está!!!

                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                        framework Codeigniter




                          Rutas en CodeIgniter

                          “http://www.url.com/controlador/método/parámetro1/
                          parámetro2/...”
                          No es estricto, también: index.php?c=controlador&m=metodo
                          Las URL se pueden redirigir desde application/config/routes.php
                          También se puede añadir un sufijo a las URL (.html)


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                    framework Codeigniter




                          Rutas en CodeIgniter

                          Por defecto, se llama al controlador Welcome
                          http://url.com/index.php/controlador/metodo/var1/var2...

                          Para quitarlo de la url se utiliza un archivo .htaccess
                           RewriteEngine	
  on
                           RewriteCond	
  $1	
  !^(index.php|images|robots.txt)
                           RewriteRule	
  ^(.*)$	
  /index.php/$1	
  [L]

                           http://url.com/controlador/metodo/var1/var2...

                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                         framework Codeigniter




                          Estructura básica de un controlador

                          class	
  Welcome	
  extends	
  CI_Controller	
  {
                          	
   public	
  function	
  __construct()
                                 {
                          	
   	
   parent::__construct();
                                    //código	
  que	
  se	
  repite	
  en	
  todos	
  los	
  métodos
                          	
   }
                          	
   public	
  function	
  index()
                          	
   {
                          	
   	
   $this-­‐>load-­‐>view('welcome_message');	
  //carga	
  la	
  vista
                          	
   }
                          }


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                                  framework Codeigniter




                          Pasando variables a las vistas

                          class	
  Welcome	
  extends	
  CI_Controller	
  {
                          	
   function	
  __construct()
                                 {
                          	
   	
   parent::__construct();
                                    //código	
  que	
  se	
  repite	
  en	
  todos	
  los	
  métodos
                          	
   }
                          	
   function	
  index()
                          	
   {
                          	
   	
   $this-­‐>load-­‐>view('welcome_message',	
  array(
                                       ‘message’	
  =>	
  ‘Bienvenido	
  a	
  CodeIgniter’
                                    ));	
  
                          	
   }
                          }
                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                                    framework Codeigniter




                          Pasando variables a las vistas

                          <h1><?php	
  echo	
  $message	
  ?></h1>

                          <p>The	
  page	
  you	
  are	
  looking	
  at	
  is	
  being	
  generated	
  dynamically	
  by	
  
                          CodeIgniter.</p>

                          <p>If	
  you	
  would	
  like	
  to	
  edit	
  this	
  page	
  you'll	
  find	
  it	
  located	
  at:</p>
                          <code>application/views/welcome_message.php</code>




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                       framework Codeigniter




                          Controladores
                          Agrupan funcionalidades comunes
                          class	
  Blog	
  extends	
  CI_Controller	
  {
                          	
   function	
  list_posts($pag=1){
                          	
   }
                               	
  function	
  categories($cat=’’){
                               	
  }
                               	
  function	
  post($id){
                               	
  }
                          }




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                       framework Codeigniter




                          Controladores
                          Agrupan funcionalidades comunes
                          class	
  Blog	
  extends	
  CI_Controller	
  {
                          	
   function	
  list_posts($pag=1){
                          	
   }
                               	
  function	
  categories($cat=’’){
                               	
  }
                               	
  function	
  post($id){
                               	
  }
                          }

                          //http://url.com/blog/list_posts/3
                          //http://url.com/categories/html5
                          //http://url.com/post/45

                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                       framework Codeigniter




                          Controladores
                          Trabajan con los datos, cargan modelos y vistas
                          class	
  Blog	
  extends	
  CI_Controller	
  {
                          	
   function	
  list_posts($offset=0){
                                 $this-­‐>config-­‐>load(‘blog’);
                                 $this-­‐>load-­‐>model(‘blog_model’);
                                 $per_page	
  =	
  $this-­‐>config-­‐>item(‘per_page’);
                                 $data[‘posts’]	
  =	
  $this-­‐>blog_model-­‐>get_posts($offset,	
  $per_page);
                                 $this-­‐>load-­‐>view(‘blog/list_posts’,	
  $data);	
  //subdirectorio	
  blog
                          	
   }
                          }




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                        framework Codeigniter




                          Vistas
                          Representan los datos
                          <h1>Listado	
  de	
  posts</h1>
                          <?php	
  foreach($posts	
  as	
  $post):	
  ?>
                          <div	
  class=”post”>
                           <h2><?php	
  echo	
  $post[‘title’]	
  ?></h2>
                           <div	
  class=”post_content”>
                           <?php	
  echo	
  $post[‘content’]	
  ?>
                           </div>
                          </div>
                          <?php	
  endforeach	
  ?>




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                       framework Codeigniter




                          Controladores
                          Trabajan con los datos, cargan modelos y vistas
                          class	
  Blog	
  extends	
  CI_Controller	
  {
                          	
   function	
  list_posts($offset=0){
                                 $this-­‐>config-­‐>load(‘blog’);
                                 $this-­‐>load-­‐>model(‘blog_model’);
                                 $per_page	
  =	
  $this-­‐>config-­‐>item(‘per_page’);
                                 $data[‘posts’]	
  =	
  $this-­‐>blog_model-­‐>get_posts($offset,	
  $per_page);
                                 $this-­‐>load-­‐>view(‘blog/list_posts’,	
  $data);	
  //subdirectorio	
  blog
                          	
   }
                          }




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                          framework Codeigniter




                          Modelos
                          Trabajan con la BBDD
                          config/database.php: Introducir datos conexión
                          2 OPCIONES:
                          config/autoload.php: Cargar la librería ʻdatabaseʼ
                          En el controlador: $this->load->library(ʻdatabaseʼ);




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                               framework Codeigniter




                          Modelos
                          class	
  Blog_model	
  extends	
  CI_Model	
  {
                            function	
  __construct(){
                              parent::__construct();
                            }
                            function	
  get_posts($offset=0,	
  $per_page=10){
                              $query	
  =	
  $this-­‐>db-­‐>get(‘posts’,	
  0,	
  10);
                              //también	
  $this-­‐>db-­‐>query(‘SELECT	
  *	
  FROM	
  posts	
  LIMIT	
  10,	
  0’);
                              return	
  $query-­‐>result_array();
                            }
                          }




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                                framework Codeigniter




                          Modelos
                          Soportan Active Record
                                $query	
  =	
  $this-­‐>db-­‐>insert(‘authors’,	
  array(
                                 ‘name’	
  =>	
  ‘José	
  Manuel	
  Lucas’,
                                 ‘age’	
  =>	
  27,
                                 ‘position’	
  =>	
  ‘Web	
  Developer’
                                ));	
  //esta	
  consulta	
  sólo	
  devuelve	
  TRUE/FALSE

                                $query	
  =	
  $this-­‐>db
                                            -­‐>join(‘authors’,	
  ‘authors.id	
  =	
  posts.author’)
                                            -­‐>select(‘posts.*,	
  authors.name’)
                                            -­‐>get_where(‘posts’,	
  array(
                                            	
  	
  	
  	
  ‘id’	
  =>	
  6
                                            ))-­‐>row_array();	
  //esto	
  devuelve	
  una	
  sola	
  fila
                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                                 framework Codeigniter




                          Modelos
                          Devolver valores
                          Varias filas
                                -­‐>result()	
  //Array	
  de	
  objetos	
  con	
  los	
  resultados
                                -­‐>result_array()	
  //Matriz	
  con	
  los	
  resultados

                          Una fila
                                -­‐>row()	
  //Objeto	
  con	
  los	
  resultados
                                -­‐>row_array()	
  //Array	
  con	
  los	
  resultados




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                              framework Codeigniter




                          Modelos
                          Métodos útiles
                                $this-­‐>db-­‐>last_query()	
  //Última	
  consulta.	
  SELECT	
  *	
  FROM	
  authors...
                                $this-­‐>db-­‐>insert_id()	
  //ID	
  del	
  último	
  objeto	
  insertado	
  en	
  BBDD
                                $this-­‐>db-­‐>affected_rows()	
  //Filas	
  afectadas	
  en	
  última	
  operación
                                $this-­‐>db-­‐>count_all(‘authors’)	
  //Filas	
  totales	
  en	
  una	
  tabla

                                $query	
  =	
  $this-­‐>db-­‐>get(‘authors’);
                                $query-­‐>num_rows();	
  //Número	
  de	
  resultados	
  del	
  último	
  select




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                          framework Codeigniter




                          Librerías y Helpers


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                           framework Codeigniter




                          Helpers
                          Funciones de utilidades (ayuda)... normalmente agrupadas
                          Ejemplo: array, date, file, form, language, security, string, text, url

                          Se cargan en el controlador
                                $this-­‐>load-­‐>helper(‘security’);	
  //O	
  cargarlo	
  en	
  config/autoload.php

                                do_hash(‘password’);	
  //SHA1	
  de	
  password
                                do_hash(‘password’,	
  ‘md5’);	
  //MD5	
  de	
  password




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                           framework Codeigniter




                          Helpers
                          Se pueden utilizar en vistas, controladores, modelos, otros
                          helpers, librerías...

                                <p><?php	
  echo	
  anchor('blog/comments',	
  'Click	
  Here')	
  ?></p>

                                $this-­‐>db-­‐>insert(‘users’,	
  array(
                                 ‘name’	
  =>	
  ‘José	
  Manuel	
  Lucas’,
                                 ‘email’	
  =>	
  ‘josemanuel@jmlweb.es’,
                                 ‘password’	
  =>	
  do_hash(‘mi	
  contraseña’,	
  ‘md5’)
                                ));




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                                     framework Codeigniter




                          Helpers
                          Crear un helper
                                1)	
  application/helper/adwe_helper.php	
  //Sufijo	
  “helper”	
  necesario

                                2)	
  function	
  adwe_name(){
                                     	
  	
  	
  return	
  ‘Asociación	
  de	
  Desarrolladores	
  Web	
  de	
  España’;
                                	
  	
  	
  }

                                3)	
  Cargar	
  el	
  helper	
  -­‐>	
  Autoload	
  o	
  $this-­‐>load-­‐>helper(‘adwe’);

                                3)	
  <h1><?php	
  echo	
  adwe_name()	
  ?></h1>




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                               framework Codeigniter




                          Helpers
                          Utilizar los recursos de CodeIgniter
                                $CI	
  =&	
  get_instance();	
  //$CI	
  =	
  $this	
  //CodeIgniter	
  object
                                $CI-­‐>load-­‐>helper(‘url’);
                                $CI-­‐>load-­‐>model(‘users’);
                                $users	
  =	
  $this-­‐>users-­‐>get_users();




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                       framework Codeigniter




                          Helpers
                          Extendiendo los helpers

                          system/helpers/date_helper.php
                          application/helpers/MY_date_helper.php




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                         framework Codeigniter




                          Helpers
                          Extendiendo los helpers

                          Añadiendo una función:
                                function	
  spanish_date($strtime){
                                  return	
  date(‘d/m/Y’,	
  $strtime);
                                }	
  //añadimos	
  una	
  nueva	
  función

                                $this-­‐>load-­‐>helper(‘date’);
                                echo	
  spanish_date(time());




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                          framework Codeigniter




                          Helpers
                          Extendiendo los helpers

                          Sobreescribiendo una función:
                                function	
  unix_to_human($time	
  =	
  ‘’,	
  $seconds	
  =	
  FALSE){
                                  return	
  date(‘d/m/Y	
  H:i:s’,	
  $strtime);
                                }
                                //sobreescribimos	
  la	
  función	
  “unix_to_human”	
  de	
  system/helpers/
                                date.php

                                $this-­‐>load-­‐>helper(‘date’);
                                echo	
  unix_to_human(time());


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                         framework Codeigniter




                          Librerías (para los puretas: Bibliotecas)
                          Subprogramas para facilitar el desarrollo
                          Ejemplo: cart, database, email, form_validation, image_lib,
                          pagination, session, upload...
                            $this-­‐>load-­‐>library(‘pagination’);
                            $config['base_url']	
  =	
  'http://url.com/posts/';
                            $config['total_rows']	
  =	
  '200';
                            $config['per_page']	
  =	
  '20';	
  
                            $this-­‐>pagination-­‐>initialize($config);	
  

                            <div	
  class=”pagination”><?php	
  echo	
  $this-­‐>pagination-­‐>create_links()	
  ?>
                            </div>


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                        framework Codeigniter




                          Librerías útiles
                          Database -> Trabajo con BBDD
                          Email -> Mails con bcc, adjuntos, codificación, html...
                          Form_validation -> Validación del lado servidor
                          Input -> Obtener $_POST saneados
                          Image_lib -> Redimensionar y recortar imágenes
                          Pagination -> Paginación de items
                          Session -> Manejo de sesiones (OJO: No $_SESSION)
                          Upload -> Subida de ficheros, con limitación de tamaño,
                          tipo...
                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                          framework Codeigniter




                          Algunos ejemplos
                          Input
                          $this-­‐>input-­‐>post(‘name’)	
  //$_POST[‘name’];

                          Image_lib
                          $config['source_image']	
  =	
  '/path/to/image/mypic.jpg';
                          $config['maintain_ratio']	
  =	
  TRUE;
                          $config['create_thumb']	
  =	
  TRUE;
                          $config['width']	
  =	
  75;
                          $config['height']	
  =	
  50;
                          $this-­‐>load-­‐>library(‘image_lib’,	
  $config);
                          $this-­‐>image_lib-­‐>resize();	
  //Crea	
  ‘my_pic_thumb.jpg’	
  con	
  tamaño	
  
                          75x70


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                                                framework Codeigniter




                          Extender y crear librerías
                          Funcionamiento análogo al de helpers.

                          system/libraries/pagination.php
                          application/libraries/MY_pagination.php

                          Para usar los recursos: $CI	
  =&	
  get_instance();




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                          framework Codeigniter




                          Extra


                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                          framework Codeigniter



                                                      Whilewairport

                                                      Networking en
                                                      aeropuertos




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                          framework Codeigniter



                                                      Sym.posium

                                                      Eventos científicos




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                          framework Codeigniter




        ¡¡¡Se pueden desarrollar aplicaciones comerciales
        con CodeIgniter!!!

        YO: HTML + CSS (turbineCSS) + jQuery +
        CodeIgniter + MySQL + GIT



                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP con el
                                                          framework Codeigniter




        FuelCMS => Sistema híbrido CMS/Framework basado en
        CodeIgniter

        MY_Model => Mini-ORM

        Language_editor => Edición de idiomas multilenguaje




                          José Manuel Lucas



miércoles 29 de junio de 2011
Iniciación al desarrollo PHP
                                                            con el framework Codeigniter




                                MUCHAS GRACIAS!!!!
                                   José Manuel Lucas

                                    twitter: @jmlweb

                                   blog: http://jmlweb.es

                                    work: www.digio.es




miércoles 29 de junio de 2011

Contenu connexe

Tendances

Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionIrving Che
 
Trabajo programacion jose (1)
Trabajo programacion jose (1)Trabajo programacion jose (1)
Trabajo programacion jose (1)jose valles
 
Introduccion al Visual Basic subido JHS
Introduccion al Visual Basic subido JHSIntroduccion al Visual Basic subido JHS
Introduccion al Visual Basic subido JHSjohnny herrera
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesAnder Martinez
 
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
 
Visual basic 6.0
Visual basic 6.0 Visual basic 6.0
Visual basic 6.0 Adrian Daza
 
UDA-Arquitectura conceptual
UDA-Arquitectura conceptualUDA-Arquitectura conceptual
UDA-Arquitectura conceptualAnder Martinez
 
Visual basic 6 introduccion
Visual basic 6 introduccionVisual basic 6 introduccion
Visual basic 6 introduccionGerardo Heredia
 
JavaScript
JavaScriptJavaScript
JavaScriptJomicast
 
UDA-Plugin UDA. Guia de uso de plantillas
UDA-Plugin UDA. Guia de uso de plantillasUDA-Plugin UDA. Guia de uso de plantillas
UDA-Plugin UDA. Guia de uso de plantillasAnder Martinez
 
Visual basic potes y marmol
Visual basic potes y marmol   Visual basic potes y marmol
Visual basic potes y marmol claseinteractiva
 
Lenguaje de programacion de visual basic
Lenguaje de programacion de visual basicLenguaje de programacion de visual basic
Lenguaje de programacion de visual basicRosa Marina Mosquera
 
FUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASICFUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASICBenny Jose
 

Tendances (20)

Semana 1 Patrones de Diseño
Semana 1   Patrones de DiseñoSemana 1   Patrones de Diseño
Semana 1 Patrones de Diseño
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
Trabajo programacion jose (1)
Trabajo programacion jose (1)Trabajo programacion jose (1)
Trabajo programacion jose (1)
 
Introduccion al Visual Basic subido JHS
Introduccion al Visual Basic subido JHSIntroduccion al Visual Basic subido JHS
Introduccion al Visual Basic subido JHS
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web services
 
DocOpenERP - Open erp tutorial_basico
DocOpenERP - Open erp tutorial_basicoDocOpenERP - Open erp tutorial_basico
DocOpenERP - Open erp tutorial_basico
 
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
 
Programacion
ProgramacionProgramacion
Programacion
 
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
 
UDA-Arquitectura conceptual
UDA-Arquitectura conceptualUDA-Arquitectura conceptual
UDA-Arquitectura conceptual
 
Visual basic 6 introduccion
Visual basic 6 introduccionVisual basic 6 introduccion
Visual basic 6 introduccion
 
Framework
FrameworkFramework
Framework
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Base de datos avanzado i
Base de datos avanzado iBase de datos avanzado i
Base de datos avanzado i
 
UDA-Plugin UDA. Guia de uso de plantillas
UDA-Plugin UDA. Guia de uso de plantillasUDA-Plugin UDA. Guia de uso de plantillas
UDA-Plugin UDA. Guia de uso de plantillas
 
Visual basic potes y marmol
Visual basic potes y marmol   Visual basic potes y marmol
Visual basic potes y marmol
 
Lenguaje de programacion de visual basic
Lenguaje de programacion de visual basicLenguaje de programacion de visual basic
Lenguaje de programacion de visual basic
 
FUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASICFUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASIC
 

En vedette

Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Raul Fraile
 
DESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBDESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBJavier Condori Flores
 
Iniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebIniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebRightster
 
Iniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónIniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónRightster
 
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosIniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosRightster
 
Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPJavier Eguiluz
 
Introduction To CodeIgniter
Introduction To CodeIgniterIntroduction To CodeIgniter
Introduction To CodeIgniterschwebbie
 
Iniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosIniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosRightster
 
Introduccion al Akelos Php Framework
Introduccion al Akelos Php FrameworkIntroduccion al Akelos Php Framework
Introduccion al Akelos Php FrameworkBermi Ferrer
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosRightster
 
Iniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorIniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorRightster
 
Desarrollo de una interfaz Web de consulta y análisis de datos en Bioinformat...
Desarrollo de una interfaz Web de consulta y análisis de datos en Bioinformat...Desarrollo de una interfaz Web de consulta y análisis de datos en Bioinformat...
Desarrollo de una interfaz Web de consulta y análisis de datos en Bioinformat...Javier Condori Flores
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRJuan Belón Pérez
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAHelmilpa
 
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLIniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLRightster
 

En vedette (20)

Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 
MVC
MVCMVC
MVC
 
Febrero 2009 - Presentación PFC AGritos!
Febrero 2009 - Presentación PFC AGritos!Febrero 2009 - Presentación PFC AGritos!
Febrero 2009 - Presentación PFC AGritos!
 
DESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBDESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEB
 
Iniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebIniciación PHP 5. Programación Web
Iniciación PHP 5. Programación Web
 
MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
 
Curso php y_my_sql
Curso php y_my_sqlCurso php y_my_sql
Curso php y_my_sql
 
Iniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónIniciación PHP 5. Introducción
Iniciación PHP 5. Introducción
 
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosIniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a Objetos
 
Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHP
 
Introduction To CodeIgniter
Introduction To CodeIgniterIntroduction To CodeIgniter
Introduction To CodeIgniter
 
Iniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosIniciación PHP 5. Ejercicios
Iniciación PHP 5. Ejercicios
 
Introduccion al Akelos Php Framework
Introduccion al Akelos Php FrameworkIntroduccion al Akelos Php Framework
Introduccion al Akelos Php Framework
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. Ejemplos
 
Iniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorIniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidor
 
Desarrollo de una interfaz Web de consulta y análisis de datos en Bioinformat...
Desarrollo de una interfaz Web de consulta y análisis de datos en Bioinformat...Desarrollo de una interfaz Web de consulta y análisis de datos en Bioinformat...
Desarrollo de una interfaz Web de consulta y análisis de datos en Bioinformat...
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
9.laravel
9.laravel9.laravel
9.laravel
 
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLIniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQL
 

Similaire à Presentación Framework CodeIgniter

Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwarePaco Rivera
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modularguestb97266b9
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introductionMiguel Pastor
 
proyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysqlproyecto conexion netbeans con Mysql
proyecto conexion netbeans con MysqlBrenditaLr
 
Metodología xp
Metodología xpMetodología xp
Metodología xpPiskamen
 
Categoria de sistemas operativos
Categoria de sistemas operativosCategoria de sistemas operativos
Categoria de sistemas operativoscronicasdelsur1987
 
[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockitoJose Barba Martinez
 
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPresentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPedroLuces3
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESJesus Caceres Tello
 
S8 arely medina_power_point
S8 arely medina_power_pointS8 arely medina_power_point
S8 arely medina_power_pointArely_Medina
 
Fin mulltimedia logic
Fin mulltimedia logicFin mulltimedia logic
Fin mulltimedia logichellomariel
 

Similaire à Presentación Framework CodeIgniter (20)

Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
MVC.ppt
MVC.pptMVC.ppt
MVC.ppt
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introduction
 
Enfoques para la reutilización
Enfoques para la reutilizaciónEnfoques para la reutilización
Enfoques para la reutilización
 
proyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysqlproyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysql
 
Metodología xp
Metodología xpMetodología xp
Metodología xp
 
Poc
PocPoc
Poc
 
Categoria de sistemas operativos
Categoria de sistemas operativosCategoria de sistemas operativos
Categoria de sistemas operativos
 
[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito
 
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPresentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
 
Xp Metodologia
Xp MetodologiaXp Metodologia
Xp Metodologia
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
 
S8 arely medina_power_point
S8 arely medina_power_pointS8 arely medina_power_point
S8 arely medina_power_point
 
Tarea 1
Tarea 1Tarea 1
Tarea 1
 
Modelos de desarrollo de un software
Modelos de desarrollo de un softwareModelos de desarrollo de un software
Modelos de desarrollo de un software
 
Fin mulltimedia logic
Fin mulltimedia logicFin mulltimedia logic
Fin mulltimedia logic
 

Plus de ADWE Team

Frameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesFrameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesADWE Team
 
HTML5 + CSS3 + Wordpress = Responsive Web
HTML5 + CSS3 + Wordpress = Responsive WebHTML5 + CSS3 + Wordpress = Responsive Web
HTML5 + CSS3 + Wordpress = Responsive WebADWE Team
 
HTML5 dia de internet 2012
HTML5 dia de internet 2012HTML5 dia de internet 2012
HTML5 dia de internet 2012ADWE Team
 
Significado y usos de RSS
Significado y usos de RSSSignificado y usos de RSS
Significado y usos de RSSADWE Team
 
Responsive web y Wordpress
Responsive web y WordpressResponsive web y Wordpress
Responsive web y WordpressADWE Team
 
Introduccion html5
Introduccion html5Introduccion html5
Introduccion html5ADWE Team
 
Ponencia seo para el èxito con google 2011 copia
Ponencia seo para el èxito con google 2011   copiaPonencia seo para el èxito con google 2011   copia
Ponencia seo para el èxito con google 2011 copiaADWE Team
 
Diseñar para dispositivos móviles
Diseñar para dispositivos móvilesDiseñar para dispositivos móviles
Diseñar para dispositivos móvilesADWE Team
 
Potenciando tu web con APIs de Miquel Camps para ADWE Madrid
Potenciando tu web con APIs de Miquel Camps para ADWE MadridPotenciando tu web con APIs de Miquel Camps para ADWE Madrid
Potenciando tu web con APIs de Miquel Camps para ADWE MadridADWE Team
 
Presentacion de Fran Moreno para adwe
Presentacion de Fran Moreno para adwePresentacion de Fran Moreno para adwe
Presentacion de Fran Moreno para adweADWE Team
 
Rompiendo moldes
Rompiendo moldesRompiendo moldes
Rompiendo moldesADWE Team
 
Gwt intro adwe_murcia
Gwt intro adwe_murciaGwt intro adwe_murcia
Gwt intro adwe_murciaADWE Team
 
5 tips de diseñadores a maquetadores... y viceversa
5 tips de diseñadores a maquetadores... y viceversa5 tips de diseñadores a maquetadores... y viceversa
5 tips de diseñadores a maquetadores... y viceversaADWE Team
 
Presentación Extreme Programming
Presentación Extreme ProgrammingPresentación Extreme Programming
Presentación Extreme ProgrammingADWE Team
 
El momento del diseño, con Carlos Úbeda, de DNXGroup
 El momento del diseño, con Carlos Úbeda, de DNXGroup El momento del diseño, con Carlos Úbeda, de DNXGroup
El momento del diseño, con Carlos Úbeda, de DNXGroupADWE Team
 
Presentacion seo analisis
Presentacion seo analisisPresentacion seo analisis
Presentacion seo analisisADWE Team
 
Presentación de ACTO Framework parte I
Presentación de ACTO Framework parte IPresentación de ACTO Framework parte I
Presentación de ACTO Framework parte IADWE Team
 
Presentación de ACTO Framework parte II
Presentación de ACTO Framework parte IIPresentación de ACTO Framework parte II
Presentación de ACTO Framework parte IIADWE Team
 
SEO ADWE Murcia
SEO ADWE MurciaSEO ADWE Murcia
SEO ADWE MurciaADWE Team
 

Plus de ADWE Team (20)

Frameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesFrameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móviles
 
HTML5 + CSS3 + Wordpress = Responsive Web
HTML5 + CSS3 + Wordpress = Responsive WebHTML5 + CSS3 + Wordpress = Responsive Web
HTML5 + CSS3 + Wordpress = Responsive Web
 
HTML5 dia de internet 2012
HTML5 dia de internet 2012HTML5 dia de internet 2012
HTML5 dia de internet 2012
 
Significado y usos de RSS
Significado y usos de RSSSignificado y usos de RSS
Significado y usos de RSS
 
Responsive web y Wordpress
Responsive web y WordpressResponsive web y Wordpress
Responsive web y Wordpress
 
Git git hub
Git git hubGit git hub
Git git hub
 
Introduccion html5
Introduccion html5Introduccion html5
Introduccion html5
 
Ponencia seo para el èxito con google 2011 copia
Ponencia seo para el èxito con google 2011   copiaPonencia seo para el èxito con google 2011   copia
Ponencia seo para el èxito con google 2011 copia
 
Diseñar para dispositivos móviles
Diseñar para dispositivos móvilesDiseñar para dispositivos móviles
Diseñar para dispositivos móviles
 
Potenciando tu web con APIs de Miquel Camps para ADWE Madrid
Potenciando tu web con APIs de Miquel Camps para ADWE MadridPotenciando tu web con APIs de Miquel Camps para ADWE Madrid
Potenciando tu web con APIs de Miquel Camps para ADWE Madrid
 
Presentacion de Fran Moreno para adwe
Presentacion de Fran Moreno para adwePresentacion de Fran Moreno para adwe
Presentacion de Fran Moreno para adwe
 
Rompiendo moldes
Rompiendo moldesRompiendo moldes
Rompiendo moldes
 
Gwt intro adwe_murcia
Gwt intro adwe_murciaGwt intro adwe_murcia
Gwt intro adwe_murcia
 
5 tips de diseñadores a maquetadores... y viceversa
5 tips de diseñadores a maquetadores... y viceversa5 tips de diseñadores a maquetadores... y viceversa
5 tips de diseñadores a maquetadores... y viceversa
 
Presentación Extreme Programming
Presentación Extreme ProgrammingPresentación Extreme Programming
Presentación Extreme Programming
 
El momento del diseño, con Carlos Úbeda, de DNXGroup
 El momento del diseño, con Carlos Úbeda, de DNXGroup El momento del diseño, con Carlos Úbeda, de DNXGroup
El momento del diseño, con Carlos Úbeda, de DNXGroup
 
Presentacion seo analisis
Presentacion seo analisisPresentacion seo analisis
Presentacion seo analisis
 
Presentación de ACTO Framework parte I
Presentación de ACTO Framework parte IPresentación de ACTO Framework parte I
Presentación de ACTO Framework parte I
 
Presentación de ACTO Framework parte II
Presentación de ACTO Framework parte IIPresentación de ACTO Framework parte II
Presentación de ACTO Framework parte II
 
SEO ADWE Murcia
SEO ADWE MurciaSEO ADWE Murcia
SEO ADWE Murcia
 

Dernier

OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Éteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesÉteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesLauraColom3
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 

Dernier (20)

OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Éteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesÉteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reacciones
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 

Presentación Framework CodeIgniter

  • 1. Iniciación al desarrollo PHP con el Framework CodeIgniter por José Manuel Lucas / @jmlweb miércoles 29 de junio de 2011
  • 3. Iniciación al desarrollo PHP con el framework Codeigniter Indice - Introducción -¿Qué es un framework? ¿Qué es MVC? -¿Qué alternativas hay?, ¿Por qué CodeIgniter? - Primeros pasos con Codeigniter -Instalación, configuración y enrutado con CI -Flujo de trabajo: Controladores, Modelos y Vistas -Librerías y Helpers - Extra José Manuel Lucas miércoles 29 de junio de 2011
  • 4. Iniciación al desarrollo PHP con el framework Codeigniter Introducción José Manuel Lucas miércoles 29 de junio de 2011
  • 5. Iniciación al desarrollo PHP con el framework Codeigniter ¿Qué es un framework? -CONVENCIONES + FUNCIONALIDADES + LIBRERÍAS -OBJETIVO: Agilizar y organizar desarrollo, evitar tareas repetitivas... EJEMPLOS EN FRAMEWORKS PHP: -Librerías: Enrutado, MVC, Plantillas -Abstracción de BBDD (Las consultas son independientes del motor, MySQL, Oracle, MSSQL...) José Manuel Lucas miércoles 29 de junio de 2011
  • 6. Iniciación al desarrollo PHP con el framework Codeigniter ¿Qué es MVC? -Separación entre lógica y presentación, dividiendo las tareas en 3 partes: Controlador Recibe los datos, los interpreta y los dirige al modelo o a la vista. 1 José Manuel Lucas miércoles 29 de junio de 2011
  • 7. Iniciación al desarrollo PHP con el framework Codeigniter ¿Qué es MVC? -Separación entre lógica y presentación, dividiendo las tareas en 3 partes: Modelo Controlador Encargado de obtener los Recibe los datos, los datos de la BBDD interpreta y los dirige al modelo o a la vista. 2 1 José Manuel Lucas miércoles 29 de junio de 2011
  • 8. Iniciación al desarrollo PHP con el framework Codeigniter ¿Qué es MVC? -Separación entre lógica y presentación, dividiendo las tareas en 3 partes: Modelo Vista Controlador Encargado de Presenta los datos Recibe los datos, obtener los datos (capa de layout) los interpreta y los de la BBDD dirige al modelo o a la vista. 2 3 1 José Manuel Lucas miércoles 29 de junio de 2011
  • 9. Iniciación al desarrollo PHP con el framework Codeigniter ¿Qué alternativas hay? -Yo me lo guiso, yo me lo como: VENTAJAS: Conocimiento profundo del funcionamiento interno DESVENTAJAS: Mayor tiempo de desarrollo, menor revisión del código José Manuel Lucas miércoles 29 de junio de 2011
  • 10. Iniciación al desarrollo PHP con el framework Codeigniter ¿Qué alternativas hay? -CMS (Wordpress, Drupal...): VENTAJAS: Mayor velocidad de desarrollo, código mantenido por la comunidad DESVENTAJAS: Menor control sobre el código, no siempre es posible, rendimiento... José Manuel Lucas miércoles 29 de junio de 2011
  • 11. Iniciación al desarrollo PHP con el framework Codeigniter ¿Qué alternativas hay? -Otros frameworks: Symfony Zend Framework CakePHP Vevui YII FuelPHP Yupp José Manuel Lucas miércoles 29 de junio de 2011
  • 12. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? Recomendado por el creador de PHP Llévale la contraria... ...si te atreves José Manuel Lucas miércoles 29 de junio de 2011
  • 13. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? 1) Abierto Puedes copiar, modificar, crear proyectos relacionados... El código fuente está disponible en BitBucket Propiedad de Ellislab Proyectos derivados: FuelCMS, planet-ci... José Manuel Lucas miércoles 29 de junio de 2011
  • 14. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? 2) Configuración MUY sencilla -Vectores definidos en ficheros, dentro del directorio “config” -Por defecto: config.php, database.php, autoload.php, etc -Podemos añadir otros: nav.php, twitter.php, etc... EJEMPLO: $config[ʻtitleʼ] = ʻCharla sobre CodeIgniterʼ José Manuel Lucas miércoles 29 de junio de 2011
  • 15. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? 3) Arquitectura MVC a) CONTROLADORES: “application/controllers” Cargan y gestionan recursos (modelos, vistas, librerías...) Redirigen la URL al método correspondiente: “http://www.url.com/controlador/método/parámetro1/ parámetro2/...” => BUENO PARA EL SEO ;) José Manuel Lucas miércoles 29 de junio de 2011
  • 16. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? 3) Arquitectura MVC b) MODELOS: “application/models” Lógica de negocio e información del sistema “Parte de la Base de Datos” en términos coloquiales :) Independiente del sistema gestor de BBDD José Manuel Lucas miércoles 29 de junio de 2011
  • 17. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? 3) Arquitectura MVC c) VISTAS: “application/views” Parte de presentación de datos Mayormente HTML, con un poco de PHP Puede utilizar pseudovariables => {title} José Manuel Lucas miércoles 29 de junio de 2011
  • 18. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? 4) Soporte para diferentes motores de BBDD MySQL/MySQLi PostgreSQL ODBC & MSSQL SQLITE Oracle José Manuel Lucas miércoles 29 de junio de 2011
  • 19. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? 5) Amplia Comunidad Wiki, foro, bugtracker, etc en http://www.codeigniter.com Muchos tutoriales, presentaciones, directorios de recursos... “CodeIgniter Community Chieftain” = MODERADOR CICON => Conferencia a nivel mundial José Manuel Lucas miércoles 29 de junio de 2011
  • 20. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? 6) Librerías para casi todo Seguridad, Validación de formularios, Sesiones, Email, FTP, Redimensionar imágenes, Paginación... + LIBRERÍAS EXTERNAS (Twitter, Facebook, etc...) http://www.codeigniterdirectory.com José Manuel Lucas miércoles 29 de junio de 2011
  • 21. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? 7) Curva de aprendizaje corta No obliga a estudiar nueva sintaxis. “Lo bueno, si breve, dos veces bueno y aún lo malo, si poco, no tan malo”, Baltasar Gracián (¿Hace falta más explicación?) José Manuel Lucas miércoles 29 de junio de 2011
  • 22. Iniciación al desarrollo PHP con el framework Codeigniter ¿Por qué CodeIgniter? 8) Soporte para plantillas Aunque no es necesario, se pueden usar pseudovariables en las vistas. => Más cómodo para diseñadores {blog_entries} <h5>{title}</h5> <p>{body}</p> {/blog_entries} José Manuel Lucas miércoles 29 de junio de 2011
  • 23. Iniciación al desarrollo PHP con el framework Codeigniter Primeros pasos con CodeIgniter José Manuel Lucas miércoles 29 de junio de 2011
  • 24. Iniciación al desarrollo PHP con el framework Codeigniter Instalación y configuración mínima 1) Configurar un host virtual (Wamp, Mamp, XAMPP...) 2) Descargar última versión de CodeIgniter (http://www.codeigniter.com/downloads) 3) Descomprimir el fichero en el directorio al que apunta el host virtual. José Manuel Lucas miércoles 29 de junio de 2011
  • 25. Iniciación al desarrollo PHP con el framework Codeigniter Instalación y configuración mínima application/config/config.php $config['base_url']    'http://mihost.com/'; = $config['index_page']   =  '';  //modificar  el  .htaccess $config['global_xss_filtering']   =  TRUE;  //Más  seguro José Manuel Lucas miércoles 29 de junio de 2011
  • 26. Iniciación al desarrollo PHP con el framework Codeigniter Instalación y configuración mínima ...y ya está!!! José Manuel Lucas miércoles 29 de junio de 2011
  • 27. Iniciación al desarrollo PHP con el framework Codeigniter Rutas en CodeIgniter “http://www.url.com/controlador/método/parámetro1/ parámetro2/...” No es estricto, también: index.php?c=controlador&m=metodo Las URL se pueden redirigir desde application/config/routes.php También se puede añadir un sufijo a las URL (.html) José Manuel Lucas miércoles 29 de junio de 2011
  • 28. Iniciación al desarrollo PHP con el framework Codeigniter Rutas en CodeIgniter Por defecto, se llama al controlador Welcome http://url.com/index.php/controlador/metodo/var1/var2... Para quitarlo de la url se utiliza un archivo .htaccess RewriteEngine  on RewriteCond  $1  !^(index.php|images|robots.txt) RewriteRule  ^(.*)$  /index.php/$1  [L] http://url.com/controlador/metodo/var1/var2... José Manuel Lucas miércoles 29 de junio de 2011
  • 29. Iniciación al desarrollo PHP con el framework Codeigniter Estructura básica de un controlador class  Welcome  extends  CI_Controller  {   public  function  __construct() {     parent::__construct(); //código  que  se  repite  en  todos  los  métodos   }   public  function  index()   {     $this-­‐>load-­‐>view('welcome_message');  //carga  la  vista   } } José Manuel Lucas miércoles 29 de junio de 2011
  • 30. Iniciación al desarrollo PHP con el framework Codeigniter Pasando variables a las vistas class  Welcome  extends  CI_Controller  {   function  __construct() {     parent::__construct(); //código  que  se  repite  en  todos  los  métodos   }   function  index()   {     $this-­‐>load-­‐>view('welcome_message',  array( ‘message’  =>  ‘Bienvenido  a  CodeIgniter’ ));     } } José Manuel Lucas miércoles 29 de junio de 2011
  • 31. Iniciación al desarrollo PHP con el framework Codeigniter Pasando variables a las vistas <h1><?php  echo  $message  ?></h1> <p>The  page  you  are  looking  at  is  being  generated  dynamically  by   CodeIgniter.</p> <p>If  you  would  like  to  edit  this  page  you'll  find  it  located  at:</p> <code>application/views/welcome_message.php</code> José Manuel Lucas miércoles 29 de junio de 2011
  • 32. Iniciación al desarrollo PHP con el framework Codeigniter Controladores Agrupan funcionalidades comunes class  Blog  extends  CI_Controller  {   function  list_posts($pag=1){   }  function  categories($cat=’’){  }  function  post($id){  } } José Manuel Lucas miércoles 29 de junio de 2011
  • 33. Iniciación al desarrollo PHP con el framework Codeigniter Controladores Agrupan funcionalidades comunes class  Blog  extends  CI_Controller  {   function  list_posts($pag=1){   }  function  categories($cat=’’){  }  function  post($id){  } } //http://url.com/blog/list_posts/3 //http://url.com/categories/html5 //http://url.com/post/45 José Manuel Lucas miércoles 29 de junio de 2011
  • 34. Iniciación al desarrollo PHP con el framework Codeigniter Controladores Trabajan con los datos, cargan modelos y vistas class  Blog  extends  CI_Controller  {   function  list_posts($offset=0){ $this-­‐>config-­‐>load(‘blog’); $this-­‐>load-­‐>model(‘blog_model’); $per_page  =  $this-­‐>config-­‐>item(‘per_page’); $data[‘posts’]  =  $this-­‐>blog_model-­‐>get_posts($offset,  $per_page); $this-­‐>load-­‐>view(‘blog/list_posts’,  $data);  //subdirectorio  blog   } } José Manuel Lucas miércoles 29 de junio de 2011
  • 35. Iniciación al desarrollo PHP con el framework Codeigniter Vistas Representan los datos <h1>Listado  de  posts</h1> <?php  foreach($posts  as  $post):  ?> <div  class=”post”> <h2><?php  echo  $post[‘title’]  ?></h2> <div  class=”post_content”> <?php  echo  $post[‘content’]  ?> </div> </div> <?php  endforeach  ?> José Manuel Lucas miércoles 29 de junio de 2011
  • 36. Iniciación al desarrollo PHP con el framework Codeigniter Controladores Trabajan con los datos, cargan modelos y vistas class  Blog  extends  CI_Controller  {   function  list_posts($offset=0){ $this-­‐>config-­‐>load(‘blog’); $this-­‐>load-­‐>model(‘blog_model’); $per_page  =  $this-­‐>config-­‐>item(‘per_page’); $data[‘posts’]  =  $this-­‐>blog_model-­‐>get_posts($offset,  $per_page); $this-­‐>load-­‐>view(‘blog/list_posts’,  $data);  //subdirectorio  blog   } } José Manuel Lucas miércoles 29 de junio de 2011
  • 37. Iniciación al desarrollo PHP con el framework Codeigniter Modelos Trabajan con la BBDD config/database.php: Introducir datos conexión 2 OPCIONES: config/autoload.php: Cargar la librería ʻdatabaseʼ En el controlador: $this->load->library(ʻdatabaseʼ); José Manuel Lucas miércoles 29 de junio de 2011
  • 38. Iniciación al desarrollo PHP con el framework Codeigniter Modelos class  Blog_model  extends  CI_Model  { function  __construct(){ parent::__construct(); } function  get_posts($offset=0,  $per_page=10){ $query  =  $this-­‐>db-­‐>get(‘posts’,  0,  10); //también  $this-­‐>db-­‐>query(‘SELECT  *  FROM  posts  LIMIT  10,  0’); return  $query-­‐>result_array(); } } José Manuel Lucas miércoles 29 de junio de 2011
  • 39. Iniciación al desarrollo PHP con el framework Codeigniter Modelos Soportan Active Record $query  =  $this-­‐>db-­‐>insert(‘authors’,  array( ‘name’  =>  ‘José  Manuel  Lucas’, ‘age’  =>  27, ‘position’  =>  ‘Web  Developer’ ));  //esta  consulta  sólo  devuelve  TRUE/FALSE $query  =  $this-­‐>db -­‐>join(‘authors’,  ‘authors.id  =  posts.author’) -­‐>select(‘posts.*,  authors.name’) -­‐>get_where(‘posts’,  array(        ‘id’  =>  6 ))-­‐>row_array();  //esto  devuelve  una  sola  fila José Manuel Lucas miércoles 29 de junio de 2011
  • 40. Iniciación al desarrollo PHP con el framework Codeigniter Modelos Devolver valores Varias filas -­‐>result()  //Array  de  objetos  con  los  resultados -­‐>result_array()  //Matriz  con  los  resultados Una fila -­‐>row()  //Objeto  con  los  resultados -­‐>row_array()  //Array  con  los  resultados José Manuel Lucas miércoles 29 de junio de 2011
  • 41. Iniciación al desarrollo PHP con el framework Codeigniter Modelos Métodos útiles $this-­‐>db-­‐>last_query()  //Última  consulta.  SELECT  *  FROM  authors... $this-­‐>db-­‐>insert_id()  //ID  del  último  objeto  insertado  en  BBDD $this-­‐>db-­‐>affected_rows()  //Filas  afectadas  en  última  operación $this-­‐>db-­‐>count_all(‘authors’)  //Filas  totales  en  una  tabla $query  =  $this-­‐>db-­‐>get(‘authors’); $query-­‐>num_rows();  //Número  de  resultados  del  último  select José Manuel Lucas miércoles 29 de junio de 2011
  • 42. Iniciación al desarrollo PHP con el framework Codeigniter Librerías y Helpers José Manuel Lucas miércoles 29 de junio de 2011
  • 43. Iniciación al desarrollo PHP con el framework Codeigniter Helpers Funciones de utilidades (ayuda)... normalmente agrupadas Ejemplo: array, date, file, form, language, security, string, text, url Se cargan en el controlador $this-­‐>load-­‐>helper(‘security’);  //O  cargarlo  en  config/autoload.php do_hash(‘password’);  //SHA1  de  password do_hash(‘password’,  ‘md5’);  //MD5  de  password José Manuel Lucas miércoles 29 de junio de 2011
  • 44. Iniciación al desarrollo PHP con el framework Codeigniter Helpers Se pueden utilizar en vistas, controladores, modelos, otros helpers, librerías... <p><?php  echo  anchor('blog/comments',  'Click  Here')  ?></p> $this-­‐>db-­‐>insert(‘users’,  array( ‘name’  =>  ‘José  Manuel  Lucas’, ‘email’  =>  ‘josemanuel@jmlweb.es’, ‘password’  =>  do_hash(‘mi  contraseña’,  ‘md5’) )); José Manuel Lucas miércoles 29 de junio de 2011
  • 45. Iniciación al desarrollo PHP con el framework Codeigniter Helpers Crear un helper 1)  application/helper/adwe_helper.php  //Sufijo  “helper”  necesario 2)  function  adwe_name(){      return  ‘Asociación  de  Desarrolladores  Web  de  España’;      } 3)  Cargar  el  helper  -­‐>  Autoload  o  $this-­‐>load-­‐>helper(‘adwe’); 3)  <h1><?php  echo  adwe_name()  ?></h1> José Manuel Lucas miércoles 29 de junio de 2011
  • 46. Iniciación al desarrollo PHP con el framework Codeigniter Helpers Utilizar los recursos de CodeIgniter $CI  =&  get_instance();  //$CI  =  $this  //CodeIgniter  object $CI-­‐>load-­‐>helper(‘url’); $CI-­‐>load-­‐>model(‘users’); $users  =  $this-­‐>users-­‐>get_users(); José Manuel Lucas miércoles 29 de junio de 2011
  • 47. Iniciación al desarrollo PHP con el framework Codeigniter Helpers Extendiendo los helpers system/helpers/date_helper.php application/helpers/MY_date_helper.php José Manuel Lucas miércoles 29 de junio de 2011
  • 48. Iniciación al desarrollo PHP con el framework Codeigniter Helpers Extendiendo los helpers Añadiendo una función: function  spanish_date($strtime){ return  date(‘d/m/Y’,  $strtime); }  //añadimos  una  nueva  función $this-­‐>load-­‐>helper(‘date’); echo  spanish_date(time()); José Manuel Lucas miércoles 29 de junio de 2011
  • 49. Iniciación al desarrollo PHP con el framework Codeigniter Helpers Extendiendo los helpers Sobreescribiendo una función: function  unix_to_human($time  =  ‘’,  $seconds  =  FALSE){ return  date(‘d/m/Y  H:i:s’,  $strtime); } //sobreescribimos  la  función  “unix_to_human”  de  system/helpers/ date.php $this-­‐>load-­‐>helper(‘date’); echo  unix_to_human(time()); José Manuel Lucas miércoles 29 de junio de 2011
  • 50. Iniciación al desarrollo PHP con el framework Codeigniter Librerías (para los puretas: Bibliotecas) Subprogramas para facilitar el desarrollo Ejemplo: cart, database, email, form_validation, image_lib, pagination, session, upload... $this-­‐>load-­‐>library(‘pagination’); $config['base_url']  =  'http://url.com/posts/'; $config['total_rows']  =  '200'; $config['per_page']  =  '20';   $this-­‐>pagination-­‐>initialize($config);   <div  class=”pagination”><?php  echo  $this-­‐>pagination-­‐>create_links()  ?> </div> José Manuel Lucas miércoles 29 de junio de 2011
  • 51. Iniciación al desarrollo PHP con el framework Codeigniter Librerías útiles Database -> Trabajo con BBDD Email -> Mails con bcc, adjuntos, codificación, html... Form_validation -> Validación del lado servidor Input -> Obtener $_POST saneados Image_lib -> Redimensionar y recortar imágenes Pagination -> Paginación de items Session -> Manejo de sesiones (OJO: No $_SESSION) Upload -> Subida de ficheros, con limitación de tamaño, tipo... José Manuel Lucas miércoles 29 de junio de 2011
  • 52. Iniciación al desarrollo PHP con el framework Codeigniter Algunos ejemplos Input $this-­‐>input-­‐>post(‘name’)  //$_POST[‘name’]; Image_lib $config['source_image']  =  '/path/to/image/mypic.jpg'; $config['maintain_ratio']  =  TRUE; $config['create_thumb']  =  TRUE; $config['width']  =  75; $config['height']  =  50; $this-­‐>load-­‐>library(‘image_lib’,  $config); $this-­‐>image_lib-­‐>resize();  //Crea  ‘my_pic_thumb.jpg’  con  tamaño   75x70 José Manuel Lucas miércoles 29 de junio de 2011
  • 53. Iniciación al desarrollo PHP con el framework Codeigniter Extender y crear librerías Funcionamiento análogo al de helpers. system/libraries/pagination.php application/libraries/MY_pagination.php Para usar los recursos: $CI  =&  get_instance(); José Manuel Lucas miércoles 29 de junio de 2011
  • 54. Iniciación al desarrollo PHP con el framework Codeigniter Extra José Manuel Lucas miércoles 29 de junio de 2011
  • 55. Iniciación al desarrollo PHP con el framework Codeigniter Whilewairport Networking en aeropuertos José Manuel Lucas miércoles 29 de junio de 2011
  • 56. Iniciación al desarrollo PHP con el framework Codeigniter Sym.posium Eventos científicos José Manuel Lucas miércoles 29 de junio de 2011
  • 57. Iniciación al desarrollo PHP con el framework Codeigniter ¡¡¡Se pueden desarrollar aplicaciones comerciales con CodeIgniter!!! YO: HTML + CSS (turbineCSS) + jQuery + CodeIgniter + MySQL + GIT José Manuel Lucas miércoles 29 de junio de 2011
  • 58. Iniciación al desarrollo PHP con el framework Codeigniter FuelCMS => Sistema híbrido CMS/Framework basado en CodeIgniter MY_Model => Mini-ORM Language_editor => Edición de idiomas multilenguaje José Manuel Lucas miércoles 29 de junio de 2011
  • 59. Iniciación al desarrollo PHP con el framework Codeigniter MUCHAS GRACIAS!!!! José Manuel Lucas twitter: @jmlweb blog: http://jmlweb.es work: www.digio.es miércoles 29 de junio de 2011