Symfony
¿QUE ES SYMFONY?
Symfony es un framework PHP de tipo full-stack (pila completa) construido con varios componentes independientes creados por el proyecto Symfony.Symfony2 es uno de los Framework más potentes que existen para desarrollar aplicaciones web.
características
Su código, y el de todos los componentes
y librerías que incluye, se publican bajo la licencia MIT de software
libre.
La documentación del proyecto también es libre e incluye varios libros y decenas de tutoriales específicos.
Aprender a programar con Symfony te permite acceder a una gran variedad de proyectos: el framework Symfony2 para crear aplicaciones complejas, el micro framework Silex para sitios web sencillos y los componentes Symfony para otras aplicaciones PHP.
Los componentes de Symfony son tan útiles y están tan probados, que proyectos tan gigantescos como Drupal 8 están construidos con ellos.
La documentación del proyecto también es libre e incluye varios libros y decenas de tutoriales específicos.
Aprender a programar con Symfony te permite acceder a una gran variedad de proyectos: el framework Symfony2 para crear aplicaciones complejas, el micro framework Silex para sitios web sencillos y los componentes Symfony para otras aplicaciones PHP.
Los componentes de Symfony son tan útiles y están tan probados, que proyectos tan gigantescos como Drupal 8 están construidos con ellos.
Estructura
Directorio app:
La finalidad de este directorio es alojar a
los archivos PHP encargados de los procesos de carga
del
Framework y a toda la configuración general de la
aplicación. Los archivos de este directorio son los encargados
de
unir y dar cohesión a los distintos componentes del Framework.
Directorio src:
Este directorio contiene todo el
código creado por el desarrollador para la aplicación.
Directorio vendor:
Este directorio contendrá todo aquel código
que no pertenece al desarrollador de la aplicación; es lo que
se
conoce como librerías
de terceros.
También contiene los componentes de Symfony2, el ORM Doctrine2
y
el sistema de plantillas twig.
Directorio web:
Este directorio contiene el controlador
frontal (app_dev.php y app.php) y todos los Assets de la aplicación: CSS's, Javascripts, imágenes.
app_dev.php: Es uno de los controladores frontales de la aplicación. Este controlador frontal es el
utilizado para el desarrollo, para lo cual añade una barra de depuración que
ofrece información sobre todo lo relacionado con la ejecución de la aplicación.
PROBLEMA A DESARROLLAR
Desarrollar un aplicativo que permita registrar estudiantes y que pertenezcan aun determinado programa, se necesita que el aplicativo permita editar, eliminar y listar los estudiantes registrados y os respectivos programas.
Configuración
Primero descargar xampp desde la pagina oficial: https://www.apachefriends.org/es/index.html, lo instalamos en la unidad c y damos servicio
al xampp (apache y mysql).
agregar variables de entorno: carpeta php de xampp
Dentro de la carpeta php de xampp agregamos el archivo composer.bat
C:\xampp\php, para que en la consola se pueda
reconocer el php como un comando.
clic
derecho en equipo, propiedades
configuración avanzada del sistema
variables
de entorno, path, editar, agregamos las variables
de entorno y aceptar
Primero descargar: versión
Symfony_Standard_Vendors_2.5.6.zip, superior o menor a la versiones anteriores.
http://fossies.org/linux/www/Symfony_Standard_Vendors_2.5.6.tgz/
o desde la pagina oficial de symfony http://symfony.com/download
Segundo:
dentro de la carpeta htdocs
de simfony
creamos una carpeta y la llamaremos registro-estudiante como se muestra en la siguente imagen:
Dentro
de la carpeta registro-estudiante descomprimimos
Symfony_Standard_Vendors_2.5.6.zip y debe quedar de la siguiente manera:
Una
ves realizado esto abrimos el símbolo del sistema (cmd),
nos situamos en la carpeta donde se encuentra nuestra carpeta
creada frameworks :\xampp\htdocs\registro-estudiante.
Una
vez aquí ejecutamos el siguiente comando que es un entorno de trabajo, esto
crea una carpeta que es donde se va a almacenar nuestro proyecto: php app/console generate:bundle
damos enter
Nos
aparece un menú donde nos da opciones para la configuración del proyecto.
Donde
dice Bundle namespace:
escribimos Acme/RegistroBundle el
Acme
viene por defecto en symfony.
Debe
quedar de la siguiente manera:
damos enter
Después
nos aparece esto donde le tenemos que dar enter: Bundle name [AcmeRegistroBundle]:
Despues
nos pregunta donde estaría el directorio que es por defecto, le damos enter:
Nos
pide un formato de configuración donde escogeremos annotation,
le damos enter.
Después
nos dice que si generamos una estructura del escritorio, le damos que si (yes)
enter.
Que
si confirmamos la generación si (yes), enter.
A
estos pasos le decimos que si (yes).
Con
esto ya tenemos un directorio creado de trabajo.
Ahora vamos a crear las entidades
que vamos a trabajar, en este caso son: Estudiante y Programa.
Para
ello escribimos el siguiente comando: php
app/console doctrine:generate:entity
Lo
primero que nos dice es que generemos un nombre para la entidad dentro del
directorio de trabajo. Digitamos lo siguiente: AcmeRegistroBundle:Estudiante damos
enter.
Nos
pide el formato: digitamos annotation enter
Luego
nos pide los campos que va a contener esta entidad.
Una
aclaración, symfony por defecto nos crea los id de cada entidad, a si que no
vamos a digitar el id.
Los
campos que vamos a necesitar son lo siguiente: carnet, nombres, apellidos, fechaNacimiento
de tipo date, semestre de tipo integer,
dirección, teléfono, email,observaciones.
Si,
no vamos a agregar mas campos le damos enter, confirmamos (yes), (yes).
Ahora
vamos a crear la entidad, en
este caso: Programa.
Para
ello escribimos el siguiente comando: php
app/console doctrine:generate:entity
Lo
primero que nos dice es que generemos un nombre para la entidad dentro del
directorio de trabajo. Digitamos lo siguiente: AcmeRegistroBundle:Programa damos
enter.
Nos
pide el formato: digitamos annotation enter
Luego
nos pide los campos que va a contener esta entidad.
Una
aclaración, symfony por defecto nos crea los id de cada entidad, a si que no
vamos a digitar el id.
Los
campos que vamos a necesitar son lo siguiente: nombre.
Si
no vamos a agregar mas campos le damos enter, confirmamos (yes), (yes).
El
siguiente paso va ser relacionar las tablas que ya están creadas en el framework
a una base de datos.
Pero
antes de esto utilizaremos el siguiente comando para generar los set y los get
de los campos de cada entidad o tabla:
php app/console doctrine:generate:entities Acme
Ahora
debemos crear una base de datos, por defecto nos crea una DB llamada symfony.
php app/console doctrine:database:créate
Con
esto nos dice que ya tenemos creada una DB.
Lo
podemos verificar en el localhost/phpmyadmin,
en el momento no tiene ninguna tabla.
Ahora
ejecutamos el siguiente comando para crear las tablas:
php app/console doctrine:schema:update –force
Verificamos
Ahora
si ya podemos crear una relación entre las dos tablas, escribimos lo siguiente:
Ya
que symfony trabaja las entidades como una clase.
Podemos
abrir cualquier editor de texto, en la entidad Estudiante digitamos lo
siguiente:
Este
código lo colocamos al final
/**
*@ORM\ManyToOne(targetEntity="Programa",
inversedBy="estudiantes")
*@ORM\JoinColumn(name="programa_id",
referencedColumnName="id")
*/
protected
$programa;
Ahora
digitamos la entidad Programa
/**
*@ORM\OneToMany(targetEntity="Estudiante",
mappedBy="programa")
*/
protected
$estudiantes;
public
function
__construct(){
//$this->estudiantes
= new ArrayCollection();
$this->estudiantes
= new \Doctrine\Common\Collections\ArrayCollection();
}
Ya
hecho esto, ahora vamos a seguir con los siguientes comando que le dimos
anteriormente.
Esto
es para actualizar la base de datos.
Primero
ejecutamos: php
app/console doctrine:schema:update –force
Segundo
ejecutamos: php
app/console doctrine:generate:entities Acme
Ahora
vamos a crear el crud, symfony permite crear el crud por comando, ejecutamos lo
siguiente:
php app/console generate:doctrine:crud
Despues
nos dice que escribamos el nombre de la tabla que vamos a generar el crud.
En
este caso digitamos lo siguiente. AcmeRegistroBundle:Programa
Confirmamos
(yes)
enter, annotation enter
Aquí
damos enter, yes
enter
Ahora
vamos a crear el crud para la entidad Estudiante, ejecutamos lo siguiente:
php app/console generate:doctrine:crud
Despues
nos dice que escribamos el nombre de la tabla que vamos a generar el crud.
En
este caso digitamos lo siguiente. AcmeRegistroBundle:Estudiante
Confirmamos
(yes)
enter, annotation enter
Aquí
damos enter, yes
enter
Ahora
vamos al navegador y escribimos: localhost/registro-estudiante/web/app_dev.php/
Nos
debe de aparecer lo siguiente:
Si
te aparece esto es porque hemos hecho hasta ahora todo bien.
Ahora
nuevamente digitamos en el navegador lo anterior pero le añadimos el nombre de
la entidad, ya sea estudiante o programa.
localhost/registro-estudiante/web/app_dev.php/estudiante/
Debe
de aparecer lo siguiente y le damos clic en créate
a new entry para
agregar un estudiante.
Agregamos
estudiantes, los podemos editar, eliminar.
Ahora
nuevamente digitamos en el navegador lo anterior pero le añadimos el nombre de
la entidad, ya sea estudiante o programa.
localhost/registro-estudiante/web/app_dev.php/programa/
Debe
de aparecer lo siguiente y le damos clic en créate
a new entry para
agregar un programa.
No hay comentarios:
Publicar un comentario