lunes, 10 de marzo de 2014

Estándares Web , Validación De Aplicaciones y Páginas Web

Qué son los Estándares Web

Un estándar es un conjunto de reglas normalizadas que describen los requisitos que deben ser cumplidos por un producto, proceso o servicio, con el objetivo de establecer un mecanismo base para permitir que distintos elementos hardware o software que lo utilicen, sean compatibles entre sí.
El W3C, organización independiente y neutral, desarrolla estándares relacionados con la Web también conocidos como Recomendaciones, que sirven como referencia para construir una Web accesible, interoperable y eficiente, en la que se puedan desarrollar aplicaciones cada vez más robustas.
En la creación de las Recomendaciones del W3C participan sus Miembros (más de 400 organizaciones, distribuidas a lo largo de todo el mundo y de diversos ámbitos: grandes empresas de hardware o software, centros investigadores, universidades, administraciones públicas, etc.), el Equipo del W3C, expertos invitados, y cualquier usuario de la Web que quiera mostrar su opinión. Todos ellos trabajan conjuntamente a través de un proceso basado en el consenso, la neutralidad y la transparencia de la información.

   Funcionan

La creación de un estándar Web requiere un proceso controlado, que consta de varias etapas que aseguran la calidad de la especificación. Este proceso permite la intervención de todos los usuarios de las tecnologías, con el objetivo de que puedan aportar su conocimiento y opiniones para la mejora de los documentos.
Tras este proceso, elaborado por especialistas en la materia, se obtienen unos estándares de calidad, y al estar disponible para todo el mundo, las especificaciones se depuran exhaustivamente antes de ser consideradas como Recomendación.
Estos estándares, están sujetos a la Política de Patentes del W3C, lo que permite que sean utilizados libremente por toda la comunidad Web. 
Generalmente, lo que el término “Estándares Web” abarca incluye las siguientes áreas:

  •        Código HTML/XHTML válido
  •        Código semánticamente correcto.
  •        Separación del contenido (HTML/XHTML), presentación (CSS) e interacción                    (JavaScript).

Código HTML/XHTML válido.


Aunque para la mayor parte de las personas esto sólo se refiere al código HTML/XHTML, hay también instrumentos para validar el código CSS. Básicamente, validar el HTML/XHTML consiste en verificar que el código de la página web esté escrito de acuerdo a las definiciones dadas por el doctype que se ha elegido para el documento
.
Es muy importante elegir el doctype con cuidado, porque va a afectar la manera en que el código HTML/XHTML es interpretado y qué modo de layout va a ser activado en los distintos navegadores web. Teniendo código válido, no va a tener que apoyarse en los mecanismos de manejo de error que varían en cada navegador web, sino que el código se supone va a ser renderizado de la misma manera por todos.

Herramientas para validar código

Hay numerosos instrumentos de validación en línea, así como complementos para varios navegadores web. Los más populares:


Código Semánticamente Correcto

Algo que a menudo es pasado por alto, es el significado del código semánticamente correcto. La idea es que cada contenido en una página Web debería estar marcado con una etiqueta que comunique su sentido, su valor y objetivo. La explicación de esto es que se deben usar elementos apropiados según el contexto.

Ejemplos de código

Este código es pobre semánticamente

<div class="page-heading">Titulo de la pagina</div>
<div class="text-paragraph">Algo de texto explicando de qué se trata este sitio.</div>
<a class="menu-item" href="/item-1">Menu item 1</a> <a class="menu-item" href="/item-2">Menu item 2</a> <a class="menu-item" href="/item-3">Menu item 3</a>


Este código es rico semánticamente

<h1>Titulo de la pagina</h1>
Algo de texto explicando de que se trata este sitio< /p>
<ul class="menu">
        <li><a href="/item-1">Menu item 1</a></li>
        <li><a href="/item-2">Menu item 2</a></li>
        <li><a href="/item-3">Menu item 3</a></li>
