clase 3 instalación y primeros pasos

25
Instalación y Primeros Pasos Realizada por: Diego Barros |@imnzombie Diego Ramirez |@thedarsideofit Para: Hydras C&S |@hydras_cs Basada en Libro Symfony 2 en español Nacho Pacheco

Upload: hydrascs

Post on 08-Jul-2015

534 views

Category:

Documents


1 download

DESCRIPTION

www.hydrascs.com

TRANSCRIPT

Page 1: Clase 3 instalación y primeros pasos

Instalación y Primeros Pasos

Realizada por:Diego Barros |@imnzombieDiego Ramirez |@thedarsideofit

Para: Hydras C&S |@hydras_csBasada en Libro Symfony 2 en español Nacho Pacheco

Page 2: Clase 3 instalación y primeros pasos

Creando páginas en Symfony2

Dos pasos● Crear una ruta.● Crear un controlador

Page 3: Clase 3 instalación y primeros pasos

Creando páginas en Symfony2

La página «¡Hola Symfony!»

En realidad la palabra Symfony podrá ser reemplazada por cualquier término

http://localhost/app_dev.php/hello/Symfony

Page 4: Clase 3 instalación y primeros pasos

Creando páginas en Symfony2

Creando el bundle

Este comando realiza dos cosas:● Crea el directorio en src/Acme/HelloBundle● Registra el bundle en el kernel de la

aplicación AppKernel

$ php app/console generate:bundle --namespace=Acme/HelloBundle --format=yml

Page 5: Clase 3 instalación y primeros pasos

Creando páginas en Symfony2

Creando las rutas usando YML

# app/config/routing.ymlacme_hello: resource: @AcmeHelloBundle/Resources/config/routing.yml" prefix: /

# src/Acme/HelloBundle/Resources/config/routing.ymlhello: pattern: /hello/{name} defaults: { _controller: AcmeHelloBundle:Hello:index }

Page 6: Clase 3 instalación y primeros pasos

Creando páginas en Symfony2

Creando las acciones del controlador// src/Acme/HelloBundle/Controller/HelloController.phpnamespace Acme\HelloBundle\Controller;

use Symfony\Component\HttpFoundation\Response;

class HelloController{ public function indexAction($name) { return new Response('<html><body>Hello' $name.'!</body></html>'); }}

Page 7: Clase 3 instalación y primeros pasos

Creando páginas en Symfony2Creando las acciones del controlador

// src/Acme/HelloBundle/Controller/HelloController.phpnamespace Acme\HelloBundle\Controller;use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class HelloController extends Controller{ public function indexAction($name) { return $this->render( 'AcmeHelloBundle:Hello:index.html.twig', array('name' => $name) ); }}

Page 8: Clase 3 instalación y primeros pasos

Creando páginas en Symfony2Convenciones de nombres

Creando la plantilla con Twig

BundleName:ControllerName:TemplateName

/path/to/BundleName/Resources/views/ControllerName/TemplateName

