Just another web developer

Etiquetas de la entrada: básico

Texto

Mi trabajo de la universidad. Espero sirva de guía para quienes están empezando.

Comentarios
Texto

Esta es la primera serie que escribo. Aprender CodeIgniter desde cero! 

La intención es que podamos aprender este framework PHP y sacar el máximo provecho de esta herramienta que se ha popularizado bastante y la verdad que no en balde ya que ofrece muchísimas características muy interesantes. Espero cubrir de manera práctica temas útiles que a su vez nos den una mano en la didáctica.

También a medida que vamos avanzando voy a estar muy agradecido con los comentarios que puedan aportar aquellos que ya conocen el framework!


¿Qué es CodeIgniter?

CodeIgniter es un Framework de Desarrollo de Aplicaciones - una caja de herramientas - para personas que construyen sitios con PHP. Su objetivo es permitirte desarrollar proyectos mucho más rápido de lo que podrías si estuvieras escribiendo código desde cero, ofreciendo un amplio conjunto de bibliotecas para tareas necesarias, así como una interfaz sencilla y una estructura lógica para acceder a estas colecciones. CodeIgniter te permite de manera creativa centrarse en el proyecto, minimizando la cantidad de código necesario para una tarea determinada.

¿Para quienes es CodeIgniter?

CodeIgniter es para vos si:

  • Querés un framework con una pequeña huella.
  • Necesitas un rendimiento excepcional.
  • Necesitas una amplia compatibilidad con el estándar de cuentas de alojamiento que ejecutan una variedad de versiones de PHP y configuraciones.
  • Querés un framework que requiere casi cero configuración.
  • Querés un framework que no requieren el uso de la línea de comandos.
  • Querés un framework que no requiere que se adhieran a las normas restrictivas de codificación.
  • No estás interesado en las bibliotecas monolíticas a gran escala como PEAR.
  • No querés verte obligado a aprender un lenguaje de plantillas (aunque un analizador plantilla está opcionalmente disponible si deseas uno).
  • Evitar la complejidad, favoreciendo las soluciones simples.
  • Necesitas una documentación clara, completa.

Cuadro de flujo de trabajo

El siguiente gráfico muestra cómo fluyen los datos en todo el sistema:

  • El index.php sirve como controlador frontal, inicializando la base de los recursos necesarios para ejecutar CodeIgniter.
  • El enrutador examina la petición HTTP para determinar qué se debe hacer con ella.
  • Si existe un archivo en caché, se envía directamente al navegador, sin pasar por la ejecución normal del sistema.
  • Seguridad. Antes de que el controlador de aplicación se cargue, la petición HTTP y cualquier dato de usuario enviado se filtran para la seguridad.
  • El controlador de carga del modelo, las libreríasayudantes (helpers), y todos los demás recursos necesarios para procesar la solicitud.
  • La vista una vez completada es renderizada luego se envía al navegador web para ser visto. Si el almacenamiento en caché está habilitado, la vista se almacena en caché primero de modo que en las solicitudes posteriores puedan ser servidas.

Modelo-Vista-Controlador

CodeIgniter está basado en el patrón de desarrollo Modelo-Vista-Controlador. MVC es un enfoque de software que separa la lógica de aplicación de la presentación. En la práctica, permite que las páginas Web contengan mínimas secuencias de comandos ya que la presentación está separada de los scripts PHP.

  • El modelo representa las estructuras de datos. Normalmente las clases modelo contienen funciones que le ayudan a recuperar, insertar y actualizar la información en la base de datos.
  • La vista es la información que es se presenta a un usuario. Una vista normalmente será una página web, pero en CodeIgniter, una vista también puede ser un fragmento de la página como un encabezado o un pie de página. También puede ser una página de RSS, o cualquier otro tipo de “página”.
  • El controlador actúa como un intermediario entre el modelo, la vista, y todos los demás recursos necesarios para procesar la petición HTTP y generar una página web.

CodeIgniter tiene un enfoque bastante flojo para MVC ya que los modelos no son necesarios. Si vos no necesitás la separación añadida, o encontrás que el mantenimiento de los modelos requiere una mayor complejidad de la que quisieras, podés ignorarlos y construir tu aplicación mínimamente con los controladores y vistas. CodeIgniter también te permite incorporar tus propias secuencias de comandos existentes, o incluso desarrollar bibliotecas del núcleo para el sistema, lo que te permite trabajar de una manera que tiene más sentido.

Diseño y Objetivos de Arquitectura

La meta de CodeIgniter es obtener el máximo rendimiento, capacidad y flexibilidad en el paquete más pequeño y ligero que, sea posible.