</ul>
 
Las pautas y las recomendaciones para escribir código semántico correctamente son bastante fáciles de seguir.  Simplente usar etiquetas de encabezado (h1-h6) para los diferentes tipos de títulos, etiquetas de párrafo (p) para párrafos de textos, etiquetas de listas (ul, ol, li, etc.) para cualquier clase de listado de tenga, y así sucesivamente.

Esto además le ayudará a identificar con más facilidad las partes de una página Web, y va a disminuir el tiempo de carga del documento porque estará utilizando menos código. Al mismo tiempo simplificará notablemente el mantenimiento de su sitio. Y, no hay que olvidarse de algo muy importante: esto le también ayudará con el SEO (optimización para motores de búsqueda), porque el código semántico ayudará a Google y otros motores de búsqueda a entender correctamente e indexar cada trozo del código, maximizando los resultados.

Separación de contenido (HTML/XHTML), presentación (CSS) e interacción (JavaScript)


Hay varios motivos que fundamentan por qué es vital separar el HTML/XHTML, el CSS y el código JavaScript. Estos tipos de código tienen objetivos muy diferentes, y cómo usarlos debe ser pensado con cuidado.

Razones principales para la separación:

Velocidad: los archivos externos .css y .js se guardan en el caché del navegador del usuario después de la primera carga, esto disminuye los tiempos de carga y mejorará la experiencia de uso.
Claridad: es más fácil saber donde buscar y colocar el código, cada parte cumple su propio objetivo.
Reusabilidad: puede fácilmente comentar y referenciar el codigo. Y reutilizarlo en todo el sitio.
Mantenimiento: El código HTML o XHTML está en una ubicación central, y se desprende el código de presentación (css) e interaccion (js) en archivos externos. Siendo muy fácil aplicarlos a todas las páginas del sitio.

Glosario

Dato: información que se puede y ser manipulada para llenar un campo de información

Información. Conjunto de datos organizados que  se refieren a un tema definido o en específico.


Sistema: partes, elementos organizados y relacionados que interactúan entre sí para lograr un objetivo por medio de un software


Sistema de información: medio que se utiliza para transmitir y organizar la información para luego  pasar ser pasada  de un lugar a otro por en el momento adecuado 


Medios para transmitir información: la tecnología es una herramienta más efectiva para transmitir información   







Clase: Es una construcción que se utiliza como un modelo para crear objetos de ese tipo. El modelo describe el estado y contiene el comportamiento que todos los objetos creados a partir de esa clase tendrán.


Programación orientada a Objetos.: usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos  Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción polimorfismo , acoplamiento y encapsulamiento


Lenguaje de programación: es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar

Base de datos: Es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.





Objeto: Los objetos del mundo real comparten dos características: Todos tienen estado y comportamiento. Los perros tienen estado (nombre, color, raza, hambriento) y comportamiento (ladrando, buscando, meneando la cola). Las bicicletas también tienen un estado (marcha actual, cadencia de pedaleo actual, velocidad actual) y comportamiento (cambio de marcha, cambio de cadencia de pedaleo, frenar). Identificar el estado y el comportamiento de los objetos del mundo real es una gran ayuda para empezar a pensar en términos de programación orientada a objetos.

ESTRUCTURA DE UN OBJETO

Un objeto puede considerarse como una especie de cápsula dividida en tres partes:

1 – RELACIONES: Permiten que el objeto se inserte en la organización y están formadas esencialmente por punteros a otros objetos.

2 – PROPIEDADES: Distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.

3 – METODOS: Son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia.

Clase: Las clases son abstracciones que representan a un conjunto de objetos con un comportamiento e interfaz común. Podemos definir una clase como "un conjunto de cosas (físicas o abstractas) que tienen el mismo comportamiento y características.
Las clases presentan el estado de los objetos a los que representan mediante variables denominadas atributos. Cuando se instancia un objeto el compilador crea en la memoria dinámica un espacio para tantas variables como atributos tenga la clase a la que pertenece el objeto.
Los métodos son las funciones mediante las que las clases representan el comportamiento de los objetos. En dichos métodos se modifican los valores de los atributos del objeto, y representan las capacidades del objeto.

