Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de Frameworks
LARAVEL, YII 2, CODEIGNITER
Definición. ...................................................................................................................... 3
Características. .............................................................................................................. 4
Laravel. .............................................................................................................................. 5
Instalación ...................................................................................................................... 5
Documentación .............................................................................................................. 6
Configuración ................................................................................................................. 7
Yii 2 ................................................................................................................................. 11
Instalación. ................................................................................................................... 12
Documentación. ........................................................................................................... 13
Configuración. .............................................................................................................. 15
Funcionalidad. .............................................................................................................. 15
Helpers......................................................................................................................... 16
Instalación .................................................................................................................... 21
Documentación ............................................................................................................ 23
1
Implementación de software en terceros ...................................................................... 24
CSS ................................................................................................................................. 30
Sintaxis ........................................................................................................................ 32
Selectores................................................................................................................. 32
Bloque de declaraciones........................................................................................... 33
Uso ........................................................................................................................... 33
Fuentes .................................................................................................................... 35
Especificidad ............................................................................................................ 36
Herencia ................................................................................................................... 37
Espacios en blanco................................................................................................... 38
Posicionamiento ....................................................................................................... 38
Tamaño. .......................................................................................................................... 42
Velocidad. ........................................................................................................................ 42
Conclusiones. .................................................................................................................. 43
Yii 2. ............................................................................................................................. 43
Laravel. ........................................................................................................................ 43
CodeIgniter................................................................................................................... 43
2
Framework.
Definición.
El concepto framework se emplea en muchos ámbitos del desarrollo de sistemas software,
no solo en el ámbito de aplicaciones Web. Podemos encontrar frameworks para el
desarrollo de aplicaciones médicas, de visión por computador, para el desarrollo de juegos,
y para cualquier ámbito que pueda ocurrírsenos.
En general, con el término framework, nos estamos refiriendo a una estructura software
compuesta de componentes personalizables e intercambiables para el desarrollo de una
aplicación. En otras palabras, un framework se puede considerar como una aplicación
genérica incompleta y configurable a la que podemos añadirle las últimas piezas para
construir una aplicación concreta.
Los objetivos principales que persigue un framework son: acelerar el proceso de desarrollo,
reutilizar código ya existente y promover buenas prácticas de desarrollo como el uso de
patrones.
Un framework Web, por tanto, podemos definirlo como un conjunto de componentes (por
ejemplo, clases en java y descriptores y archivos de configuración en XML) que componen
un diseño reutilizable que facilita y agiliza el desarrollo de sistemas Web.
MVC.
El patrón Modelo-Vista-Controlador es una guía para el diseño de arquitecturas de
aplicaciones que ofrezcan una fuerte interactividad con usuarios. Este patrón organiza la
aplicación en tres modelos separados, el primero es un modelo que representa los datos
de la aplicación y sus reglas de negocio, el segundo es un conjunto de vistas que representa
los formularios de entrada y salida de información, el tercero es un conjunto de
controladores que procesa las peticiones de los usuarios y controla el flujo de ejecución del
sistema.
Model 2.
3
La mayoría, por no decir todos, de los framewroks para Web implementan este patrón. Una
aplicación de este patrón en entornos Java para programación Web es lo que se conoce
con el nombre de arquitectura model 2.
Esta arquitectura consiste, a grandes rasgos, en la utilización de servlets para procesar las
peticiones (controladores) y páginas JSP para mostrar la interfaz de usuario (vistas),
implementando la parte del modelo mediante JavaBeans o POJOs
Características.
Abstracción de URLs y No es necesario manipular directamente las URLs ni las
sesiones. sesiones, el framework ya se encarga de hacerlo.
Acceso de datos. Incluyen las herramientas e interfaces necesarias para
integrarse con herramientas de acceso a datos, en
BBDD, XML, etc..
Controladores. La mayoría de frameworks implementa una serie de
controladores para gestionar eventos, como una
introducción de datos mediante un formulario o el
acceso a una página. Estos controladores suelen ser
fácilmente adaptables a las necesidades de un proyecto
concreto.
Autentificación y control de Incluyen mecanismos para la identificación de usuarios
acceso. mediante login y password y permiten restringir el
acceso a determinas páginas a determinados usuarios.
4
Laravel.
Laravel es un framework de código abierto para desarrollar aplicaciones y servicios web
con PHP 5 y PHP 7. Su filosofía es desarrollar código PHP de forma elegante y simple,
evitando el "código espagueti". Fue creado en 2011 y tiene una gran influencia de
frameworks como Ruby on Rails, Sinatra y ASP.NET MVC.
Laravel tiene como objetivo ser un framework que permita el uso de una sintaxis elegante
y expresiva para crear código de forma sencilla y permitiendo multitud de funcionalidades.
Intenta aprovechar lo mejor de otros frameworks y aprovechar las características de las
últimas versiones de PHP.2
Gran parte de Laravel está formado por dependencias, especialmente de Symfony, esto
implica que el desarrollo de Laravel dependa también del desarrollo de sus dependencias.
Instalación
Antes de comenzar con la instalación de Laravel, es necesario instalar primero una
herramienta de gestión de dependencias llamada Composer. Esta herramienta se usa para
agregar al proyecto todas las librerías de terceros necesarias para que la aplicación
funcione correctamente. Composer proporciona un formato estándar para gestionar las
dependencias del software PHP y las bibliotecas requeridas.
Una vez instalado Composer, puede ser utilizado para instalar el framework de Laravel por
medio del siguiente comando:
Con este comando lo que se hace es mandar a llamar la herramienta Composer para
instalar el instalador de Laravel de manera global. Esto significa que se debe poder acceder
a él desde cualquier parte, ya que no es específico para algún proyecto en especial como
la mayoría de los paquetes; en lugar de eso puede ser utilizado de manera global.
5
Una vez instalado, el comando new de Laravel crea una nueva instalación de Laravel con
todas las dependencias de Laravel ya instaladas y listas para usarse. La sintaxis para crear
una aplicación nueva es la siguiente:
Documentación
La documentación que proporciona la página oficial del framework es muy escasa,
básicamente se trata de pequeños tutoriales para llevar a cabo la instalación y configuración
del framework. La instalación incluye tanto los requisitos previos como los pasos necesarios
para instalar Laravel; además, también incluye cómo iniciar el servidor de desarrollo local
que proporciona el framework para probar las aplicaciones.
Por el otro lado, la configuración está dividida de acuerdo a la estructura del framework,
como el directorio público, los ficheros de configuración, el manejo de permisos, la clave de
la aplicación y configuraciones adicionales, como el manejo de Bases de Datos. Por último,
la documentación también incluye la configuración del servidor, proporcionando dos
opciones que se adaptan a las diferentes necesidades de los desarrolladores.
6
Comparando la documentación de Laravel con la de CodeIgniter, es muy claro que la
documentación de Laravel deja mucho que desear. CodeIgniter proporciona un catálogo
muy amplio de ejemplos y tutoriales de las operaciones que se pueden realizar con el
framework. En la web se pueden encontrar tutoriales similares para Laravel, sin embargo,
son publicados por personas que desarrollan con el framework y van adquiriendo
experiencia por medio de la práctica. Sin embargo, esto no se puede tomar en cuenta como
documentación oficial.
Configuración
Existen diferentes configuraciones que se pueden hacer a Laravel dependiendo de las
características de la aplicación que se está desarrollando. Pero la configuración esencial se
encuentra contenida en la carpeta config. Cada opción se encuentra documentada, por lo
que es más que recomendable navegar entre los diferentes archivos y conocer las
diferentes opciones que ofrece el framework.
7
Otro aspecto importante es que, después de instalar Laravel, puede ser necesario
configurar algunos permisos. Los directorios dentro de storage y de bootstrap/cache
deberían tener permisos de escritura para el usuario del servidor web o Laravel no
funcionará. Si se utiliza la máquina virtual Homestead, estos permisos ya deben estar
configurados.
Una vez terminado con esto, ya se puede empezar a desarrollar la aplicación. A pesar de
que la configuración de Laravel no es tan pesada, sí se considera que es más fácil
configurar CodeIgniter.
Para crear una tabla se crea primero un archivo de migración, esto se logra con el siguiente
comando:
8
Este comando crea el modelo para una nueva tabla llamada alumnos. Este modelo se
almacena en la carpeta database->migrations y es una clase que hereda de la clase
Migration. En esta clase se definen los campos que va a contener la tabla. El archivo ya
trae por default dos métodos llamados dow y up. El dow se manda a llamar cuando se
ejecuta un rollback y el up es donde se definen los campos de la tabla especificando qué
tipo de datos se van a utilizar.
Para manipular una Base de Datos desde Laravel, además del archivo de Migración,
también se deben crear el modelo y el controlador, ya que Laravel es un framework que se
basa en el Modelo Vista Controlador (MVC). Los comandos para crear el modelo y el
controlador son los siguientes:
9
php artisan make:model Alumno
10
Yii 2
Yii es un framework de PHP de alto rendimiento, basado en componentes para desarrollar
aplicaciones web modernas en poco tiempo. El nombre Yii significa "simple y evolutivo" en
chino. También se puede considerar como el acrónimo de Yes It Is! (que en inglés significa
Sí, lo es).
Yii es un framework genérico de programación web, lo que significa que se puede utilizar
para desarrollar todo tipo de aplicaciones web en PHP. Debido a su arquitectura basada en
componentes y a su sofisticada compatibilidad de caché, es especialmente apropiado para
el desarrollo de aplicaciones de gran envergadura, como páginas web, foros, sistemas de
gestión de contenidos (CMS), proyectos de comercio electrónico, servicios web compatibles
con la arquitectura REST y muchos más.
Yii es un framework completo (full stack) que provee muchas características probadas y
listas para usar, como los constructores de consultas y la clase ActiveRecord para las bases
de datos relacionales y NoSQL, la compatibilidad con la arquitectura REST para desarrollar
API, la compatibilidad de caché en varios niveles y muchas más.
Yii no es un proyecto de una sola persona, detrás de Yii hay un sólido equipo de desarrollo,
así como una gran comunidad en la que numerosos profesionales contribuyen
constantemente a su desarrollo. El equipo de desarrollo de Yii se mantiene atento a las
últimas tendencias de desarrollo web, así como a las mejores prácticas y características de
otros frameworks y proyectos. Las buenas prácticas y características más relevantes de
otros proyectos se incorporan regularmente a la base del framework y se exponen a través
de interfaces simples y elegantes.
11
Instalación.
La instalación es relativamente fácil, debido a que cuenta con dos formas de instalación
diferentes, una es mediante la línea de comando usando la herramienta composer la cual
debe ser instalado con anterioridad a la instalación del framework, la otra alternativa que
ofrece es descargando el proyecto, la desventaja de esta es que se tienen que hacer
configuraciones adicionales las cuales aunque no son difíciles podrían ocasionar un fallo si
no se realizan correctamente, debido a esto se recomienda utilizar la primera opción que
es la instalación utilizando la herramienta de composer con línea de comando la cual realiza
las configuraciones por sí misma.
mv composer.phar /usr/local/bin/composer
El primer comando instala composer asset plugin, que permite administrar dependencias
de paquetes bower y npm a través de Composer. Sólo necesitas ejecutar este comando
una vez. El segundo comando instala Yii en un directorio llamado basic. Puedes elegir un
nombre de directorio diferente si así lo deseas.
12
La instalación es estable gracias a que los proyectos están alojados en el que se considera
el mejor servicio que existe en la actualidad para proyectos de tipo OpenSource avalado
por los mismos usuarios que lo utilizan diariamente, cabe recalcar que los usuarios son
incluso empresas de talla mundial como los son Google, por lo tanto, el servicio ofrecido
por GitHub en cuanto a los servidores donde están alojados los proyectos es de la mas alta
calidad debido a la gran cantidad de demanda.
El framework cuenta con dos tipos de proyectos, proyecto básico y avanzado, la instalación
es exactamente igual.
Documentación.
La documentación que ofrece Yii es bastante completa ya que cuenta con una guía en su
página web propia específicamente para el framework en la cual ofrece todas las
herramientas necesarias para iniciarte como desarrollador de Yii, incluyendo todo tipo de
manuales desde la forma de instalarlo, hasta la configuración y utilización de componentes
mas complejos como el uso de Ajax.
Cuanta incluso con una guía completa para desarrollar proyectos paso a paso desde cero.
Otra ventaja de la documentación que ofrece yii es que tiene soporte multi idioma.
13
Gracias a que esta alojada en GitHub, la comunicación entre usuarios y los desarrolladores
de framework es bastante dinámica, lo que permite que los errores habituales estén
documentados dentro de la plataforma y permite que nuevos usuarios encuentren la
solución a sus errores sin tener que contactar directamente a los desarrolladores.
Para desarrolladores más avanzados también es una gran ventaja que se encuentra aquí
gracias a que se puede reportar errores nuevos que surgen día a día e incluso dar ellos
mismos las soluciones y crear mejoras en el framework y mandarla a los desarrolladores
para que las aprueben y las incluyan en el código.
14
Configuración.
Después de haber instalado Yii, tienes una aplicación totalmente funcional a la que se
puede acceder a través de la URL http://hostname/basic/web/index.php o
http://hostname/index.php, dependiendo de tu configuración. Esta sección será una
introducción a la funcionalidad incluida de la aplicación, cómo se organiza el código, y cómo
la aplicación maneja los requests en general.
Proyecto básico:
Mediante la instalación con la herramienta composer no es necesario realizar
configuraciones adicionales. La única configuración que se debe realizar es para que
funciones con conexión a base de datos y solo es colocar el nombre de la BD en un archivo.
Proyecto avanzado:
En el proyecto avanzado se debe realizar dos pasos adicionales.
Paso 2. Crear una BD y conectarla al proyecto en Yii para realizar la migración de la tabla
usuarios que ya tiene incluida el proyecto.
El framework cuenta con soporte para varios gestores de BD, puedes elegir entre una base
de datos SQLite, MySQL, PostgreSQL, MSSQL u Oracle, dado que Yii incluye soporte para
varios motores.
Funcionalidad.
La aplicación básica contiene 4 páginas:
15
La página "Login", que muestra un formulario para loguearse que puede usarse para
autenticar usuarios. Intenta loguearte con "admin/admin", y verás que el elemento
"Login" del menú principal cambiará a "Logout".
Estas páginas comparten un encabezado y un pie. El encabezado contiene una barra con
el menú principal que permite la navegación entre las diferentes páginas.
También deberías ver una barra en la parte inferior de la ventana del navegador. Esta es la
útil herramienta de depuración provista por Yii para registrar y mostrar mucha información
de depuración, tal como los mensajes de log, response status, las consultas ejecutadas a
la base de datos, y más.
Helpers.
Yii ofrece muchas clases que ayudan a simplificar las tareas comunes de codificación, como
manipulación de string o array, generación de código HTML, y más. Estas clases helper
están organizadas bajo el namespace yii\helpers y son todo clases estáticas (lo que
significa que sólo contienen propiedades y métodos estáticos y no deben ser instanciadas).
Puedes usar una clase helper directamente llamando a uno de sus métodos estáticos, como
a continuación:
use yii\helpers\Html;
Motores de plantillas.
Por defecto, Yii utiliza PHP como su lenguaje de plantilla, pero puedes configurar Yii para
que soporte otros motores de renderizado, tal como Twig o Smarty, disponibles como
extensiones.
16
'components' => [
'view' => [
'renderers' => [
'tpl' => [
'class' =>
'yii\smarty\ViewRenderer',
//'cachePath' =>
'@runtime/Smarty/cache',
],
'twig' => [
'class' =>
'yii\twig\ViewRenderer',
'cachePath' =>
'@runtime/Twig/cache',
// Array de opciones de
Twig:
'options' => [
],
'uses' =>
['yii\bootstrap'],
],
// ...
],
],
],
17
]
En el código de arriba, tanto Smarty como Twig son configurados para ser utilizables por
los archivos de vista. Pero para tener ambas extensiones en tu proyecto, también necesitas
modificar tu archivo composer.json para incluirlos:
"yiisoft/yii2-smarty": "~2.0.0",
"yiisoft/yii2-twig": "~2.0.0",
Ese código será agregado a la sección require de composer.json. Después de realizar ese
cambio y guardar el archivo, puedes instalar estas extensiones ejecutando composer
update --prefer-dist en la línea de comandos.
18
Code Igniter
CodeIgniter es un Marco de desarrollo de aplicaciones, un kit de herramientas, para las
personas que crean sitios web con PHP. Su objetivo es permitirle desarrollar proyectos
mucho más rápido de lo que podría si estuviera escribiendo código desde cero, al
proporcionar un amplio conjunto de bibliotecas para las tareas más comunes, así como una
interfaz simple y una estructura lógica para acceder a estas bibliotecas. CodeIgniter te
permite enfocarte creativamente en tu proyecto al minimizar la cantidad de código necesario
para una tarea determinada.
Ventajas de CodeIgniter
Las páginas se procesan más rápido, el núcleo de CodeIgniter es bastante ligero.
Es sencillo de instalar, basta con subir los archivos al ftp y tocar un archivo de
configuración para definir el acceso a la base de datos.
Existe abundante documentación en la red.
Facilidad de edición del código ya creado.
Facilidad para crear nuevos módulos, páginas o funcionalidades.
Estandarización del código
Separación de la lógica y arquitectura de la web, el MVC.
Cualquier servidor que soporte PHP+MySQL sirve para CodeIgniter.
CodeIgniter se encuentra bajo una licencia open source, es código libre.
19
Comparado con otros frameworks.
Es bastante menos rígido que otros frameworks. Define una manera de trabajar específica,
pero en muchos de los casos podemos seguirla o no y sus reglas de codificación muchas
veces nos las podemos saltar para trabajar como más a gusto encontremos.
20
Instalación
21
3.- Configura la URL base de tu aplicación web
Necesitas decirle a CodeIgniter la URL base de tu aplicación, es decir, la URL para acceder
a la raíz de CodeIgniter, según en el servidor y directorio donde lo has colocado, es decir,
donde has subido el código del framework. Para ello tienes que abrir el archivo de
configuración, que se encuentra en system/application/config/config.php, con cualquier
editor de texto y cambiar la variable de configuración llamada que se guarda en
$config['base_url'].
Si hemos instalado en local CodeIgniter pondremos http://localhost/ y si además lo
colocamos en un directorio específico podría ser algo como
http://localhost/directorio_codeigniter
Según nos indican en el manual de instalación, aparte de este dato podemos opcionalmente
escribir una llave de encriptación en la variable $config['encryption_key'], que servirá si
deseamos usar la clase de encriptado que proporciona CodeIgniter o queremos que
nuestras variables de sesión estén encriptadas, algo que hace el framework de manera
transparente para nosotros.
22
Documentación
Dentro del portal de Code igniter se ofrece una amplia variedad de documentación, desde
que es dicho framework, hasta lo mas complejo para llevar a cabo proyectos mas complejos
23
Implementación de software en terceros
Es posible agregar dos softwares esenciales JQuery y Bootstrap, asi como también
tenemos la oportunidad de usar Css.
El framework puede ser capaz de soportar plataformas como MySQL, PHPMyAdmin entre
otros.
CRUD es una aplicación que está encargada de crear, leer, actualizar y eliminar registros
en una base de datos, y de ahí CRUD (por sus siglas en Inglés).
24
Para poder llevar a cabo un CRUD, tenemos que entrar a nuestra plataforma de base de
datos, en este caso PHPMyAdmin y procederemos a crear una base de datos, le ponemos
su nombre y le agregamos ciertos campos (tablas).
Para que estas herramientas puedan funcionar de manera exitosa hay que hacer unas
configuraciones en algunos archivos:
Esta configuración sirve para indicarle que la URL de nuestra aplicación estará ubicada en
http://localhost/crud/.
Ahora que ya se conecto la base de datos a nuestra aplicación, se tiene que definir una ruta
principal, entrando a la siguiente ruta /crud/application/config/routes.php, cambiando lo
siguiente
25
1 $route['default_controller'] = "productos";
Una vez realizadas estas configuraciones, tenemos que descargar grocery CRUD
26
Necesitamos crear un archivo nuevo y llamarlo productos.php dentro de la
carpeta /crud/application/controllers/ y agregamos el siguiente código…
27
En la carpeta /crud/aplications/views/ creamos una carpeta llamada productos
y allí creamos un archivo llamado administracion.php, la ruta final
será /crud/aplications/views/productos/administracion.php y finalmente volvemos a
introducir el siguiente código…
Ahora que ya se tiene las configuraciones necesarias, códigos, carpetas, rutas y todo lo
demás, ya podremos visualizar una aplicación web acerca de un manejo de inventario.
28
29
CSS
¿Qué es CSS?
Las siglas CSS (Cascading Style Sheets) significan «Hojas de estilo en cascada» y parten
de un concepto simple pero muy potente: aplicar estilos (colores, formas, márgenes, etc...)
a uno o varios documentos (generalmente documentos HTML, páginas webs) de forma
masiva.
30
Ventajas y desventajas de CSS
Al igual que en cualquier framewrok, también tiene ciertas devesntajas, que son estas:
31
Sintaxis
CSS tiene una sintaxis simple y usa un conjunto de palabras clave en inglés para especificar
los nombres de varias propiedades de estilo. Una hoja de estilos consiste en una serie de
reglas. Cada regla, o conjunto de reglas consisten en uno o más selectores, y un bloque de
declaración.
Selectores
Los selectores declaran qué etiquetas se le aplican los estilos que coincidan con la etiqueta
o atributo señalados en la regla.
Las clases y los identificadores son sensibles a las mayúsculas, comienzan con letras, y
pueden incluir caracteres alfanuméricos y guiones bajos. Una clase se aplica a cualquier
número de elementos. Un identificador se aplica un solo elemento.
Las pseudoclases son usadas en los selectores CSS para permitir el formateo usando
información que no está incluida en el documento. Un ejemplo de una pseudoclase muy
usada es: hover, que identifica el contenido que está siendo apuntado por un puntero, como
el cursor del ratón. Este nombre se añade al selector, de esta manera: a:
hover o #elementid:hover. Una pseudoclase clasifica elementos, como: link o :visited,
mientras que un pseudoelemento hace una selección de elementos parciales, como ::first-
line o ::first-letter.
Los selectores pueden ser combinados de muchas maneras para obtener una mayor
flexibilidad y precisión. Múltiples selectores pueden ser unidos en una misma línea para
especificar elementos por su ubicación, tipo de elemento, identificador, clase, o cualquier
combinación de estos. El orden de los selectores es importante. Por ejemplo, div.myClass
32
{color: red;} aplica a todos los elementos <div> con la clase myClass, mientras que.myClass
div {color: red;} aplica a todos los elementos <div>que estén dentro de cualquier elemento
con la clase myClass.
Bloque de declaraciones
Las propiedades son insertadas en el estándar CSS. Cada propiedad tiene un conjunto de
posibles valores. Algunas propiedades afectan a cualquier elemento, otras solo a un grupo
particular de elementos. Los valores pueden ser palabras clave, como "center" o "inherit",
o valores numéricos, como 200px (200 píxeles) o 80% (80 por ciento del ancho de la
ventana). Los valores de colores son especificados por medio de una palabra clave (ej.
"red"), de valores hexadecimales (ej. #FF0000, pudiéndose abreviar como #F00), valores
RGB en una escala del 0 al 255 (ej. rgb(255, 0, 0)), valores RGBA igual que los valores
RGB pero con soporte para el canal alfa de transparencias (ej. rgba(255, 0, 0, 0.8)), y
valores HSL o HSLA (ej. hsl(000, 100%, 50%), hsla(000, 100%, 50%, 80%)).
Uso
Antes del desarrollo de CSS, toda la información presentacional de los documentos HTML era
incluida en el código HTML. Los colores de las fuentes, los estilos de fondo, la alineación de
los elementos, los bordes y tamaños eran descritos explícitamente, a veces de manera
redundante, dentro del HTML. CSS permite a los diseñadores mover toda la información
presentacional a otro archivo, la hoja de estilos, resultando en un código HTML notablemente
más simple.
Por ejemplo, las cabeceras (h1), sub-cabeceras (h2), sub-sub-cabeceras (h3), etc., son
definidas estructuralmente usando HTML. En la impresión y las pantallas, la elección de la
fuente, tamaño, color y énfasis para esos elementos es presentacional.
33
Antes de CSS, los diseñadores que deseaban asignar características tipográficas, por
ejemplo, a todos los elementos h2 tenían que repetir el código presentacional HTML por cada
elemento al que se le deseaba aplicar ese estilo. Esto creaba documentos más complejos,
largos, más propensos a errores y difíciles de mantener. CSS permite la separación entre la
presentación y la estructura. CSS puede definir el color, fuente, alineación del texto, tamaño,
bordes, espaciado, capas y muchas otras características tipográficas, y pueden aplicarse
distintos estilos de impresión y de pantalla. CSS también define estilos no visuales, como la
velocidad de lectura y énfasis en los lectores de textos aurales. El W3C ha declarado obsoleto
el uso de las etiquetas presentacionales HTML.
Usando CSS, el mismo elemento puede escribirse usando propiedades de estilo inline en vez
de atributos y etiquetas de presentación:
Una hoja de estilos CSS externa, descrita abajo, puede enlazarse con un documento HTML
usando la sintaxis siguiente:
El código CSS se puede incluir en el código HTML en la etiqueta <style> dentro de la etiqueta
<head> del documento:
<style>
h1 {color: red}
</style>
34
Fuentes
Los estilos CSS puede ser provistos desde varias fuentes. Esas fuentes pueden ser el
navegador web, el usuario y el diseñador. La información del diseñador puede ser
clasificada de las siguientes formas: inline, media type, importancia, especificidad del
selector, orden de reglas, herencia y definición de propiedades. La información de los estilos
CSS puede estar en un documento separado o puede estar embebido dentro de un
documento HTML. Múltiples hojas de estilos pueden ser importadas al mismo tiempo. Los
diferentes estilos pueden ser aplicados dependiendo de la salida del dispositivo usado en
ese momento; por ejemplo, la versión para monitores puede ser diferente de la versión
impresa, así que los diseñadores pueden aplicar diferentes estilos dependiendo del
dispositivo usado.
La hoja de estilos con la máxima prioridad controla la visualización del contenido. Las
declaraciones no establecidas en la fuente con máxima prioridad son sobreeescritas, como
las hojas de estilos del agente de usuario. Este proceso es llamado cascading, o cascada.
Una de las metas de CSS es permitir a los usuarios un mayor control sobre la presentación.
Algunas personas que encuentran a los encabezados rojos en itálicas difíciles de leer
pueden aplicar una hoja de estilos diferente. Dependiendo del navegador y del sitio web,
un usuario puede escoger entre varias hojas de estilo provistas por los diseñadores, o
pueden remover todas las hojas de estilos añadidas y ver el sitio usando los estilos por
defecto del navegador, o pueden sobreescribir solo el estilo de los encabezados rojos en
itálica sin alterar otros atributos.
35
Especificidad
La especificidad se refiere a los pesos relativos de varias reglas. Determina que estilos se
aplican a un elemento cuando más de una regla intentan aplicar estilos a ella. Basándose
en la especificación, un simple selector (h1, por ejemplo) tiene una especificidad de 1, los
selectores de clase tienen una especificidad de 1,0, y los selectores de id una especificidad
de 1,0,0. Porque los valores de especificidad no se acarrean como en el sistema decimal,
las comas son usadas para separar los "dígitos" (una regla CSS que tiene 11 elementos y
11 clases tiene una especificidad de 11,11, no 121).
Por lo tanto, los siguientes selectores de reglas dan como resultado la especificidad
indicada:
36
Herencia
La herencia previene que algunas propiedades sean declaradas una y otra vez en la hoja
de estilos, permitiendo a los diseñadores escribir menos código CSS. Mejora la carga rápida
de los sitios por los usuarios, y permite a los clientes ahorrar dinero en los costos de
desarrollo y ancho de banda.
h1 {
color: pink;
<h1>
</h1>
Si no se asigna un color al elemento em, la palabra «ilustrar» heredará el color del elemento
padre, h1. Entonces, la palabra «ilustrar» aparecerá de color rosa.
37
Espacios en blanco
Los espacios en blanco entre propiedades y selectores se ignoran. Este pedazo de código:
body{overflow:hidden;background:#000000;}
body {
overflow: hidden;
background: #000000;
Posicionamiento
Normal
Los elementos inline, o de línea, son dispuestos de la misma manera que las letras en las
palabras de un texto, una vez que ya no hay más espacio en una línea, entonces se
empieza una nueva línea abajo. Los elementos block, o de bloque, son dispuestos
verticalmente, como los párrafos.
Flotante
Un elemento float está fuera del flujo normal y puesto lo más posible a la derecha o
izquierda en el espacio disponible. Los demás elementos fluyen alrededor del elemento
float.
Absoluto
38
Propiedades de posicionamiento
Hay 4 posibles valores para la propiedad position. Si un elemento está posicionado de una
manera diferente a static, hay cuatro subpropiedades usadas para especificar posiciones y
offsets: top, bottom, left y right.8
Static
Relative
Absolute
Fixed
Float y clear
left
Los elementos float flotan a la izquierda y los otros elementos fluyen a la derecha de este
elemento.
right
Los elementos float flotan a la derecha y los otros elementos fluyen a la izquierda de este
elemento.
clear
39
Forza al elemento a no fluir alrededor de los elementos que flotan a la izquierda (clear: left),
a la derecha (clear: right) o a ambos lados (clear: both).
40
Curva de aprendizaje.
La siguiente grafica demuestra un aproximado de las horas de estudio invertidas para poder
instalar y comprender el funcionamiento del framework dependiendo de su dificultad.
Horas
30
25
20
15
10
0
Laravel Yii 2 CodeIgniter
Productividad
120%
100%
80%
60%
40%
20%
0%
Laravel Yii 2 CodeIgniter
41
Tamaño.
La siguiente grafica muestra un estándar del tamaño de las aplicaciones realizadas en
distintos frameworks. Se podría suponer que entre menos líneas de código requiere el
framework es más fácil de aprender.
Tamaño
200
180
160
140
120
100
80
60
40
20
0
Laravel Yii 2 CodeIgniter
Velocidad.
En la siguiente grafica se muestra una comparación de los frameworks con respecto a la
velocidad de ejecución de una aplicación web desarrollado con cada framework.
Velocidad
800
700
600
500
400
300
200
100
0
Laravel Yii 2 CodeIgniter
42
Conclusiones.
Yii 2.
En conclusión, podemos decir que yii es un framework que sobre sale sobre otros por las
funcionalidades que este ofrece, su amplio catálogo en documentación y herramientas
funcionales.
Yii es un framework que ha ido creciendo con el tiempo gracias a la aceptación por parte
de los usuarios y la participación de los usuarios activos en grandes plataformas como lo
es GitHub.
Laravel.
Una de sus mejores ventajas es que no necesita muchos requerimientos ni son tan
especiales los que necesita, en la web se puede encontrar mucha y muy bien estructurada
documentación del mismo y su comunidad es enorme y muy activa, por lo que siempre hay
foros donde se podrá consultar y pedir ayuda o recomendaciones con la seguridad de que
alguien podrá apoyarte.
CodeIgniter.
Con su diseño compacto y sintaxis amigable para los principiantes, Codelgniter resulta
apropiado para quienes aspiren a convertirse en programadores. Ahora bien, quienes ya
hayan dado sus primeros pasos en el desarrollo web dinámico basado en PHP, también se
familiarizarán rápidamente con este ligero framework. Incluso los desarrolladores
experimentados se toparán con una gran flexibilidad, garantizada principalmente gracias a
la práctica funcionalidad reducida de este framework PHP. Sin embargo, quien quiera
trabajar con Codelgniter deberá acostumbrarse al patrón MVC, así como prescindir de un
43
motor de plantillas y de un ORM nativo. A pesar del reducido tamaño de su código,
Codelgniter es una solución ideal para pequeños y grandes proyectos web por igual.
CSS
CSS es una buena herramienta para aplicarse en lo que a desarrollo de aplicaciones web
se refiere. Actualmente lo que el cliente busca es un uso eficaz y amigable al hacer uso de
una pagina o aplicación web, por lo cual, si se logra la exitosa mezcla entre el framework y
las herramientas, lograremos el objetivo y el cliente tendrá lo que quiere.
CSS combinado con con las reglas de diseño, puede ser de gran ayuda para representar,
de una manera eficaz, la promoción de paginas web.
44