Symfony, el Struts e Hibernate del PHP

Tags: , , , , ,

symfony-logo

Después de un tiempo escribiendo sobre Frameworks de Java, voy a regresar un poco a mis inicios, a PHP, yo he sido un programador de los que decian, los Frameworks atrasan (al menos en mi tiempo), pero devido a mi reciente experiencia con Spring Framework me di cuenta de las grandes ventajas de un Framework y decidí buscar el mejor para PHP.

Symfony es un completo framework diseñado para optimizar, gracias a sus características, el
desarrollo de las aplicaciones web

Symfony es un completo framework diseñado para optimizar, gracias a sus características, el desarrollo de las aplicaciones web, está desarrollado completamente con PHP 5. Ha sido probado en numerosos proyectos reales y se utiliza en sitios web de comercio electrónico de primer nivel. Symfony es compatible con la mayoría de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y SQL Server de Microsoft.

Estas son algunas de sus caracteristicas:

sfACTION, Capa de Presentación

Toma lo mejor de la arquitectura MVC y la implementa de forma que el desarrollo de aplicaciones sea rápido y sencillo, en el siguiente gráfico se puede apreciar como es el flujo de trabajo, y aqui es donde hago a similitud con Struts, donde los ActionServlet y los sfAction tienen caracteristicas parecidas a la hora de manejar las peticiones en la capa de presentación.

mvcsymfony

El flujo de trabajo de Symfony

PROPEL, Acceso a Datos

La lógica de negocio de las aplicaciones web depende casi siempre en su modelo de datos. El componente que se encarga por defecto de gestionar el modelo en Symfony es una capa de tipo ORM realizada mediante el proyecto Propel. En las aplicaciones Symfony, el acceso y la modificación de los datos almacenados en la base de datos se realiza mediante objetos; de esta forma nunca se accede de forma explícita a la base de datos. Este comportamiento permite un alto nivel de abstracción y permite una fácil portabilidad. Practicamente es el Hibernate del PHP, creo que quedó mas que claro.

YALM, Configuración del Sistema

YAML (”YAML Ain’t Markup Language”) es un lenguaje muy sencillo que permite describir los datos como en XML, pero con una sintaxis mucho más sencilla. YAML es un formato especialmente útil para describir datos que pueden ser transformados en arrays simples y asociativos.  Symfony utiliza el formato YAML como el lenguaje preferido para almacenar su configuración.

http://www.symfony-project.org/

http://www.symfony.es/

PHP 5.3 Liberado !!

Tags:

php53

Mañana es el dia, en el que PHP se hace mayor, la mejor actualización desde hace años, esperada por muchos desarrolladores, ya tiene fecha de salida.

PHP 5.3.0 incluye importantísimas novedades, como por ejemplo:

Anonymous functions

Funciones Anónimas , también conocido known o closures, permite la creación de funciones que no tienen nombre especifico. Son muy útiles como el valor de los parámetros de llamada, pero tienen muchos otros usos.

<?php
$greet = function($name)
{
    printf("Hello %s\r\n", $name);
};
 
$greet('World');
$greet('PHP');
?>

Driver nativo de MySQL

El Driver nativo MySQL es el sustituto para la libreria de MySQL (libmysql). El Driver nativo de MySQL es ya oficial de PHP 5.3 y PHP 6, está escrito en C como una extensión de PHP.

archivos Phar

El concepto de Phar archivos proceden de la tecnología Java ™ de archivos JAR, que le permite tener todas sus clases en un solo archivo empaquetado.

Phar puede no solo ser utilizado como un contenedor de clases, sino tambien para ejecutar aplicaciones enteras. Los JAR actualmente contiene archivos para ejecutar o crear una aplicación y pueden ser ofuscados por medidas de seguridad, Phar está basado en un concepto similar, pero diseñado más para ambientes web.

Las extensiones Phar, no son totalmente nuevas. Inicialmente se escribieron como PHP_Archive, en el repositorio PEAR en 2005.

//Creando un Phar
<?php
$p = new Phar('/path/to/my.phar', CURRENT_AS_FILEINFO | KEY_AS_FILENAME, 'my.phar');
$p->startBuffering();
$p = $p->convertToExecutable(Phar::ZIP);
?>

Operador Goto

El operador puede ir a ser usado para saltar a otra sección del programa o sistema.

<?php
goto a;
echo 'Foo';
 
a:
echo 'Bar';
?>

Namespaces

Un namespace o espacio de nombres es un medio para organizar/encapsular clases, funciones, constantes… dentro de un entorno, agrupándolas de un modo más lógico y jerárquico, de la misma forma que los directorios agrupan a los archivos dentro de un sistema de ficheros.

Ésta es una característica bastante esperada por los desarrolladores de PHP y llega con el objetivo de ayudar a que no necesitemos prefijar el nombre de nuestras clases con el nombre del paquete al que pertenecen y, por tanto, que podamos tener nombres más cortos. También nos ofrece la posibilidad de declarar varias clases con el mismo nombre y/o que un grupo de desarrolladores pueda trabajar en varios componentes de un mismo proyecto sin que se produzcan colisiones durante la integración.

Los namespaces están especialmente indicados cuando trabajamos en proyectos de gran envergadura, como por ejemplo, un Framework PHP. En algunos Frameworks podemos llegar a encontrar nombres realmente complejos, por no decir imposibles.

<?php
namespace MiEspacio\MiSubnivel1\MiSubnivel2; 
const CONSTANTE = 1;
class mi_clase { /* ... */ }
function mi_funcion() { echo &quot;Mi Funcion&quot;; }
?>

© 2009 JotaDeveloper. Nuestros contenidos están bajo licencia Creative Commons mientras no se indique lo contrario,
y pueden reproducirse libremente sin más que mencionar la fuente ("JotaDeveloper") y la URL concreta del artículo original. .

This blog is powered by Wordpress and JotaDeveloperTheme.