MVC y otros...
models
- la clase ha de extender de CI_Model
- se carga con
$this→load→model('<modelo>'[,'<otro_nombre_instancia>'][,'TRUE']);- el tercer parámetro obliga a la conectar al cargar el modelo (si está a TRUE)
- en lugar de TRUE se le pueden pasar los parámetros de conexión si no se van a utilizar los definidos en
/config/database.php - http://codeigniter.com/user_guide/general/models.html
controllers
- la clase ha de extender de
CI_Controller - cargar helper →
$this→load→helper('<helper>') - crear archivo PHP con el mismo nombre que la clase (en minúsculas)
- la función
indexse ejecuta «automáticamente» al invocar a la clase - podemos cargar una vista con
$this→load→view() añadir en el contructor$this→load→scaffolding(tabla)- añadir en
index()la carga de la tabla →$data['query'] = $this→db→get(tabla)
views
- para cargar una vista →
$this→load→view('<vista>'); - crear archivo con el nombre de la clase y «_view» (no obligatorio, por normativa)
- utilizar sintaxis PHP para mostrar datos del controller en la vista
- recorrer los registros de la tabla on
$query→result()y$row→campo - añadir función del helper URL
<?anchor('blog/comments/'.$row→id,'comentarios');?>que se encargará de llamar a la funcióncommentsde la claseBlog
helper
- para cargar helper(s)
$this→load→helper('<helper>');$this→load→helper(array('<helper>','<helper>');
- disponibles
- url (poner
echodelante)- anchor('<controlador[/método]>') → enlace al
controlador[/método] - $this→uri→segment(n) ← recoge el parámetro posición n de la URL
- form (poner
echodelante)- form_open('<controlador>') ←
controlador[/método]es quien recoge los datos - form_label('<nombre_campo>','<nombre_id>')
- form_input(array('name' ⇒ 'nombre', 'id' ⇒ 'nombre', 'size' ⇒ '50', 'value' ⇒ set_value('nombre'))) ← set_value sirve para la recarga de datos en el formulario
- form_password(array('name' ⇒ 'password', 'id' ⇒ 'password', 'size' ⇒ '50'));
- form_submit('<nombre_campo>','<texto>');
- form_close()
library
$this→load→library('<libreria>');$this→load→library(array('<libreria>','<libreria>'));
- disponibles
- form_validation
$this→form_validation→set_rules('<nombre_campo>','<texto_referencia_errrores>','validador|validador|funcion_php')$array = array(«name» ⇒ «trim|required»,«email» ⇒ «trim|required|valid_email»); $this→form_validation→set_rules($array)- se pueden encadenar validadores y funciones PHP en cualquier orden
- los cambios que efectuen las funciones PHP se mantienen al recuperar el campo
- validadores: required, valid_email, matches[<otro_campo_formulario>], min_length[n], etc…
- se puede crear una fución PHP para validar, al margen de las vistas con
callback_funcion_check. Solo hay que crear lafuncion_checken el controlador - se pueden crear grupo de validadores en
application/config/form_validation.phppara su uso global y automatizado- ese fichero ha de contener un array $config y arrays contenidos, con etiqueta <grupo> y dentro las reglas a validar
- se puede llamar automaticamente al hacer un
$this→form_validation→run(<grupo>) - se ejecuta automaticamente al hacer un
$this→form_validation→run()si existe una etiqueta de grupo que coincida con la clase/método
- funciones «evidentes»: trim, md5, sha1
$this→form_validation→set_message('<validador>','<mensaje de error cuando el validador no se cumple'>$this→form_validation→run()$this→input→post('<campo>')→ recupera los campos, con las modificaciones que se hayan podido efectuar enset_rules, con protección XSS si está activo enconfig/config.php
pagination$this→load→library('pagination');$config = array(«base_url»,«total_rows»,«per_page»,«uri_segment»];← rellenar$this→pagination→initialize($config);$data['pagination'] = $this→pagination→create_links();
- unit_test
$this→unit→run(<test>,<resultado>,<texto>);- test = array de pruebas
- resultado = array (o no) de resultados
- se ejecuta un
foreachdel array test ejecutando el$this→unit→run
$this→unit→report();
table- session
$this→session→sess_destroy();$this→session→sess_create();$this→session→set_userdata(array(….));$this→session→userdata(<campo>);
- email
- creación de una librería
- en el constructor, hacer una instancia:
$this→CI = & get_instance();para poder acceder a todas las funciones de CodeIgniter (CI puede ser cualquier nombre, solo hay que referenciarse a él)- por ejemplo,
$this→CI→db→getwhere(….)