Mi primer programa en Symfony2
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Mi primer programa en Symfony2

  • 14,790 views
Uploaded on

Mi primer programa en Symfony2, version PR4

Mi primer programa en Symfony2, version PR4

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • esta bastante buena la presentación, aunque hace falta pulir detalles como explicar para que sirve cada comando o que hace cada fragmento de código empleado. De esta manera, se educa al espectador a entender la lógica del framework, en lugar de copiar y pegar y luego andar de foro en foro preguntando por que no les funciona.
    Are you sure you want to
    Your message goes here
  • Esta presentación no corresponde a la versión actual de Symfony2, mas adelante la actualizare !!!
    Are you sure you want to
    Your message goes here
  • Uff no se por que cuando intento generar la Base de datos con doctrine:database:create me da un error que no entiendo. EL mensaje que devuelve es el siguiente:

    'Could not create database for connection named MiEjemplo
    SQLSTATE[HY000] [2002] No se puede establecer una conexión ya que el equipo de
    destino denegó expresamente dicha conexión..'

    Alguna idea de por que pueda suceder esto???
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
14,790
On Slideshare
14,784
From Embeds
6
Number of Embeds
1

Actions

Shares
Downloads
297
Comments
3
Likes
4

Embeds 6

http://www.sfexception.com 6

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ...UN PRIMER PROYECTO EN SYMFONY2 SYMFONY2 PRIMER PROYECTO EN SYMFONY2    CÉSAR HERNÁNDEZ dpcesar@gmail.com version 0001­12­11
  • 2. ...UN PRIMER PROYECTO EN SYMFONY2 Resumen (Abstract): Este  papel  de  trabajo,  en  formato  de  presentación,  tiene como objetivos: aclarar un poco “algo acerca la  teoria de sistemas” utilizada en  Symfony2; y crear un  ; y proyecto  sencillo  que  adiestre  al  nuevo  programador  acerca de esta versión del framework de symfony. Para hacer referencia a Symfony2 se utilizara el acronimo Sf2. Palabras Claves: framework, symfony, symfony2, sf2, bundle, php   
  • 3. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADORANTES DE COMENZAR CON SYMFONY2Su sistema operativo debe cumplir con los siguientes requerimientos basicos Apache   (es un servidor web)  Puede utilizar el Apache o cualquier otro servidor web de su preferencia que soporte PHP PHP 5.3.x   (lenguaje de programación) Versiones anteriores de PHP no contienen algunas funciones que son utilizadas Symfony2 GIT   (Es un sistema de control de versiones)      El GIT es necesario para descargar la “última versión” y la “mas actualizada” de Symfony2  MySQL   (Es un servidor de base de datos)      Es requerido para el ejemplo a desarrollar en este documento    
  • 4. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADORCREAR “UNA CARPETA” PARA LOS PROYECTOSEN ESTA CARPETA ESTARAN TODOS NUESTROS BUNDLES, PROYECTOS, APLICACIONES Y PRUEBASDefinir el nombre de nuestra carpeta de proyectospara este ejemplo vamos a utilizar el nombre proyectos­sf2Ubicarse en la carpeta de ejecución del servidor webLa carpeta de proyectos debe estar una ruta con permisos de ejecución Usualmente en: linux “/var/www” o en windows  “c:/inetpub/web”A continuación ejecutamos el siguiente comando  git clone https://github.com/symfony/symfony­sandbox.git proyectos­sf2   este comando creara la carpeta proyectos­sf2 y   de forma automatica se descargará la “última versión”  y la “mas actualizada”   del framework symfony2    
  • 5. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADORNOTAS DE CONFIGURACIÓNPuede clonar a través del GIT otros repositorios importantes del Sf2 como su documentaciónPara ver todos repositorios oficiales del proyecto visite   http://github.com/symfony    
  • 6. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADOR1.­ PROBAR LA INSTALACIÓN SYMFONY2       http://localhost/proyectos­sf2/web/app_dev.php2.­ CHEQUEAR EL ENTORNO DE TRABAJO SF2       http://localhost/proyectos­sf2/web/check.php    
  • 7. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADOR Vamos crear el bundle MiEjemplo Esta será una aplicación que mostrará un simple listado con dos item Los objetivos: Familiarizar  al  programador  con  algunas  de  las  particularidades  de  Symfony2  como  por  ejemplo la estructura basica de un bundle Configurar el Entorno de trabajo, crear los archivos basicos del modelo­vista­controlador Conectarse a una base de datos y crear una tabla usando en Doctrine2 Cargar algunos datos iniciales a la base datos Y si todo sale bien... mostrar una pagina en el navegador !   
  • 8. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADOR Crear el bundle MiEjemplo Crear el directorio del Bundle mkdir ­p src/Application/MiEjemploBundle Crear y editar el archivo MiEjemploBundle.php src/Application/MiEjemploBundle/MiEjemploBundle.php Agrege el siguiente código <?php namespace ApplicationMiEjemploBundle; use SymfonyComponentHttpKernelBundleBundle; class MiEjemploBundle extends Bundle { }   
  • 9. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADOR Registrar el bundle en AppKernel.php app/AppKernel.php Dentro del archivo AppKernel.php existe una función llamada RegisterBundles En esta función esta definido un arreglo de Bundles Los valores con los que se inicializa ese arreglo de Bundles,  estan separados en secciones, demarcadas  por comentarios Ahora hay  que ubicar el comentario // Register your Bundles Y registrar el bundle que acabamos de crear, agregando el siguiente codigo new ApplicationMiEjemploBundleMiEjemploBundle(),   
  • 10. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADOR Definición de las tablas de la Base de Datos El modelo entidad­relación se detalla en el directorio Entity del Bundle  Por defecto, el directorio Entity no existe... Cree el directorio Entity mkdir ­p src/Application/MiEjemploBundle/Entity <?php Este es un ejemplo básico de la  namespace ApplicationMiEjemploBundleEntity; entidad que definiremos en la  siguiente lamina class MiEjemplo {   protected $id;   public $title;   public $body; } Nota:    La definición de las estructuras de las diferentes tabas de la base de datos de su aplicación son  parte del modelo ( esto dentro del concepto: modelo­vista­controlador )
  • 11. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN Preparar el modelo MODELO­VISTA­CONTROLADOR <?phpCree el directorio de la Entidadmkdir src/Application/MiEjemploBundle/Entity namespace ApplicationMiEjemploBundleEntity; /**  * @orm:EntityEdite el archivo MiEjemplo.php  */src/Application/MiEjemploBundle/Entity/MiEjemplo.php class MiEjemplo {     /**      * @orm:Id      * @orm:Column(type="integer")Agrege el       * @orm:GeneratedValue(strategy="IDENTITY")      */siguiente código     public $id;       /**      * @orm:Column(type="string")      * @orm:Column(length="255")      */     public $title;     /**      * @orm:Column(type="string")      * @orm:Column(length="255")      */     public $body;     }
  • 12. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADOR Continuamos preparando el modelo Crear el directorio de la Entidad(es) mkdir ­p  src/Application/MiEjemploBundle/DataFixtures/ORM Crear y editar el archivo MiEjemplo.php src/Application/MiEjemploBundle/DataFixtures/ORM/MiEjemplo.php   
  • 13. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADOR Continuamos preparando el modelo Agrege el siguiente código <?php namespace ApplicationMiEjemploBundleDataFixturesORM; use DoctrineORMEntityManager,        DoctrineCommonDataFixturesFixtureInterface,        ApplicationMiEjemploBundleEntityMiEjemplo; class LoadEjemplos implements FixtureInterface {     public function load($em)     {         $MiEjemplo1 = new MiEjemplo();         $MiEjemplo1­>title = Cesar Hernandez;         $MiEjemplo1­>body = Ing. De Sistemas, graduado en la Universidad Bicentenaria de Aragua;         $em­>persist($MiEjemplo1);         $MiEjemplo2 = new MiEjemplo();         $MiEjemplo2­>title = Sebastian Hernandez;         $MiEjemplo2­>body = Estudiante de Maternal, nacido en Lecheria, Estado Anzoátegui;         $em­>persist($MiEjemplo2);        $em­>flush();     }  }  
  • 14. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADORFinalizamos la preparación del modelo Creación de la Base de Datos ## Doctrine Configuration Edite el archivo Config.yml #doctrine.dbal: app/config/config.yml #    dbname:   xxxxxxxx #    user:     xxxxxxxx #    password: ~ Alli encontrará el siguiente código  ­­­> #doctrine.orm: #    auto_generate_proxy_classes: %kernel.debug% #    mappings: #        HelloBundle: ~ # Doctrine Configuration doctrine.dbal:     dbname:   MiEjemplo     user:     root Actualicelo asi ­­­­>     password: root doctrine.orm:     auto_generate_proxy_classes: %kernel.debug%     mappings:         MiEjemploBundle: ~            HelloBundle: ~
  • 15. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADOREjecute los siguientes comandos php app/console doctrine:database:create php app/console doctrine:schema:create php app/console doctrine:data:load    
  • 16. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADORLa VistaCrear el directorio de la vistamkdir ­p src/Application/MiEjemploBundle/Resources/views/MiEjemplo/Crear y editar el archivo index.phpsrc/Application/MiEjemploBundle/Resources/Resources/views/MiEjemplo/index.php <?php  $view­>extend(::layout.php) ?> <h1> MiEjemplo </h1> <ul class=MiEjemplo> <?php foreach($MiEjemplo as $MiEjemplo): ?>   <li>      <h2><?php echo $MiEjemplo­>title; ?></h2>      <p><?php echo $MiEjemplo­>body; ?></p>   </li> <?php endforeach; ?> </ul>   
  • 17. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADOR El Controlador Crear el directorio del Controlador mkdir ­p src/Application/MiEjemploBundle/Controller Crear y editar el archivo MiEjemploController.php src/Application/MiEjemploBundle/Controller/MiEjemploController.php<?phpnamespace ApplicationMiEjemploBundleController;use SymfonyBundleFrameworkBundleControllerController;class MiEjemploController extends Controller{  public function indexAction()  {    $em = $this­>container­>get(doctrine.orm.entity_manager);    $MiEjemplo = $em­>createQuery(SELECT b FROM ApplicationMiEjemploBundleEntityMiEjemplo b ORDER BY b.body DESC)­>execute();    return $this­>render(MiEjemploBundle:MiEjemplo:index.php, array(MiEjemplo => $MiEjemplo));  }}    
  • 18. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADORTerminando la configuración de la vista ­ El RoutingCrear el directorio de configuración de la vista del Bundlemkdir ­p src/Application/MiEjemploBundle/Resources/config/Crear y editar el archivo routing.ymlmkdir ­p src/Application/MiEjemploBundle/Resources/config/routing.yml MiEjemplo:     pattern:     /MiEjemplo     defaults: { _controller: MiEjemploBundle:MiEjemplo:index}Integramos el routing.yml del bundle al archivo routing.yml principal del Sf2gedit app/config/routing.yml MiEjemplo:     resource:  MiEjemploBundle/Resources/config/routing.yml   
  • 19. ...UN PRIMER PROYECTO EN SYMFONY2 CONFIGURACIÓN MODELO­VISTA­CONTROLADORLimpiamos el cache de Symfony2Ejecutando en la consola del sistema operativo     rm ­rf app/cache/* Si todo salio bien, probamos el bundle  en nuestro navegador        http://localhost/proyectos­sf2/web/app_dev.php/MiEjemplo