Symfony 2
Conceptos Básicos
y
Adecuación de Ambiente de Desarrollo
José Gabriel González | Github | @JGabrielTupac | +Symfony Venezuela
Contenido
- Conceptos Básicos de Desarrollo Web.
- ¿Qué es Symfony?
- ¿Por qué Symfony?
- ¿Cuándo Symfony?
-
Adecuación de Ambiente de Desarrollo.
- Nuestra Primera Página con Symfony2.
- ¿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:
- Persistencia de Datos
- Seguridad
- Formularios
- Validaciones
- Plantillas
- Archivos de Log
- Cache
- Archivos Web
- Internacionalización
- Enrutamiento
¿Cuándo Symfony?
- Aplicaciones Web (Grandes y Medianas)
- API REST Full
- Aplicaciones Web Móviles
- CMS (Sistemas Administradores de Contenido)
- Base para otros Frameworks
- Bundles de terceros
Adecuación del Ambiente de Desarrollo
Debemos cerciorarnos de tener instalado:
- PHP 5.4.27+ (Recomendado PHP 6+).
- Apache 2.4.9+ o Nginx.
- La librería PHP intl. (php_intl).
- Si tienes PHP 5.4: La librería PHP Apc (php_apc).
- Si tienes PHP5.5: Las librerías PHP ApcU (php_apcu), PHP Zend OPCache (php_opcache).
- 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.
- 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.
- 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".
sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
sudo chmod a+x /usr/local/bin/symfony
symfony new testing-project
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
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
# 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?
-
Manual Oficial de Symfony2
-
Cookbook de Symfony2
-
Manual Oficial de Symfony2 en Español
-
Slides de la conferencia deSymfony 2013
-
Video de la Conferencia deSymfony
-
Showmethecode.es
-
Yosymfony.com
-
Documentación Symfony.es
-
Symfony.es
-
Tutorial Symblog (No actualizado a las últimas versiones)
-
Parasito Virtual
-
KnpBundles
-
JMSBundles
-
Symfony Venezuela (Comunidad Google+)
- Curso Introductorio de Symfony
¡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
-
http://symfony.es
-
http://showmethecode.es/
- http://yosymfony.com/
- http://symfony.com
- http://librosweb.es/
- http://sensiolabs.com/
- http://twig.sensiolabs.org/
- 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