Programación orientada a objetos: Es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsula
miento. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.
El término de Programación orientada a objetos indica más una forma de diseño y una metodología de desarrollo de software que un lenguaje de programación, ya que en realidad se puede aplicar el Diseño Orientado a Objetos a cualquier tipo de lenguaje de programación.
La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.

Framework: O infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto.
.NET Framework es una tecnología que admite la compilación y la ejecución de la siguiente generación de aplicaciones y servicios Web XML. El diseño de .NET Framework está enfocado a cumplir los objetivos siguientes:
  • Proporcionar un entorno coherente de programación orientada a objetos, en el que el código de los objetos se pueda almacenar y ejecutar de forma local.
  • Proporcionar un entorno de ejecución de código que minimiza los conflictos en el despliegue y versionado de software.
  • Ofrecer un entorno de ejecución de código que promueva la ejecución segura del mismo.
  • Proporcionar un entorno de ejecución de código que elimine los problemas de rendimiento de los entornos en los que se utilizan scripts o intérpretes de comandos.
  • Ofrecer al programador una experiencia coherente entre tipos de aplicaciones muy diferentes, como las basadas en Windows o en el Web.
Cliente: se utiliza para hacer referencia a las personas o entidades que hacen usufructo de los recursos o servicios que brinda otra. El origen de la aplicación de este término debe buscarse en la antigua Roma, siendo el individuo económicamente inferior, quien se ponía al servicio de uno de mayor rango en una relación, que no estaba regulada y que otorgaba, al de mayor rango, un importante prestigio social. Esta definición resulta la esencia del término, que sin embargo se va desmembrando y reinventando de acuerdo con el ámbito que lo utilice. Son muchos los campos que toman el término y lo aplican en su contexto, pero siempre sobre la base de ser una persona u organización que, voluntariamente, recibe algo a cambio de otra cosa que entrega.

Un servicio: es un conjunto de actividades que buscan para responder a las necesidades de un cliente. Los servicios incluyen una diversidad de actividades desempeñadas por un crecido número de funcionarios que trabajan para el estado (servicios públicos) o para empresas particulares (servicios privados); entre estos pueden señalarse los servicios de: electricidad, agua potable, aseo, teléfono, telégrafo, correo transporte, educación, cibercafés, sanidad y asistencia social. Se define un marco en donde las actividades se desarrollarán con la idea de fijar una expectativa en el resultado de éstas. Es el equivalente no material de un bien. Un servicio se diferencia de un bien (físico o intangible) en que el primero se consume y se desgasta de manera brutal puesto que la economía social nada tiene que ver con la política moderna; es muy importante señalar que la economía nacional no existe siempre en el momento en que es prestado.



Producto es todo bien susceptible de ser comercializado y que reúne una serie de características tangibles e intangibles que permiten, por una parte, que una empresa lo ponga en circulación en el mercado obteniendo un beneficio a través de sus ventas; y por otra que una persona, el cliente, se haga con él a cambio del pago de un precio justo, para tratar de satisfacer sus deseos y/o necesidades, que le impulsaron a tomar la decisión de elegirlo frente al resto de la oferta.

El producto es un factor estratégico para la empresa sobre el que deberá tomar decisiones tales como el precio, la marca, el envase o el diseño (aspectos formales del producto) y también sobre lo concerniente a la imagen, la garantía, el servicio ,  las formas de pago aceptadas, etc.