Desde un punto de vista técnico y arquitectónico, CodeIgniter es creado con los siguientes objetivos:

  • Instanciación dinámica. En CodeIgniter, de componentes se cargan y ejecutan rutinas sólo cuando se le solicita, en lugar de globalmente. No se hacen suposiciones por el sistema respecto a lo que puede ser necesario más allá de los recursos básicos mínimos, por lo que el sistema es muy ligero de peso de forma predeterminada. Los eventos, siendo disparados por la petición HTTP, y los controladores y vistas que diseñes determinará lo que se invoca.
  • Acoplamiento flexible. El acoplamiento es el grado en que de componentes de un sistema dependen uno del otro. A la menor dependencia de componentes uno del otro más reutilizable y flexible se vuelve el sistema. El objetivo es un sistema de acoplamiento flexible.
  • Singularidad de componentes. Singularidad es el grado en que de componentes tienen un propósito muy específico. En CodeIgniter, cada clase y sus funciones son muy autónomos a fin de permitir la máxima utilidad.

Requerimientos del servidor

PHP versión 5.1.6 o superior.

Una base de datos es requerida para la mayoría de las aplicaciones web. Actualmente las bases de datos soportadas son MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, y ODBC.

Instalación

  • DESCARGARLO
    Podés descargar CodeIgniter desde este enlace: http://codeigniter.com/downloads/

  • INSTRUCCIONES DE INSTALACIÓN
    CodeIgniter se instala en 4 pasos:
    1. Descomprime el paquete
    2. Sube las carpetas y archivos de CodeIgniter a tu servidor. Normalmente el archivo index.php estará a la raíz.
    3. Abra el archivo application/config/config.php con un editor de texto y configure la URL base. Si tenés intenciones de utilizar encriptación y/o sesiones, también hay que configurar la clave de encriptación.
    4. Si tenés intenciones de utilizar base de datos, abra el archivo application/config/database.php con un editor de texto y escriba la configuración adecuada para la base de datos.

    Si se desea aumentar la seguridad ocultando las ubicación de sus archivos CodeIgniter puede cambiar el nombre de las carpetas de system y application a algo más privado. Si los renombras, tenés que abrir tu archivo principal index.php y establecer las variables $system_folder y $application_folder en la parte superior del archivo con los nuevos nombres que hayas elegido.

    Para la mejor seguridad, tanto en la system y las carpetas application debe estar por encima de la raíz web, para que no sean directamente accesibles a través de un navegador. De forma predeterminada, los archivos. htaccess se incluyen en cada carpeta para evitar el acceso directo, pero es mejor sacarlos del acceso público en su totalidad en caso de cambio de servidor web de configuración o no cumplir con la htaccess..

    Después de moverlos, abra el archivo index.php principal y establecezca las variables $system_folder y $application_folder, preferiblemente con una ruta completa, por ejemplo, '/www/MiUsuario/system'.

    Una de las medidas adicionales a adoptar en entornos de producción es deshabilitar la presentación de informes de error de PHP y cualquier otra funcionalidad de sólo-desarrollo. En CodeIgniter, esto puede hacerse mediante el establecimiento de la constante ENVIRONMENT.

Eso es todo!

Ahora que ya tenemos un parorama completo y muy amplio del tema estamos tratando y también sabemos preparar el ambiente adecuado para nuestro desarrollo estaremos viendo ya algo de código en el siguiente artículo de la serie.

Comentarios
Texto

El SIG (Sistema de Información Geográfica) computarizado de hoy consisten en datos espaciales (o referencias geográficas) y software para:

  • Analizar, visualizar, administrar y difundir los datos espaciales.
  • Automatizar las actividades de flujo de trabajo.

Algunos ejemplos de datos con referencia geográfica incluir información sobre ríos, lagos, continentes, países, ciudades, y las residencias.

FUNDAMENTOS DE LOS DATOS ESPACIALES

Los datos vectoriales y raster son los dos formatos SIG comunes y ampliamente utilizados.

Vector de datos

Es útil en la representación de las características que tienen límites, tales como puntos de referencia, las carreteras, los países, los lagos y las cuencas hidrográficas. Los features son representados mediante tres formas básicas: puntos, líneas y polígonos. La figura 1 muestra un ejemplo de datos vectoriales. Los features tienen una ubicación geográfica y se almacenan como coordenadas. Latitud y longitud, u otro sistema de medición, se utilizan para localizar los features. Las coordenadas de ubicación también definen la forma característica. Una coordenada define un punto. Dos coordenadas definen una línea, y tres o más coordenadas definen un polígono. Por ejemplo, una empresa o marca se puede mostrar como un punto en un mapa (de coordenadas). Una calle se puede mostrar como una línea (dos coordenadas), una carretera se puede visualizar como una serie de líneas, y un país, lago, o de la cuenca se puede mostrar como un polígono en el mapa (tres o más coordenadas). Los features tienen cuatro propiedades: forma, la ubicación, el símbolo y los atributos. La ciudad de Asunción, por ejemplo, es un feature en un mapa del mundo. Debido a que en un mapa que representa una superficie tan grande, Asunción está representado por una forma simple punto, como una estrella, y está situado a una latitud específica y coordenadas de longitud. Asunción puede ser más indicada en el mapa mundial por atributos como el nombre y la población. Una capa es una colección de features similares. Features de una capa representan el mismo tipo de cosas, tales como carreteras, lagos, los países, las cuencas hidrográficas, y así sucesivamente.Los features de una capa tienen la misma forma y mismo conjunto de atributos. En la Figura 1, los clientes y las calles son ejemplos de las capas.

