Symfony 2


Conceptos Básicos

y

Adecuación de Ambiente de Desarrollo

José Gabriel González |  Github |  @JGabrielTupac |  +Symfony Venezuela    

Contenido


  1. Conceptos Básicos de Desarrollo Web.
  2. ¿Qué es Symfony?
  3. ¿Por qué Symfony?
  4. ¿Cuándo Symfony?
  5. Adecuación de Ambiente de Desarrollo.  
  6. Nuestra Primera Página con Symfony2.
  7. ¿Dónde encontrar Documentación?


Conceptos Básicos


           1. HTML / CSS

           2. Javascript (Javascript Roadtrip / Javascript Best Practices)

           3. JSON (http://json.org/)

           4. PHP POO / OOP

           5. Clase / Class

           6. Objetos / Objects

           7. Herencia / Extends

Conceptos Básicos


           6. Métodos / Methods

           7. Atributos / Attributes

           8. Interfaces

           9. Visibilidad (public, private, protected)

Ideal saber


                            1. Git (VCS)

                            2. YML

                            3. PHP Namespaces

                            4. Composer

Idea Saber


          5. Patrones de Diseño de Software

                                              5.1 MVC

                                              5.2 Singleton, Factory, Facade

                                              5.3 Observer

                                              5.4 Front Controller

Conceptos Básicos


HTTP es Simple


Conceptos Básicos


Peticiones HTTP y sus métodos


Método HTTP Descripción
GET Obtiene un recurso del servidor
POST Crea un recurso en el servidor
PUT Actualiza un recurso en el servidor
DELETE Elimina un recurso del servidor

Conceptos Básicos

Manejo de Petición en Symfony2

Conceptos Básicos

Manejo de Petición en Symfony2

use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

// URI solicitada (por ejemplo, /contacto) sin los parámetros de consulta
$request->getPathInfo();

// Devuelve la variables $_GET y $_POST respectivamente
$request->query->get('foo');
$request->request->get('bar', 'Valor por defecto si este no existe');

// Devuelve las variables $_SERVER
$request->server->get('HTTP_HOST');

// Devuelve una instancia de UploadedFile identificado por "foo"
$request->files->get('foo');

$request->getMethod(); // GET, POST, PUT, DELETE, HEAD
$request->isXmlHttpRequest(); //Inspecciona si una petición es via ajax

¿Qué es Symfony?


Symfony es un marco para simplificar los desarrollos.
Un marco ayuda a trabajar mejor (estructura el proyecto previendo su evolución) y más rápido ( reutilizando de módulos genéricos ) . Es un marco que facilita el mantenimiento a largo plazo y la escalabilidad mediante el cumplimiento de las normas y estándares de desarrollo . El cumplimiento de las normas de desarrollo también simplifica la integración y la interconexión de la aplicación con el resto del sistema de información .




¿Qué es Symfony2?



¿Qué es Symfony2?



¿Por qué Symfony?


Symfony es un  framework reconocido internacionalmente  por poseer un entorno de desarrollo estable. Symfony es apoyado por SensioLabs , una empresa con más de 13 años de experiencia en desarrollo web, y por una vibrante comunidad internacional , que garantizan su longevidad. Un entorno trabajo innovador y fácil de  usar,  gracias a la integración de las soluciones creadas en otros entornos , como la inyección de dependencias (tomado de Java) y soluciones desarrolladas específicamente para el framework como la barra de depuración web o el Analizador Web . Por último , mediante la adopción de estándares de facto, Symfony no te limita a su entorno , y te permite elegir los componentes de software que desees utilizar.



¿Por qué Symfony?

Symfony resuelve los siguientes retos del desarrollo Web:

  1. Persistencia de Datos
  2. Seguridad
  3. Formularios
  4. Validaciones
  5. Plantillas
  6. Archivos de Log
  7. Cache
  8. Archivos Web
  9. Internacionalización
  10. Enrutamiento

¿Cuándo Symfony?


  1. Aplicaciones Web (Grandes y Medianas)
  2. API REST Full
  3. Aplicaciones Web Móviles
  4. CMS (Sistemas Administradores de Contenido)
  5. Base para otros Frameworks
  6. Bundles de terceros

       




Adecuación del Ambiente de Desarrollo

Debemos cerciorarnos de tener instalado:

  1. PHP 5.4.27+ (Recomendado PHP 6+). 
  2. Apache 2.4.9+ o Nginx.
  3. La librería PHP intl. (php_intl).
  4. Si tienes PHP 5.4: La librería PHP Apc (php_apc).
  5. Si tienes PHP5.5: Las librerías PHP ApcU (php_apcu), PHP Zend OPCache (php_opcache).
  6. Tener apagado las etiquetas cortas de PHP (short_open_tag = off) en el php.ini y tener configurado el date.timezone en el php.ini.
  7. Si tu sistema operativo es linux, el archivo php.ini está localizado en dos directorios: /etc/php5/cli y /etc/php5/apache las dos deben ser adecuadas para el ambiente de desarrollo.
  8. Si tu sistema operativo es Windows recomiendo utilizar XAMPP en su última versión.

Adecuación del Ambiente de Desarrollo


Instalar el Sistema de Control de Versiones GIT

1. En linux derivados de Debian ejecuten lo siguiente:

# sudo apt-get install git-core

2. En windows es un poco más difícil, descargen GIT e instalenlo.

3. No olviden configurar git ejecutando en su terminal:

# git config --global user.name "Tu Nombre"
# git config --global user.email "tu@correo.com"

Adecuación del Ambiente de Desarrollo


Instalar composer

No hay mejor explicación para instalar composer que la de Javier Eguiluz en su página symfony.es




Instalación de Symfony2

Existen dos maneras de empezar un proyecto con Symfony2 la primera es la siguiente:

1. Descargar elinstalardo de Symfony. Éste nos permitirá crear proyectos con symfony fácilmente

sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
sudo chmod a+x /usr/local/bin/symfony
2. Crear un nuevo proyecto haciendo uso del comando "symfony new testing".

symfony new testing-project

2. O también se puede especificar la versión de symfony que deseamos instalar.

symfony new testing-project 2.8


Mi Primera Página con Symfony2

2. La segunda forma es descargar el Proyecto Demo de Symfony:




Mi Primera Página con Symfony2

Antes de ver el proyecto en nuestro navegador, debemos arreglar los problemas de permisos ya que Symfony necesita permisos de escritura en dos directorios app/cache y app/logs esto lo logramos (si tenemos instalado acl en nuestra distribución linux) ejecutando los siguientes e comandos:

 # sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
 # sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs

Si no puede resolver el problema de los permisos con estos comandos puedes leer otras soluciones expuestas en symfony.es.



Mi Primera Página con Symfony2

Inicialmente el proyecto solo tiene entrada a la raíz del sitio por medio del ambiente de desarrollo, cuyo controlador frontal es web/app_dev.php. Entonces podemos ahora ingresar a la dirección http://localhost/symblog/web/app_dev.php/ y nos encontraremos con la página de bienvenida de Symfony:


Mi Primera Página con Symfony2

Podemos también ingresar a la dirección http://localhost/symblog/web/config.php con la finalidad de obtener el reporte de configuración que nos indicará si nuestra plataforma (servidor) está configurada correctamente para iniciar un proyecto Symfony2. Si hay una dependencia que no se ha cumplido, solucionala antes de seguir.


Mi Primera Página con Symfony2

Cuando descargas o inicias un nuevo proyecto Symfony2 el framework  trae por defecto un código de prueba. Podemos ver entonces el hola mundo tras ingresar a la dirección  http://localhost/symblog/web/app_dev.php/demo/hello/Gabriel

¿Dónde encontrar documentación de Symfony2?

¡No todo termina acá!


En la siguiente oportunidad seguiremos profundizando en la utilización del mejor Framework de PHP
¡Symfony2!


Seguiremos echando código basándonos en el Tutorial symblog pero, agregándole más condimento


Créditos y Fuente de Información


  1. http://symfony.es
  2. http://showmethecode.es/
  3. http://yosymfony.com/
  4. http://symfony.com
  5. http://librosweb.es/
  6. http://sensiolabs.com/
  7. http://twig.sensiolabs.org/
  8. http://symfonyando.wordpress.com/



Symfony 2.3 - Conceptos y Adecuación de Ambiente de Desarrollo de Aplicaciones Symfony

By José Gabriel González

Symfony 2.3 - Conceptos y Adecuación de Ambiente de Desarrollo de Aplicaciones Symfony

Conceptos básicos y Adecuación de Ambiente de Desarrollo de Aplicaciones Symfony2

  • 2,275