Tipos de productos

         Producto genérico: es la versión más básica de un bien de consumo.

           Producto diferenciado: es aquél que se aleja de la homogeneidad de los de su misma            especie, ya sea por sus atributos tangibles o por otro tipo de cualidades que son                        percibidas por el cliente.

            Producto customizado: aquél en el que los gustos del cliente son tenidos en cuenta a             la hora de la fabricación y desarrollo del mismo.

              Prototipo: producto mejorado o de nueva creación que pretende anticipar las                             necesidades y deseos de los consumidores a los que se dirige.

Aplicación web

 Son aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador.

Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, a la independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails, wikis, weblogs, tiendas en línea y la propia Wikipedia que son ejemplos bien conocidos de aplicaciones web.

Estructura de las aplicaciones web

Aunque existen muchas variaciones posibles, una aplicación web está normalmente estructurada como una aplicación de tres-capas. En su forma más común, el navegador web ofrece la primera capa, y un motor capaz de usar alguna tecnología web dinámica, por ejemplo: PHP, Java Servlets o ASP, ASP.NET, CGI, ColdFusion, embPerl, Python o Ruby on Rails que constituye la capa intermedia. Por último, una base de datos constituye la tercera y última capa.

El navegador web manda peticiones a la capa intermedia que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario.



Página web : es un documento o información electrónica capaz de contener texto, sonido, vídeo, programas, enlaces, imágenes, y muchas otras cosas, adaptada para la llamada World Wide Web, y que puede ser accedida mediante un navegador. Esta información se encuentra generalmente en formato HTML o XHTML, y puede proporcionar navegación (acceso) a otras páginas web mediante enlaces de hipertexto. Las páginas web frecuentemente también incluyen otros recursos como ser hojas de estilo en cascada, guiones (scripts), imágenes digitales, entre otros.

Las páginas web pueden estar almacenadas en un equipo local o un servidor web remoto. El servidor web puede restringir el acceso únicamente a redes privadas, por ejemplo, en una intranet corporativa, o puede publicar las páginas en la World Wide Web. El acceso a las páginas web es realizado mediante una transferencia desde servidores, utilizando el protocolo de transferencia de hipertexto (HTTP).

Características

Una página web está compuesta principalmente por información (sólo texto y/o módulos multimedia) así como por hiperenlaces; además puede contener o asociar hoja de estilo, datos de estilo para especificar cómo debe visualizarse, y también aplicaciones embebidas para así permitir interactivad.

Las páginas web son escritas en un lenguaje de marcado que provee la capacidad de manejar e insertar hiperenlaces, generalmente HTML.

El contenido de la página puede ser predeterminado (página web estática) o generado al momento de visualizarla o solicitarla a un servidor web (página web dinámica). Las páginas dinámicas que se generan al momento de la visualización, se especifican a través de algún lenguaje interpretado, generalmente JavaScript, y la aplicación encargada de visualizar el contenido es la que realmente debe generarlo. Las páginas dinámicas que se generan, al ser solicitadas, son creadas por una aplicación en el servidor web que alberga las mismas.








viernes, 28 de febrero de 2014

Instalación Del Framework Kohana





Instalación Del Framework Kohana


1. Procedemos a descargar el Framework kohana de la pagina principal  http://kohanaframework.org/ damos clic en el recuadro amarillo y empieza la descarga de nuestro Framework.



2.Luego descomprimimos la carpeta que descargamos y la copiamos en el sitio de nuestro servidor local el cual en mi casi es  XAMPP la ubicacion es en la carpeta htdocs ejemplo : C:\xampp\htdocs\kohana\.


3. Después vamos a nuestro navegador y escribimos localhost y el respectivo nombre de nuestra carpeta en mi caso el nombre es kohana ejemplo : localhost/kohana y nos saldrán los siguientes mensajes en nuestros navegadores. 




4.Eliminamos la carpeta install.php o la podemoes renombrar.


5.Por ultimo recargamos la URL en nuestro navegador y nos saldrá un mensaje de bienvenida como se puede observar en la imagen.
Con esto se finaliza la instalación de nuestro Framework y ya podemos proceder a crear nuestro proyecto.