Datos raster

Es útil para representar datos continuos que no tiene formas bien definidas y límites. La vegetación y el terreno son sólo dos ejemplos de datos raster. Formato de mapa de bits utiliza células se disponen en filas y columnas para almacenar datos. Cada celda almacena un valor. Cada trama tiene un origen, que define un lugar en el mundo real. Cada celda de la trama tiene una posición única en relación con el origen. Uso de los atributos de la célula, tales como la posición, el tamaño y las coordenadas del origen, un SIG puede calcular la ubicación real de cada célula en un mapa. La figura 1 muestra un ejemplo de datos de la trama.

datos vectoriales

Figura 1. Datos vectoriales y raster (Fuente: ESRI)

Los datos del SIG se crean normalmente en uno de los dos principales sistemas de coordenadas: geográficas y proyectadas. Los sistemas de coordenadas geográficas se basan en la superficie de la Tierra, o su curvatura. Geográfica es un sistema de tres dimensiones (3D) de coordenadas, la unidad de medida es grados, que tengan un valor para la latitud y longitud. Sistemas de coordenadas proyectadas son planos 2D sistemas de coordenadas utilizado para crear mapas. Sistemas de coordenadas proyectadas convertir coordenadas geográficas a un plano 2D. Las unidades de medida para los sistemas proyectados son típicamente metros o pies. Los datos de SIG diferentes ocasiones será necesario la conversión a un sistema de coordenadas común (ya sea proyectada o geográfica). Por ejemplo, los datos geográficos del departamento Central pueden estar disponible sólo en un sistema de coordenadas geográficas, mientras que los datos de Amambay se encuentran en un sistema de coordenadas proyectadas. En este caso, una conversión a un formato común se requiere antes de los datos combinados pueden ser útiles.

PROPIEDADES DE UN SIG

Las cinco propiedades de un SIG son:

  • Visualización
  • El análisis espacial
  • Gestión de datos
  • Flujo de trabajo de gestión
  • Difusión de la información

Visualización

Imágenes de los datos por lo general aparecen en un mapa. Instalaciones, tales como operaciones simples, como el zoom, se proporcionan al usuario final. Funciones más complejas son también posibles, incluyendo la visualización 3D, modificando los datos mediante técnicas de pincel, y la visualización de los efectos en tiempo real.

El análisis espacial

Dado que los datos espaciales se almacenan en tablas de datos definidos, se pueden ejecutar consultas en los datos para el análisis y la toma de decisiones. Por ejemplo, la ubicación y el atributo son dos tipos de consultas que puede ejecutar con los datos de SIG. Usted puede utilizar el atributo consulta para encontrar las características que tienen ciertos valores. Por ejemplo:

  • ¿Qué carreteras en Gran Asunción tienen peajes?
  • ¿Cuáles son los nombres de los lagos en el departamento Central?

Consultas de ubicación se utilizan para encontrar lugares con características que cumplan ciertas condiciones por lo general relacionados con otras características. Por ejemplo:

  • ¿Qué departamentos del Paraguay no pasan por la Ruta 2?

  • ¿Cómo lagos hay en el departamento de Misiones?

  • ¿Cuántos departamentos colindantes hay con el departamento de Central?

  • ¿Cuántas ciudades están a 500 kilómetros de la ciudad de Asunción?

Gestión de datos

Los SIG utilizan procesos bien definidos sobre cómo se almacenan los datos, acceso y gestión. Estos procesos incluyen el mantenimiento de la integridad de los datos espaciales, el acceso multiusuario con capacidad de control de versiones, y la integración de datos espaciales con datos no espaciales para que sea útil para los usuarios.

Flujo de trabajo de gestión

La mayoría de los SIG contienen algún tipo de secuencia de operaciones en los diferentes usuarios o componentes del sistema. Por ejemplo, una empresa de gestión del agua podría obtener la ubicación de bocas de incendio de un nuevo gobierno de la ciudad. La empresa de gestión de agua y luego en formato de estos datos para su GIS. A continuación, aumenta los datos con información específica de sus productos o metodologías (a la edad de servicio de hidrantes, por último, y así sucesivamente). Esta misma información de ubicación también puede ser proporcionada al cuerpo de bomberos de la ciudad, o de otros departamentos de la obra civil, que se utilizarán en los procesos de decisión de la organización.

Difusión de la información

Los datos de SIG suelen difundirse a las interfaces de usuario basadas en Web, software de escritorio, o dispositivos de mano, dependiendo de las necesidades del usuario final. Los servicios Web también se proporcionan para dar cabida a las arquitecturas basadas en SOA.

Comentarios