Presentación Framework CodeIgniter

59
Iniciación al desarrollo PHP con el Framework CodeIgniter por José Manuel Lucas / @jmlweb miércoles 29 de junio de 2011

description

Iniciación al desarrollo PHP con el Framework CodeIgniter por José Manuel Lucas

Transcript of Presentación Framework CodeIgniter

Page 1: Presentación Framework CodeIgniter

Iniciación al desarrollo PHP con el Framework CodeIgniter

por José Manuel Lucas / @jmlweb

miércoles 29 de junio de 2011

Page 2: Presentación Framework CodeIgniter

Hashtag #adwe_mur

miércoles 29 de junio de 2011

Page 3: Presentación Framework CodeIgniter

José Manuel Lucas

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

miércoles 29 de junio de 2011

Page 4: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Introducción

miércoles 29 de junio de 2011

Page 5: Presentación Framework CodeIgniter

José Manuel Lucas

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...)

miércoles 29 de junio de 2011

Page 6: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Qué es MVC?

ControladorRecibe los datos, los interpreta y los dirige al modelo o a la

vista.1

-Separación entre lógica y presentación, dividiendo las tareas en 3 partes:

miércoles 29 de junio de 2011

Page 7: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Qué es MVC?

Modelo ControladorEncargado de obtener los

datos de la BBDD

2

Recibe los datos, los interpreta y los dirige al

modelo o a la vista.1

-Separación entre lógica y presentación, dividiendo las tareas en 3 partes:

miércoles 29 de junio de 2011

Page 8: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Qué es MVC?

Modelo Vista ControladorEncargado de

obtener los datos de la BBDD

2

Presenta los datos (capa de layout)

3

Recibe los datos, los interpreta y los

dirige al modelo o a la vista.

1

-Separación entre lógica y presentación, dividiendo las tareas en 3 partes:

miércoles 29 de junio de 2011

Page 9: Presentación Framework CodeIgniter

José Manuel Lucas

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 internoDESVENTAJAS: Mayor tiempo de desarrollo, menor revisión del código

miércoles 29 de junio de 2011

Page 10: Presentación Framework CodeIgniter

José Manuel Lucas

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 comunidadDESVENTAJAS: Menor control sobre el código, no siempre es posible, rendimiento...

miércoles 29 de junio de 2011

Page 11: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Qué alternativas hay?

-Otros frameworks: SymfonyZend FrameworkCakePHPVevuiYIIFuelPHPYupp

miércoles 29 de junio de 2011

Page 12: Presentación Framework CodeIgniter

José Manuel Lucas

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

miércoles 29 de junio de 2011

Page 13: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Por qué CodeIgniter?

1) AbiertoPuedes copiar, modificar, crear proyectos relacionados...

El código fuente está disponible en BitBucket

Propiedad de Ellislab

Proyectos derivados: FuelCMS, planet-ci...

miércoles 29 de junio de 2011

Page 14: Presentación Framework CodeIgniter

José Manuel Lucas

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ʼ

miércoles 29 de junio de 2011

Page 15: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Por qué CodeIgniter?

3) Arquitectura MVCa) 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 ;)

miércoles 29 de junio de 2011

Page 16: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Por qué CodeIgniter?

3) Arquitectura MVCb) 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

miércoles 29 de junio de 2011

Page 17: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Por qué CodeIgniter?

3) Arquitectura MVCc) VISTAS: “application/views”

Parte de presentación de datos

Mayormente HTML, con un poco de PHP

Puede utilizar pseudovariables => {title}

miércoles 29 de junio de 2011

Page 18: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Por qué CodeIgniter?

4) Soporte para diferentes motores de BBDDMySQL/MySQLi

PostgreSQL

ODBC & MSSQL

SQLITE

Oracle

miércoles 29 de junio de 2011

Page 19: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Por qué CodeIgniter?

5) Amplia ComunidadWiki, foro, bugtracker, etc en http://www.codeigniter.com

Muchos tutoriales, presentaciones, directorios de recursos...

“CodeIgniter Community Chieftain” = MODERADOR

CICON => Conferencia a nivel mundial

miércoles 29 de junio de 2011

Page 20: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Por qué CodeIgniter?

6) Librerías para casi todoSeguridad, Validación de formularios, Sesiones, Email, FTP,

Redimensionar imágenes, Paginación...

+

LIBRERÍAS EXTERNAS (Twitter, Facebook, etc...)

http://www.codeigniterdirectory.com

miércoles 29 de junio de 2011

Page 21: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Por qué CodeIgniter?

7) Curva de aprendizaje cortaNo 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?)

miércoles 29 de junio de 2011

Page 22: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

¿Por qué CodeIgniter?

8) Soporte para plantillasAunque 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}

miércoles 29 de junio de 2011

Page 23: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Primeros pasos con CodeIgniter

miércoles 29 de junio de 2011

Page 24: Presentación Framework CodeIgniter