Framework Horde

 Horde (software)

Horde es un framework libre escrito en PHP, para el desarrollo de aplicaciones colaborativas (groupware) basadas en la Web.
El Proyecto Horde se compone de unas bibliotecas (el mencionado Horde Framework) que proporcionan funcionalidades básicas (autenticación, gestión de preferencias, interfaz gráfica, etc) y que funciona como nexo de unión entre distintas aplicaciones de usuario, que son gestionadas como sub-proyectos independientes.

El objetivo del proyecto es crear aplicaciones sólidas, basadas en estándares, multiplataforma y de fácil acceso para cualquier usuario, independientemente de su idioma o localización.

Instalación

El único requisito para la utilización de Horde es PHP. Se soportan la versión 4 o 5. Si se desea utilizar IMP, se ha de disponer del módulo IMAP de PHP.

Para su instalación se puede optar por descargar por separado desde la página del proyecto el paquete Horde (obligatorio) y los paquetes de los sub-proyectos deseados, o mucho más sencillo, utilizar la suite Horde Groupware Webmail Edition que agrupa en una sola distribución los paquetes más populares. También existe la posibilidad de utilizar la suite Horde Groupware Edition, similar al anterior pero sin incluir IMP, más orientado a actividades de groupware o trabajo colaborativo.

Para la configuración y puesta en marcha es recomendable seguir las instrucciones accesibles desde la página web de cada uno de los sub-proyectos.

Framework Seagull

Framework Seagull

Permite realizar una programación modular, posee un Sistema de Gestión de Contenidos (CMS). Seagull PHP Framework (Gaviota) es una programación orientada a objetos de PHP marco de software para la creación de web, línea de comandos y aplicaciones GUI. Gaviota utiliza modelo-vista-controlador patrón de diseño. Muchas aplicaciones populares de PHP se integra dentro del proyecto, así como varios motores de plantillas, los PEAR libs, herramientas de prueba y las librerías de código administrado.


Características

Entre sus características de encuentran su compatibilidad con PHP 4 y PHP 5, ORM integrado, incorpora el patrón MVC, uso de templates, soporte para múltiples bases de datos, validación de datos, alto nivel de configuración, autentificación, integración de librerías PEAR. Gaviota ofrece las siguientes características claves siguientes:

  • P*HP 4/5 compatibles.
  • Marco básico compacto con módulos completos en el paquete.
  • Patrón Modelo-Vista-Controlador .
  • Diseño por desempeño consciente .
  • Múltiples entradas y formatos de salida integrados.
  • Mapeador objeto-relacional para el desarrollo rápido de aplicaciones.
  • Componentes débilmente acoplados, el motor de uso de plantillas de su elección, la producción de dispositivos múltiples o de la CLI.
  • El almacenamiento en caché.
  • Localización. Traducido a más de 21 idiomas del mundo.

Seguridad

Validación de Datos

Todos los datos de entrada a la solicitud se filtra y validados antes de cualquier tratamiento se lleva a cabo. Los filtros adecuados para el mecanismo de entrada se invocan antes de las pruebas posteriores de validación se ejecutan. En el caso de entrada HTTP, todos los datos de la solicitud por primera vez despojado de javascript y anterior/posterior espacios en blanco.

La autenticación y la autorización

Gaviota estándar utiliza las sesiones de PHP que se propagan persistencia de los datos de los usuarios que utilizan las cookies de forma predeterminada. Tanto la base de datos y archivo basado en la persistencia son compatibles. El motor de PHP detecta automáticamente si el cliente devuelve las cookies de sesión, si no el período de sesiones se propaga en la URL. Lucha contra el secuestro de sesión se apliquen medidas para garantizar la sesión del usuario no se puede comprometer. Gaviota funciona de forma idéntica si los usuarios finales tener las cookies habilitadas en sus navegadores. Cualquier módulo en la aplicación se puede configurar para requerir la autenticación mediante el establecimiento de la bandera de la requiresAuth en true en función de cada pantalla. Una vez que los usuarios se autentican, finas permisos de grano puede ser controlado por las pruebas de pertenencia a una función.