{# src/Acme/HelloBundle/Resources/views/Hello/index.html.twig #} {% extends '::base.html.twig' %}

{% block body %} Hello {{ name }}! {% endblock %}

Page 9: Clase 3 instalación y primeros pasos

Creando páginas en Symfony2Estructura de la plantilla base

{# app/Resources/views/base.html.twig #}<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>{% block title %}Welcome!{% endblock %}</title> {% block stylesheets %}{% endblock %} <link rel="shortcut icon" href="{{ asset('favicon.ico') }}" /> </head> <body> {% block body %}{% endblock %} {% block javascripts %}{% endblock %} </body></html>

Page 10: Clase 3 instalación y primeros pasos

Estructura de Directorios● app/: Este directorio contiene la configuración de la

aplicación;● src/: Todo el código PHP del proyecto se almacena en este

directorio;● vendor/: Por convención aquí se coloca cualquier biblioteca

de terceros;● web/: Este es el directorio web raíz y contiene todos los

archivos de acceso público;● El controlador frontal:

// web/app.phprequire_once __DIR__.'/../app/bootstrap.php.cache';require_once __DIR__.'/../app/AppKernel.php';

use Symfony\Component\HttpFoundation\Request;

$kernel = new AppKernel('prod', false);$kernel->loadClassCache();$kernel->handle(Request::createFromGlobals())->send();

Page 11: Clase 3 instalación y primeros pasos

Estructura de DirectoriosEstructura de un bundle:● Controller/ Contiene los controladores del paquete (por ejemplo,

HelloController.php);● DependencyInjection/ mantiene ciertas extensiones para las clases de

inyección de dependencias, qué configuración puede importar el servicio, registra uno o más pases del compilador (este directorio no es necesario);

● Resources/config/ Contiene la configuración, incluyendo la configuración de enrutado (por ejemplo, routing.yml);

● Resources/views/ Contiene las plantillas organizadas por nombre de controlador (por ejemplo, Hello/index.html.twig);

● Resources/public/ Contiene recursos web (imágenes, hojas de estilo, etc.) y es copiado o enlazado simbólicamente al directorio web/ del proyecto vía la orden de consola assets:install;

● Tests/ Tiene todas las pruebas para el paquete.

Page 12: Clase 3 instalación y primeros pasos

EntornosPor defecto Symfony propone tres entornos:● prod: sólo se registran los errores (log) y

utiliza la cache.

● dev: no se utiliza la cache, se muestran las excepciones detalladas se muestra la symfony developer toolbar

● test: se utiliza cuando se ejecutan pruebas automáticas y no se puede acceder directamente a través del navegador

Page 13: Clase 3 instalación y primeros pasos

Instalación

Page 14: Clase 3 instalación y primeros pasos

● Primero debemos verificar que nuestros servicios Apache y de base de datos, ya sea PostgreSQL, MySQL, Mongo, etc.. estén en funcionamiento.

● Posterior configurar los correspondientes servicios.● Realizar la puesta en desarrollo y configurar el entorno.

Pasos a seguir:

Page 15: Clase 3 instalación y primeros pasos

Para el mayor enfoque sobre el framework en este curso utilizaremos el paquete XAMPP(Apache, MySQL, PHP, Perl)

Page 16: Clase 3 instalación y primeros pasos

Una vez realizada la instalación de XAMPP podemos acceder al home a través del browser mediante la url:

http://localhost

Page 17: Clase 3 instalación y primeros pasos

Nos encontraremos con la información pertinente en lo respecta versión funcionamiento del XAMPP, phpMyAdmin para administrar la Base de Datos MySQL

Page 18: Clase 3 instalación y primeros pasos

Además cuenta con un panel administrador para establecer el estado de los serviciosVer los logs, configurar los archivos principales.

Page 19: Clase 3 instalación y primeros pasos

En las distribuciones de GNU Linux contamos con un comando para visualizar los logs muy útil.tail -f archivo.log Nos permite ver en tiempo real el cambio en los archivos logs

Page 20: Clase 3 instalación y primeros pasos

Para no dejar afuera a nadie buscamos algo similar para windows:tailforwin es una herramienta en la cual se cargan los archivos a seguir y de la misma manera que el anterior permite el análisis de los logs en tiempo real.http://tailforwin32.sourceforge.net/

Page 21: Clase 3 instalación y primeros pasos

Posterior a la instalación del XAMPP no hace falta muchas configuraciones sobre las herramientas.XAMPP establece para la DB un usuario y una contraseña por default, y las bibliotecas PHP se instalan, se configuran en el directorio xampp\php\php.ini para ser habilitadas.

Page 22: Clase 3 instalación y primeros pasos

Puesta en desarrollo y configuración de Symfony2Antes de empezar debemos crear dos directorios dentro del esquema de symfony2 el cache y el directorio logs, los mismos se deberán crear en el interior de app/. Y mover el directorio con el framework al htdocs del XAMPP.

Existen dos maneras de poner en marcha symfony2, mediante composer o descargando el archivo comprimido.

Mediante composer:

% curl -s https://getcomposer.org/installer | php

Guía windows(instalación de composer):http://getcomposer.org/doc/00-intro.md#installation-windowsUna vez instalado:

php.exe composer.phar create-project symfony/framework-standard-edition /ruta/a/raizweb/Symfony dev-master

Page 23: Clase 3 instalación y primeros pasos

Descarga del archivo:

Si van a la página:http://symfony.com/download

También tienen para elegir entre tgz o zip, que es solo el modo de compresión, y además con o sin vendors, se recomienda para los desarrolladores que posean el cliente GIT sin vendors por la flexibilidad de instalar sofrware de terceros.

Si optamos por el pack que viene sin vendors, vamos a tener que instalar composer de igual manera que se mencionó anteriormente. Solo que en vez de instalar symfony2 correremos el siguiente comando

php.exe composer.phar install

En algunos casos la conexión es muy lenta el proceso de actualización o instalación

por lo que debe acompañarse del seteo de variable

COMPOSER_PROCESS_TIMEOUT=300 php.exe composer.phar update

Page 24: Clase 3 instalación y primeros pasos

Una vez concluido podemos empezar el tour probando lo mencionado anteriormente:

podemos ir al browser y tipear:

http://localhost/app_dev.php/