José Manuel Lucas

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.

miércoles 29 de junio de 2011

Page 25: Presentación Framework CodeIgniter

José Manuel Lucas

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

miércoles 29 de junio de 2011

Page 26: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Instalación y configuración mínima

...y ya está!!!

miércoles 29 de junio de 2011

Page 27: Presentación Framework CodeIgniter

José Manuel Lucas

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)

miércoles 29 de junio de 2011

Page 28: Presentación Framework CodeIgniter

José Manuel Lucas

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 .htaccessRewriteEngine  onRewriteCond  $1  !^(index\.php|images|robots\.txt)RewriteRule  ^(.*)$  /index.php/$1  [L]

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

miércoles 29 de junio de 2011

Page 29: Presentación Framework CodeIgniter

José Manuel Lucas

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   }}

miércoles 29 de junio de 2011

Page 30: Presentación Framework CodeIgniter

José Manuel Lucas

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’));  

  }}

miércoles 29 de junio de 2011

Page 31: Presentación Framework CodeIgniter

José Manuel Lucas

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>

miércoles 29 de junio de 2011

Page 32: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

ControladoresAgrupan funcionalidades comunesclass  Blog  extends  CI_Controller  {   function  list_posts($pag=1){   }

 function  categories($cat=’’){  }  function  post($id){  }

}

miércoles 29 de junio de 2011

Page 33: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

ControladoresAgrupan funcionalidades comunesclass  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

miércoles 29 de junio de 2011

Page 34: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

ControladoresTrabajan con los datos, cargan modelos y vistasclass  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

  }}

miércoles 29 de junio de 2011

Page 35: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

VistasRepresentan 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  ?>

miércoles 29 de junio de 2011

Page 36: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

ControladoresTrabajan con los datos, cargan modelos y vistasclass  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

  }}

miércoles 29 de junio de 2011

Page 37: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

ModelosTrabajan 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ʼ);

miércoles 29 de junio de 2011

Page 38: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Modelosclass  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();

}}

miércoles 29 de junio de 2011

Page 39: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

ModelosSoportan 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

miércoles 29 de junio de 2011

Page 40: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

ModelosDevolver valoresVarias 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

miércoles 29 de junio de 2011

Page 41: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

ModelosMé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

miércoles 29 de junio de 2011

Page 42: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Librerías y Helpers

miércoles 29 de junio de 2011

Page 43: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

HelpersFunciones de utilidades (ayuda)... normalmente agrupadasEjemplo: 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  passworddo_hash(‘password’,  ‘md5’);  //MD5  de  password

miércoles 29 de junio de 2011

Page 44: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

HelpersSe 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’  =>  ‘[email protected]’,‘password’  =>  do_hash(‘mi  contraseña’,  ‘md5’)

));

miércoles 29 de junio de 2011

Page 45: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

HelpersCrear 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>

miércoles 29 de junio de 2011

Page 46: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

HelpersUtilizar los recursos de CodeIgniter

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

miércoles 29 de junio de 2011

Page 47: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

HelpersExtendiendo los helpers

system/helpers/date_helper.phpapplication/helpers/MY_date_helper.php

miércoles 29 de junio de 2011

Page 48: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

HelpersExtendiendo 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());

miércoles 29 de junio de 2011

Page 49: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

HelpersExtendiendo 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());

miércoles 29 de junio de 2011

Page 50: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Librerías (para los puretas: Bibliotecas)Subprogramas para facilitar el desarrolloEjemplo: 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>

miércoles 29 de junio de 2011

Page 51: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Librerías útilesDatabase -> Trabajo con BBDDEmail -> Mails con bcc, adjuntos, codificación, html...Form_validation -> Validación del lado servidorInput -> Obtener $_POST saneadosImage_lib -> Redimensionar y recortar imágenesPagination -> Paginación de itemsSession -> Manejo de sesiones (OJO: No $_SESSION)Upload -> Subida de ficheros, con limitación de tamaño, tipo...

miércoles 29 de junio de 2011

Page 52: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Algunos ejemplosInput$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

miércoles 29 de junio de 2011

Page 53: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

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

system/libraries/pagination.phpapplication/libraries/MY_pagination.php

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

miércoles 29 de junio de 2011

Page 54: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Extra

miércoles 29 de junio de 2011

Page 55: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Whilewairport

Networking en aeropuertos

miércoles 29 de junio de 2011

Page 56: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

Sym.posium

Eventos científicos

miércoles 29 de junio de 2011

Page 57: Presentación Framework CodeIgniter

José Manuel Lucas

Iniciación al desarrollo PHP con el framework Codeigniter

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

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

miércoles 29 de junio de 2011

Page 58: Presentación Framework CodeIgniter

José Manuel Lucas

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

miércoles 29 de junio de 2011

Page 59: Presentación Framework CodeIgniter

Iniciación al desarrollo PHPcon 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