Frameworks CakePHP


CakePHP


Uno de los frameworks más ligeros que existen, su paquete base es realmente muy ligero. Tiene la buena (o mala, según se mire) característica de soportar PHP 4, por lo tanto no será un problema para usarlo en servidores que no se hayan actualizado a PHP 5.



Características

CakePHP o pastelPHP es un framework o marco de trabajo que facilita el desarrollo de aplicaciones web, utilizando el patrón de diseño MVC(Modelo Vista Controlador). Es de código abierto y se distribuye bajo licencia MIT.

Al igual que Ruby On Rails, CakePHP facilita al usuario la interacción con la base de datos mediante el uso de ActiveRecord. Además hace uso del patrón Modelo Vista Controlador.

  • Compatible con PHP4 y PHP5
  • CRUD de la base de datos integrado
  • URLs amigables
  • Sistema de plantillas rápido y flexible
  • Ayudas para AJAX, Javascript, HTML, forms y más
  • Trabaja en cualquier subdirectorio del sitio
  • Validación integrada
  • Scaffolding de las aplicaciones
  • Access Control Lists
  • Sintetización de datos
  • Componentes de seguridad y sesión


Framework Symfony


Symfony

Symfony es un completo framework diseñado para optimizar el desarrollo de las aplicaciones web basado en el patrón Modelo Vista Controlador. Para empezar, separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Además, automatiza las tareas más comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicación web.


Características

Symfony fue diseñado para ajustarse a los siguientes requisitos:

  • Fácil de instalar y configurar en la mayoría de plataformas (y con la garantía de que funciona correctamente en los sistemas Windows y *nix estándares).
  • Independiente del sistema gestor de bases de datos. Su capa de abstracción y el uso de Propel, permiten cambiar con facilidad de SGBD en cualquier fase del proyecto.
  • Utiliza programación orientada a objetos, de ahí que sea imprescindible PHP 5.
  • Sencillo de usar en la mayoría de casos, aunque es preferible para el desarrollo de grandes aplicaciones Web que para pequeños proyectos.
  • Aunque utiliza MVC (Modelo Vista Controlador), tiene su propia forma de trabajo en este punto, con variantes del MVC clásico como la capa de abstracción de base de datos, el controlador frontal y las acciones.
  • Basado en la premisa de “convenir en vez de configurar”, en la que el desarrollador sólo debe configurar aquello que no es convencional.
  • Sigue la mayoría de mejores prácticas y patrones de diseño para la web.
  • Preparado para aplicaciones empresariales y adaptable a las políticas y arquitecturas propias de cada empresa, además de ser lo suficientemente estable como para desarrollar aplicaciones a largo plazo.
  • Código fácil de leer que incluye comentarios de phpDocumentor y que permite un mantenimiento muy sencillo.
  • Fácil de extender, lo que permite su integración con las bibliotecas de otros fabricantes.
  • Una potente línea de comandos que facilitan generación de código, lo cual contribuye a ahorrar tiempo de trabajo.

Las ventajas tecnológicas de Symfony

