0

Symfony framework de Desarrollo PHP

Posted by andnovar on Jun 2, 2009 in Web

Sin duda alguna se ha convertido en uno de los Frameworks de Desarrollo mas usado y popular que hay, quizá no sea el mejor pero si uno de los que mas documentación en español tiene,  symfony provee una arquitectura, componentes y herramientas para los desarrolladores que permiten  construir complejas aplicaciones web mas rapidamente.

Symfony sigue el paradigma MVC ( modelo-vista-controlador ),  el cuál es un patrón de arquitectura muy usado en Ingeniería de Software. Personalmente en principio tuve ciertas dificultades con symfony que se fueron resolviendo a medida que leia la documentación e información al respecto, recomiendo antes de comenzar a desarrollar, leer muy bien como funciona symfony internamente esto les ahorrará horas de trabajo, los libros que usé son Symfony The Definitive Guide y Jobeet.

pasos para tener tu aplicación en unos pocos minutos:

====>    Creación del proyecto

En caso de usar wamp, y symfony 1.2.7
Creamos una carpeta llamada miproyecto dentro de www, y a su vez dentro de esta creamos una carpeta lib y dentro de lib una llamada vendor ya aqui descomprimimos la versión de symfony que hayamos descargado y colo camos su contenido en una carpeta llamada symfony. el directorio queda –> miproyecto/lib/vendor/symfony

  1. Configurando

    Aseguremonos que todo este ok
    c:\> php lib/vendor/symfony/data/bin/check_configuration.php
    Generemos el proyecto al realizar esta acción se genera el árbol de directorios
    c:\> php lib/vendor/symfony/data/bin/symfony generate:project nombre_mi_proyecto
    Generamos la aplicación de esta forma se crea el árbol de directorios donde almacenaremos
    las plantillas generales, y el mvc de la aplicación.

    c:\> php symfony generate:app –escaping-strategy=on –csrf-secret=UniqueSecret frontend

    los argumentos después de app se escriben por motivos de seguridades para evitar ataques a nuestra aplicación por ejemplo

    En el archivo ProjectConfiguration.class.php agregar esta linea que hace portable nuestro proyecto
    agregando una ruta relativa a la clase de incialización.

    require_once dirname(__FILE__).’/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php’;

    Configuración en el servidor apache para el proyecto
    # Esta es la configuración para mi_proyecto
    <VirtualHost 127.0.0.1:80>
    ServerName miproyecto.com
    DocumentRoot «C:\wamp\www\miproyecto\web»
    DirectoryIndex index.php
    <Directory «C:\wamp\www\miproyecto\web»>
    AllowOverride All
    Allow from All
    </Directory>
    Alias /sf «C:\wamp\www\miproyecto\lib\vendor\symfony\data\web\sf»
    <Directory «C:\wamp\www\miproyecto\lib\vendor\symfony\data\web\sf»>
    AllowOverride All
    Allow from All
    </Directory>
    </VirtualHost>

    Listo ya podrás acceder a tu aplicación desde un browser con la siguiente dirección
    http://miproyecto.com

  2. Definiendo la Base de Datos

    Dentro de la carpeta config se encuentran los archivos de configuración de symfony abriremos schema.yml, el cuál lo podemos personalizar a nuestro gusto o podemos generarlo a partir de una base ya existente.
    El contenido de este archivo es como el siguiente:

    propel:
    _attributes: { noXsd: false, defaultIdMethod: none, package: lib.model }

    tabla_pais:
    _attributes: { phpName: Pais, idMethod: native }
    id: ~
    nombre: { type: varchar(30), required: true }
    usuario: { type: varchar(10), required: true }
    created_at: ~
    updated_at: ~

    tabla_sucursal:
    _attributes: { phpName:Sucursal, idMethod: native }
    id: ~
    nombre: { type: varchar(30), required: true }
    pais_id: { type: integer, foreignTable: tabla_pais, foreignReference: id, required: true }
    usuario: { type: varchar(10), required: true }
    created_at: ~

    Este ejemplo es de un archivo yml que tiene una sintaxis muy especial, deben escribirlo con las debidas identaciones sino tendrán problemas, symfony entiende por default palabras como id, created_at, updated_at, etc … y los personaliza automáticamente, el phpName es el nombre que queremos que tenga nuestra clase una vez generado todo.

    Configurando la base de datos, con esta sentencia queda configurado el archivo databases.yml que se encuentra en la carpeta config.
    c:> php symfony configure:database «mysql:host=localhost;dbname=nombre_base» root ConTraSenA
    Generando el archivo sql que se guardara en data/sql con las sentencias sql optimizadas
    c:> php symfony propel:build-sql
    Insertando las tablas en la base
    c:> php symfony propel:insert-sql –no-confirmation

  3. MVC de la app

    Generamos el modelo, los controladores, los formularios

    c:> php symfony propel:build-all

    Generamos los modulos de la aplicación uno a uno, es aqui donde se realizan las operaciones fundamentales sobre las tablas

    c:> php symfony propel:generate-module –with-show –non-verbose-templates frontend nombre_para_modulo nombre_tabla

    Reemplazar luego los metodos _toString en las clases principales y vacias de cada modulo.

    Basicámente hemos creado la estructura de la aplicación lo que resta es modificar el archivo miaplicacion/apps/frontend/templates/layout.php para definir el estilo para todas las ventanas ydemas configuraciones necesarias.

Etiquetas: , , , ,

Copyright © 2024 Tecnologías Interesantes All rights reserved. Theme by Laptop Geek.