taller codeigniter
TRANSCRIPT
![Page 1: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/1.jpg)
Desarrollo web con CodeIgniter
José Argudo Blanco
![Page 2: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/2.jpg)
Un poco de información sobre mi:
● Actualmente trabajando en consultorpc.com● Twitter: @jose_argudo● Email: [email protected]● Email: [email protected]● Web: joseargudo.com
![Page 3: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/3.jpg)
¿Que vamos a ver?
● Que es CodeIgniter, ventajas y utilidades● Ejemplos de código● Ejemplos con SmartClient JavaScript● Comentarios y preguntas
![Page 4: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/4.jpg)
CI introducción
● Fácil aprendizaje, prácticamente descargar y empezar a programar.
● Facilita la cohesión y homogeneización del código de nuestra aplicación. Expecialmente en grupos de trabajo.
● Proporciona clases y helpers ya existentes que podemos utilizar directamente en nuestra aplicación.
![Page 5: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/5.jpg)
CI introducción
● Con CodeIgniter podemos generar URLs amigables:
– http://local.kumbba.com/graficas/ver/1● Podemos ampliarlo con nuestras propias clases,
helpers etc● La documentación de CodeIgniter es muy buena, y
el propio framework tiene una curva de aprendizaje muy suave.
![Page 6: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/6.jpg)
CI introducción
● Separación entre nuestro código “application” y el framework “system” facilitando la actualización del framework sin afectar a nuestro código.
![Page 7: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/7.jpg)
CI introducción
● Dentro de “application” encontraremos:
– config → configuración del framework
– controllers– models– views
![Page 8: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/8.jpg)
CI introducción
● Rápida configuración de la aplicación desde el fichero application → config → config.php
● Parámetro indispensable 'base_url' que se utilizará en toda la aplicación
![Page 9: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/9.jpg)
CI introducción
● Posibilidad de definir que librerías auto-cargar desde el fichero application → config → autoload.php
● Nos permite mejorar el rendimiento de nuestra aplicación cargando solo lo que vamos a necesitar
![Page 10: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/10.jpg)
CI introducción
● Versátil configuración de acceso a la base de datos a través de un array.
● Posibilidad de definir múltiples configuraciones pudiendo cambiar de una a otra con solo modificar el grupo activo.
![Page 11: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/11.jpg)
CI introducción
● Configuración del controlador por defecto en application → config → routes.php
![Page 12: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/12.jpg)
CI introducción, MVC
● Uso del patrón de diseño MVC ( Modelo – Vista – Controlador )
– Modelo: representa estructuras de datos, comúnmente será una tabla de una base de datos, pero podría ser un fichero XML, un fichero de texto, web service etc
– Vista: aquí es donde se muestran los datos recogidos en el modelo, ya sea en html, pdf etc En CodeIgniter un fichero de vista puede representar un fragmento (cabecera, pie) lo que en ZF haríamos con Layouts / Partials … es más simple.
![Page 13: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/13.jpg)
CI introducción, MVC
● Controlador: sirve de intermediario entre la petición y los modelos, vistas etc
● NOTA: CodeIgniter no obliga a tener modelos, aunque lógicamente es más beneficioso utilizarlos que no hacerlo.
![Page 14: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/14.jpg)
CI introducción, MVC
● A continuación podemos ver un ejemplo de controlador:
– Necesario extender a la clase CI_Controller
![Page 15: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/15.jpg)
CI introducción, MVC● En la siguiente imagen podemos ver un ejemplo de
vista. Con uso de la clase Session de CI
![Page 16: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/16.jpg)
CI introducción, MVC● Ejemplo de modelo, extiende a la clase CI_Model
![Page 17: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/17.jpg)
CI Active Record
● Clase Active Record que nos permitirá:– Seleccionar datos– Insertar– Actualizar– Eliminar
● Todo ello sin utilizar SQL = Mayor portabilidad de nuestro sitio a otros gestores de bases de datos.
![Page 18: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/18.jpg)
CI Active Record
● A diferencia de otros frameworks, por ejemplo ZF no se requiere una clase que represente a cada tabla de la base de datos. Se pierde potencia pero se gana simplicidad.
● Veamos un ejemplo, una consulta SQL normal y corriente:
![Page 19: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/19.jpg)
CI Active Record
![Page 20: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/20.jpg)
CI Active Record
● En la consulta SQL anterior encontramos:– Select– From– Where– Order– Limit
● ¿Como podemos traducirlo a la clase Active Record de CodeIgniter? ...
![Page 21: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/21.jpg)
CI Active Record
![Page 22: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/22.jpg)
CI Active Record
● Como hemos podido ver es muy sencillo trasladar nuestras consultas a la clase Active Record de CodeIgniter.
● Evitamos tener código SQL mezclado con nuestro código PHP, personalmente lo prefiero por que así solo tenemos código PHP en el fichero, lo encuentro más legible.
● Si disponemos de PHP 5 podemos concatenar los métodos y nuestra consulta quedaría...
![Page 23: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/23.jpg)
CI Active Record
![Page 24: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/24.jpg)
CI Active Record● Veamos ahora un ejemplo de inserción:
![Page 25: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/25.jpg)
CI Active Record
● Vamos ahora a ver el ejemplo paso a paso. Imaginemos que accedemos a la siguiente URL:
● http://local.kumbba.com/unirse.html
![Page 26: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/26.jpg)
CI Active Record
● Este formulario debe crear un nuevo registro en la tabla usuarios de nuestra aplicación.
● Esta tabla contiene tres campos:
– id: autonumérico– nombre– pass
![Page 27: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/27.jpg)
CI Active Record● El formulario, en html tiene 3 inputs:
– Uno tipo text, de name nombre– Otro tipo text, de name pass– Otro tipo submit, de name enviar
● El action dirigirá la petición a controller unirse método index
![Page 28: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/28.jpg)
CI Active Record● Aquí vemos el método index del controlador
unirse (ejemplo):– Primero comprobamos que estemos enviando el
formulario.– Después comprobamos los campos requeridos– Por último llamamos al método insertar del
modelo
![Page 29: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/29.jpg)
CI Active Record
● Veamos ahora un ejemplo básico de la documentación de CI:
– Los valores se pasan en formato array– Todos los valores se escapan automáticamente para
que las consultas sean más seguras
![Page 30: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/30.jpg)
CI Active Record● Posibilidad de inserciones en batch:
– $this->db->insert_batch();
![Page 31: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/31.jpg)
CI Active Record
● El proceso de actualización de un registro también es muy sencillo. Basta con añadir una clausula where, con el id del registro
![Page 32: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/32.jpg)
CI Active Record
● Por último vemos un ejemplo de eliminación de registro. Es similar al método update, debemos pasarle un id de registro.
![Page 33: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/33.jpg)
CI Active Record
● Podemos ver más ejemplos y muchos más métodos en la siguiente URL:
– http://codeigniter.com/user_guide/database/active_record.html
![Page 34: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/34.jpg)
CI Form Helper
● Uno de los helpers que yo considero más útiles e interesantes.
● Muy práctico usarlo junto a la Form Validation Class
● Veamos un ejemplo con el formulario de la imagen de la izquierda.
![Page 35: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/35.jpg)
CI Form Helper
● El formulario anterior se podría traducir en el siguiente código HTML:
![Page 36: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/36.jpg)
CI Form Helper● El código anterior podría transformarse en el
siguiente código que utiliza el Form Helper de CodeIgniter. Este código lo encontrariamos en un fichero de vista:
![Page 37: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/37.jpg)
CI Form Validation
● Ahora vamos a utilizar la clase Form Validation para validar nuestro formulario.
● El primer paso es añadir una forma de mostrar los errores.
● Después en nuestro controlador tendremos:
![Page 38: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/38.jpg)
CI Form Validation
![Page 39: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/39.jpg)
CI Form Validation● El primer paso es cargar la librería
form_validation● El segundo paso es definir las reglas de validación
– form_validation->set_rules ● El tercer paso es ejecutar la validación (devuelve
TRUE o FALSE):– form_validation->run()
● NOTA: si no añadimos ninguna regla la validación siempre devuelve FALSE
![Page 40: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/40.jpg)
CI Form Validation
● Si queremos que se mantengan los datos en los campos, entre validaciones, podremos usar:
– set_value('nombre_del_campo');
![Page 41: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/41.jpg)
CI Form Validation
● En la imagen podemos ver como se muestran los mensajes de error.
● Ahora lo interesante sería poder cambiar este mensaje, veamos como en la siguiente diapositiva.
![Page 42: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/42.jpg)
CI Form Validation
● La forma de modificar estos mensajes es utilizando el método set_message, contando que:
– Hemos de indicar en el primer parámetro la regla objetivo.
– Podemos utilizar %s para sustituir el nombre indicado en la regla
![Page 43: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/43.jpg)
CI Form Validation
● Aquí vemos como ha surtido efecto el cambio del mensaje.
● ¿Como haríamos para mostrar el error junto al campo que lo ha producido?
![Page 44: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/44.jpg)
CI Form Validation
● Eliminamos el método que teníamos para eliminar errores en la parte superior y añadimos, después de cada campo el método form_error('nombre_del_campo');
● Podemos también añadir estilos...
![Page 45: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/45.jpg)
CI Form Validation● En el segundo y tercer parámetro del método
form_error añadiremos el código HTML que queramos que se muestre antes y después del mensaje de error.
![Page 46: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/46.jpg)
CI Form Validation
● En la siguiente página podemos ver las reglas de validación que vienen predefinidas:
● codeigniter.com/user_guide/libraries/form_validation.html#rulereference
● También podemos utilizar nuestras propias funciones:
– $this->form_validation->set_rules('username', 'Username', 'callback_username_check');
– Deberíamos crear una función username_check
![Page 47: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/47.jpg)
CI Language Class
● Otra de las funcionalidades más útiles de CodeIgniter es la librería Language Class que nos permite realizar sitios web en varios idiomas de forma rápida y sencilla.
● No es tan potente como otros frameworks (Localization en ZF)
● Veamos unos pasos de ejemplo muy básicos para utilizar esta clases de idioma:
![Page 48: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/48.jpg)
CI Language Class
● Lo primero será crear las carpetas necesarias para cada idioma.
● Estas carpetas las crearemos dentro de la carpeta language
● Dentro de las carpetas crearemos los ficheros: english\textosweb_lang.php
![Page 49: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/49.jpg)
CI Language Class
● Dentro del fichero encontramos un array $lang donde cada elemento es una traducción. Tenemos por un lado el índice del array y por otro lado el valor.
● El segundo paso es cargar el fichero de idioma
![Page 50: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/50.jpg)
CI Language Class● Por ejemplo en algunas webs he utilizado la carga
del fichero de idioma de la siguiente forma:
![Page 51: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/51.jpg)
CI Language Class
● Primero iniciamos la sesión● Luego comprobamos si tenemos el idioma
definido en la sesión, en caso contrario lo iniciamos al idioma que deseemos por defecto.
● Definimos un sufijo de idioma, que nos servirá para los campos de la base de datos
● Cargamos el fichero de idioma con $this->lang->load
![Page 52: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/52.jpg)
CI Language Class
● Para mostrar cada línea traducida utilizaremos $this->lang->line('indice_array_lang');
![Page 53: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/53.jpg)
CI Language Class
● En el siguiente código podemos ver como usar el sufijo de idiomas para obtener de la base de datos el campo deseado.
![Page 54: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/54.jpg)
CI Language Class
● Aquí vemos un ejemplo de controlador que se puede utilizar para cambiar de idioma
![Page 55: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/55.jpg)
CI Language Class
● Al finalizar el cambio de idioma en el controlador realizamos una redirección a la misma página, que veremos traducida debido al cambio de idioma.
![Page 56: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/56.jpg)
CI Language Class
● Antes hemos visto como podemos definir reglas de validación en un formulario con set_rules
● Por ejemplo tenemos la siguiente regla:– $this->form_validation->set_rules('nombre',
'nombre', 'required');● En este caso, ¿Como traduciriamos el nombre del
campo que aparecerá en el error?● Veamoslo...
![Page 57: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/57.jpg)
CI Language Class
● En la misma definición de la regla, usaremos el parámetro lang: y después el nombre del indice del array $lang de nuestros ficheros de idioma.
![Page 58: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/58.jpg)
CI Email Class
● Otra de las clases de CodeIgniter que utilizaremos más a menudo es la clase de email.
● La podemos ver aquí:● codeigniter.com/user_guide/libraries/email.html● Veamos un ejemplo de uso...
![Page 59: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/59.jpg)
CI Email Class
● Personalmente me gusta separar los métodos encargados de enviar emails en su propio modelo.
● Podemos establecer la carga de este modelo en el constructor del controlador
![Page 60: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/60.jpg)
CI Email Class
● Una vez tenemos el modulo cargado podemos usar sus métodos normalmente.
● También vemos como usamos la clase session para establecer un mensaje flashdata, que solo permanece durante una petición
● Después efectuamos una redirección
![Page 61: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/61.jpg)
CI Email Class● En el modelo lo único que tenemos que hacer es
cargar la librería email, establecer el from, el to, subject, mensaje y enviar. ¡Listo!
![Page 62: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/62.jpg)
CI Email Class
● La clase cuenta con muchas opciones, entre ellas:– Adjuntar ficheros– Enviar email en texto plano o html– CC y BCC– Uso de SMTP– ...
![Page 63: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/63.jpg)
CI, extendiendo CodeIgniter
● Vamos a ver ahora como extender CI de forma fácil.
● Por ejemplo, veamos como extender al controlador de base.
● Al principio vimos que nuestros controladores extendian siempre al CI_Controller de la siguiente forma:
– class Home extends CI_Controller
![Page 64: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/64.jpg)
CI, extendiendo CodeIgniter
● Esto es útil si vemos que un método o código se repite entre varios controladores, podemos extraerlo a una clase superior. Por ejemplo en mis controladores repetía mucho la carga de las vistas cabecera y pie.
![Page 65: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/65.jpg)
CI, extendiendo CodeIgniter
● Resumí todas estas peticiones en una llamada a un método protegido _render heredado de una nueva clase.
● Esta nueva clase la crearemos en application → core
![Page 66: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/66.jpg)
CI, extendiendo CodeIgniter
● Esta nueva clase extenderá a CI_Controller, y tendrá en su constructor una llamada al constructor de la clase padre
![Page 67: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/67.jpg)
CI, extendiendo CodeIgniter
● Luego podemos definir los métodos que deseemos, y que luego las clases hijas podrán utilizar. En vez de extender a CI_Controller nuestros controladores extenderán nuestra nueva clase
![Page 68: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/68.jpg)
CI, extendiendo CodeIgniter● Otra de las características que podemos transportar
a una clase padre sería el generador de paginación.
![Page 69: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/69.jpg)
CI, extendiendo CodeIgniter
● La clase de paginación es muy utilizada en prácticamente todos los proyectos.
● En su forma más reducida son unas 8 líneas de código, que prácticamente siempre será el mismo. Por lo tanto es un buen candidato a ser extraído a la clase padre.
● Los parametros son base_url, total_rows, uri_segment, per_page, first_link, last_link
● En la ayuda de CI hay muchas más opciones...
![Page 70: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/70.jpg)
CI, extendiendo CodeIgniter● Después desde cualquier controlador que herede
de nuestro controlador padre podemos llamar al método paginate, indicando los parámetros necesarios
![Page 71: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/71.jpg)
CI sugerencia para mejorar la seguridad de nuestro sitio
● En el fichero index.php, podemos modificar dos variables que indican donde están nuestra carpeta system y application.
● Moviendo estas carpetas fuera del webroot del servidor evitaría el acceso directo por web.
![Page 72: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/72.jpg)
CI, ahora que estamos en index.php
● No olvidemos que aquí se configura el “ambiente” de la aplicación.
● A veces se olvida por que index.php no se suele tocar
![Page 73: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/73.jpg)
CI, pequeñas cosas muy útiles
● Podemos llamar al método base_url() gracias al herlper URL.
● Esto es útil en imágenes, ficheros JavaScript etc a la hora de mover el sitio de un servidor a otro ...
![Page 74: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/74.jpg)
CI, pequeñas cosas muy útiles
● Otro método disponible sería site_url, que no solo devuelve la base_url, más los segmentos indicados como parámetros, sino que además añade el sufijo que hayamos definido en nuestra configuración.
![Page 75: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/75.jpg)
CI, pequeñas cosas muy útiles● Anchor crea un elemento <a> con tres
parámetros, segmentos, texto y atributos● uri_string() devuelve el segmento URI de la
URL actual. Muy útil junto a la clase de cambio de idioma que comentábamos hace algunas diapositivas
![Page 76: Taller Codeigniter](https://reader031.vdocuments.co/reader031/viewer/2022020713/557b6246d8b42a78238b52d0/html5/thumbnails/76.jpg)
CI, hasta pronto
● Por supuesto nos dejamos muchas más cosas. Pero espero haberos animado a utilizar CodeIgniter, y si ya lo hacíais, espero haberos descubierto algún truquito más.
¡Hasta pronto!