Más rápido y menos codicioso: En el mundo de TI, no es raro que la gente se refiere al rendimiento de una aplicación... una vez que lleguen al final del proyecto! Es decir, una vez que todo ha sido diseñado tanto en lo funcional y los niveles de tecnología. Y a menos que usted tome todo menos una vez más, la optimización del rendimiento no es precisamente una tarea fácil. Por otro lado, Symfony2 fue concebido desde el principio para ser rápido y para favorecer el rendimiento. A modo de comparación, Symfony2 es aproximadamente 3 veces más rápido que la versión 1,4 o de 1,10 Zend Framework, teniendo hasta 2 veces menos memoria.
Flexibilidad ilimitada: Sean cuales sean sus necesidades, Symfony2 será adaptable. Su dependencia del inyector y el despachador de eventos que sea totalmente configurable, con cada uno de los ladrillos son totalmente independientes. A 3-en-1 marco, de todo tipo
• Línea indentada Stack completo (versión completa): se quiere desarrollar una aplicación compleja y que necesita muchas funcionalidades.
• Ladrillo por ladrillo: a construir su estructura de acuerdo con las funciones que usted necesita
• Microframework: como un independiente, Symfony2 también se puede utilizar para desarrollar una funcionalidad específica en uno de sus proyectos. Sin tener que reconstruir todo y sin necesidad de instalar todo el marco, pero sólo el ladrillo concreto que usted necesita.
La permanencia es también algo que se relacione con apoyo a largo plazo. Hoy en día, este apoyo es proporcionado por Sensio naturalmente. Pero también hay todo un ecosistema que ha crecido alrededor de Symfony desde su lanzamiento: la comunidad (listas de correo, IRC, etc) y las empresas de servicios de muchos otros que han invertido en el marco.
Por último, también es con miras a un desarrollo sostenible que Symfony se distribuye bajo licencia Open Source MIT, que no impone restricciones y permite el desarrollo de código abierto, así como aplicaciones propietarias.
Ampliable: Desde el más pequeño ladrillo a la base completa en sí, todo lo que se presenta como un "paquete" (o plug-in en el lenguaje Symfony) en Symfony2. Cada paquete está destinado para añadir funcionalidad al marco, por supuesto, y cada paquete también puede ser reutilizada en otro proyecto o compartida con el resto de la comunidad. En cualquier caso, el sistema de haces permite que todo cambio dentro de Symfony, incluyendo el propio núcleo. Uso de contratos de la interfaz del sistema entre los ladrillos, el comportamiento del marco así puede ser cambiado a voluntad, sin necesidad de reconfiguración completa.
Estable y sostenible: Desarrollado por los Laboratorios Sensio, las principales versiones de Symfony son soportados por 3 años por la empresa. E incluso de por vida en cuanto a las cuestiones relacionadas con la seguridad se refiere. Para mayor estabilidad, las versiones menores del contrato Symfony2 y la interfaz también están garantizadas y la compatibilidad entre todas las versiones secundarias se llevará a cabo en el API definido por las interfaces públicas.
La alegría de desarrollo: En un entorno altamente funcional, Symfony2 también garantiza un cierto nivel de comodidad para los desarrolladores. Al cuidar de una serie de tareas desagradables (desarrollo de funcionalidades de menor importancia, por ejemplo), Symfony2 permite a los desarrolladores centrarse en los aspectos más destacados reales de una aplicación y para ambos completamente validar su papel y mejorar su productividad. Entre las herramientas de Symfony diseñados para que el vida de un desarrollador mucho más fácil, está la barra de herramientas de depuración web legendario, así como soporte nativo para entornos de desarrollo, páginas de error detallados o incluso de seguridad nativa.
Facilidad de uso: Completamente flexible para satisfacer las necesidades de los profesionales y usuarios avanzados por igual, Symfony2 es también muy accesible. Abundante documentación, la comunidad y el apoyo profesional, y "incrustados" mejores prácticas dentro del marco (las mejores prácticas que se aplican de forma nativa sin necesidad de ser conscientes de ellos o entenderlos) permiten que un principiante se sienta muy rápidamente a gusto con Symfony


Framework QCodo

 Qcodo


QCodo es un framework de desarrollo de código abierto para PHP 5 que construye un mapeo de objetos y una interfaz de ABMS (Alta, baja y modificación) utilizando AJAX desde un modelo existente de una base de datos. Adicionalmente, contiene QForms que son componentes para generar formularios. Es un framework de desarrollo liviano que puede ser utilizado tanto en pequeñas como en grandes aplicaciones.

Características
Algunas de las muchas características de Qcodo que lo hacen un framework robusto para el desarrollo de PHP y ser utilizado para todo, desde grandes aplicaciones empresariales como en la Web 2.0 son:
  • Open Source (licencia MIT).
  • Arquitectura MVC.
  • Generador de código, a partir de un esquema de base de datos, genera las clases y el CRUD.
  • Programación orientada a eventos, posee componentes reutilizables.
  • Integración con Ajax.
  • Buena documentación (sobre todo en el código mismo del framework).
  • Utilizado por muchas compañías entre las que se incluye la NASA.


Componentes

El framework consiste de dos componentes principales: el generador de código y los Qcompomentes (Qforms). Qcodo usa ORM para el acceso a base de datos. El generador de código introspecciona una estructura de base de datos relacional y construye un ORM, así como también varias interfaces remotas (SOAP, AJAX) para el ORM. El ORM en QCodo puede ser extendido para proveer funcionalidad mantenida por el usuario (via object subclassing).

Qforms es un motor de templates inspirado de .NET en el que cada elemento del formulario es un objeto con su funcionalidad en métodos y atributos. Qforms incluye la habilidad de validar campos, disparar eventos, y asociar llamadas AJAX. Qforms se comunica perfectamente con el ORM, permitiendo a los desarrolladores cambiar rápida e interactivamente cualquiera de los tres componentes de la arquitectura MVC con poco impacto a los otros componentes.

Caracteristicas De Los Framework Para PHP


Caracteristicas De Los  Framework Para PHP


Un framework, en el argot utilizado por los desarrolladores de software, es una estructura de soporte definido, mediante la cual otro proyecto de software puede ser organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas y un lenguaje interpretado para ayudar a desarrollar y unir los diferentes componentes de un proyecto.
Son diseñados con la intención de facilitar el desarrollo de software, permitiendo a los diseñadores y programadores pasar más tiempo identificando requerimientos de software que tratando con los tediosos detalles de bajo nivel para proveer un sistema funcional, entre otras muchas cosas, nos ofrecen la posibilidad de usar formularios, acceso a bases de datos, envíos de mail, etc. sin necesidad de tener que programarlos desde cero.
En sentido general podemos decir que los frameworks ofrecen una infraestructura que permite a los desarrolladores tener un código más ordenado, limpio y fácil de actualizar, un código más seguro y robusto y mucho más eficiente.



Frameworks vs aplicaciones desde cero con PHP

Muchos de los detractores del uso de frameworks alegan que el costo del aprendizaje puede ser elevado, plantean que el tiempo que supuestamente se ganaría ,referido a la velocidad de desarrollo de la aplicación, se invierte en el estudio y adiestramiento, por tal motivo prefieren reutilizar algún código desarrollado con anterioridad o proceder a implementarlo desde cero, sin embargo existen razones fundadas para asegurar que el uso de estos soportes contribuyen, sin duda alguna, a agilizar en gran medida la puesta a punto de las soluciones.
Algunas de estas razones, que influyen notablemente en el empleo de frameworks en lugar de desarrollar aplicaciones desde cero con PHP son:


  • Que se dispone de componentes plenamente probados que simplificarán las tareas de programación y reducirán enormemente el trabajo repetitivo, con el objetivo de mejorar la productividad, construir todo tipo de aplicaciones, agregar nuevas funcionalidades y extender las ya existentes.
  • Separación de capas lógicas (MVC) con un controlador frontal.
  • La seguridad, factor clave en cualquier aplicación. Los datos introducidos por el usuario deben de estar debidamente validados y filtrados para evitar cualquier tipo de ataque.
  • La Comunicación con Bases de Datos (MySQL) está perfectamente automatizada, y validadas todas las consultas y el filtrando los datos variables para evitar inyección SQL.