Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SYMFONY2
dpcesar@gmail.com
Version00021211
CSAR HERNNDEZ
Resumen(Abstract): Este papel de trabajo, en formato de presentacin, tienecomoobjetivos:aclararunpocoalgoacercala teoriadesistemasutilizadaen Symfony2;ycrearun ;y proyecto sencillo que adiestre al nuevo programador acercadeestaversindelframeworkdesymfony.
ParahacerreferenciaaSymfony2seutilizaraelacronimoSf2.
PalabrasClaves:framework,symfony,symfony2,sf2,bundle,php
CONFIGURACIN MODELOVISTACONTROLADOR
ANTESDECOMENZARCONSYMFONY2
Susistemaoperativodebecumplirconlossiguientesrequerimientosbasicos
Apache
(esunservidorweb)
PuedeutilizarelApacheocualquierotroservidorwebdesupreferenciaquesoportePHP
PHP5.3.x (lenguajedeprogramacin)
VersionesanterioresdePHPnocontienenalgunasfuncionesquesonutilizadasSymfony2
GIT MySQL
(Esunsistemadecontroldeversiones) (Esunservidordebasededatos)
ElGITesnecesarioparadescargarlaltimaversinylamasactualizadadeSymfony2
Esrequeridoparaelejemploadesarrollarenestedocumento
CONFIGURACIN MODELOVISTACONTROLADOR
CREARUNACARPETAPARALOSPROYECTOS
ENESTACARPETAESTARANTODOSNUESTROSBUNDLES,PROYECTOS,APLICACIONESYPRUEBAS
Definirelnombredenuestracarpetadeproyectos
paraesteejemplovamosautilizarelnombreproyectossf2
Ubicarseenlacarpetadeejecucindelservidorweb
Lacarpetadeproyectosdebeestarunarutaconpermisosdeejecucin Usualmenteen:linux/var/wwwoenwindowsc:/inetpub/web Acontinuacinejecutamoselsiguientecomando
gitclonehttps://github.com/symfony/symfonysandbox.gitproyectossf2
estecomandocrearalacarpetaproyectossf2y deformaautomaticasedescargarlaltimaversinylamasactualizada delframeworksymfony2
CONFIGURACIN MODELOVISTACONTROLADOR
NOTASDECONFIGURACIN
PuedeclonaratravsdelGITotrosrepositoriosimportantesdelSf2 comosudocumentacin Paravertodosrepositoriosoficialesdelproyectovisite http://github.com/symfony
CONFIGURACIN MODELOVISTACONTROLADOR
1.PROBARLAINSTALACINSYMFONY2
http://localhost/proyectossf2/web/app_dev.php
2.CHEQUEARELENTORNODETRABAJOSF2
http://localhost/proyectossf2/web/check.php
CONFIGURACIN MODELOVISTACONTROLADOR
VamoscrearelbundleMiEjemplo
Estaserunaaplicacinquemostrarunsimplelistadocondositem Losobjetivos: Familiarizar al programador con algunas de las particularidades de Symfony2 como por ejemplolaestructurabasicadeunbundle ConfigurarelEntornodetrabajo,crearlosarchivosbasicosdelmodelovistacontrolador ConectarseaunabasededatosycrearunatablausandoenDoctrine2 Cargaralgunosdatosinicialesalabasedatos Ysitodosalebien...mostrarunapaginaenelnavegador!
CONFIGURACIN MODELOVISTACONTROLADOR
CrearelbundleMiEjemplo
CreareldirectoriodelBundle
mkdirpsrc/Application/MiEjemploBundle
CrearyeditarelarchivoMiEjemploBundle.php
src/Application/MiEjemploBundle/MiEjemploBundle.php
Agregeelsiguientecdigo
<?php namespaceApplication\MiEjemploBundle; useSymfony\Component\HttpKernel\Bundle\Bundle; classMiEjemploBundleextendsBundle { }
CONFIGURACIN MODELOVISTACONTROLADOR
RegistrarelbundleenAppKernel.php
app/AppKernel.php
CONFIGURACIN MODELOVISTACONTROLADOR
CreeeldirectorioEntity
mkdirpsrc/Application/MiEjemploBundle/Entity
Prepararelmodelo
CreeeldirectoriodelaEntidad
mkdirsrc/Application/MiEjemploBundle/Entity
<?php
CONFIGURACIN MODELOVISTACONTROLADOR
namespaceApplication\MiEjemploBundle\Entity; /** *@orm:Entity */ classMiEjemplo { /** *@orm:Id *@orm:Column(type="integer") *@orm:GeneratedValue(strategy="IDENTITY") */ protected$id; /** *@orm:Column(type="string") *@orm:Column(length="255") */ private$title; /** *@orm:Column(type="string") *@orm:Column(length="255") */ private$body; }
EditeelarchivoMiEjemplo.php
src/Application/MiEjemploBundle/Entity/MiEjemplo.php
Agregeel siguientecdigo
CONFIGURACIN MODELOVISTACONTROLADOR
Continuamospreparandoelmodelo
CreareldirectoriodelaEntidad(es)
mkdirpsrc/Application/MiEjemploBundle/DataFixtures/ORM
CrearyeditarelarchivoMiEjemplo.php
src/Application/MiEjemploBundle/DataFixtures/ORM/MiEjemplo.php
CONFIGURACIN MODELOVISTACONTROLADOR
Finalizamoslapreparacindelmodelo
CreacindelaBasedeDatos
EditeelarchivoConfig.yml
app/config/config.yml
##DoctrineConfiguration #doctrine.dbal: #dbname:xxxxxxxx #user:xxxxxxxx #password:~ #doctrine.orm: #auto_generate_proxy_classes:%kernel.debug% #mappings: #HelloBundle:~
Alliencontrarelsiguientecdigo>
Actualiceloasi>
#DoctrineConfiguration doctrine.dbal: dbname:MiEjemplo user:root password:root doctrine.orm: auto_generate_proxy_classes:%kernel.debug% mappings: MiEjemploBundle:~ HelloBundle:~
CONFIGURACIN MODELOVISTACONTROLADOR
Ejecutelossiguientescomandos
CONFIGURACIN MODELOVISTACONTROLADOR
LaVista
Creareldirectoriodelavista
mkdirpsrc/Application/MiEjemploBundle/Resources/views/MiEjemplo/
Crearyeditarelarchivoindex.php
src/Application/MiEjemploBundle/Resources/Resources/views/MiEjemplo/index.php
<?php$view>extend('::layout.php')?> <h1>MiEjemplo</h1> <ulclass='MiEjemplo'> <?phpforeach($MiEjemploas$MiEjemplo):?> <li> <h2><?phpecho$MiEjemplo>GetTitle();?></h2> <p><?phpecho$MiEjemplo>GetBody();?></p> </li> <?phpendforeach;?> </ul>
CONFIGURACIN MODELOVISTACONTROLADOR
ElControlador
CreareldirectoriodelControlador
mkdirpsrc/Application/MiEjemploBundle/Controller
CrearyeditarelarchivoMiEjemploController.php
src/Application/MiEjemploBundle/Controller/MiEjemploController.php
<?php namespaceApplication\MiEjemploBundle\Controller; useSymfony\Bundle\FrameworkBundle\Controller\Controller; classMiEjemploControllerextendsController { publicfunctionindexAction() { $em=$this>container>get('doctrine.orm.entity_manager'); $MiEjemplo=$em>createQuery('SELECTbFROMApplication\MiEjemploBundle\Entity\MiEjemplobORDERBYb.bodyDESC')>execute(); return$this>render('MiEjemploBundle:MiEjemplo:index.php',array('MiEjemplo'=>$MiEjemplo)); } }
CONFIGURACIN MODELOVISTACONTROLADOR
TerminandolaconfiguracindelavistaElRouting CreareldirectoriodeconfiguracindelavistadelBundle
mkdirpsrc/Application/MiEjemploBundle/Resources/config/
Crearyeditarelarchivorouting.yml
mkdirpsrc/Application/MiEjemploBundle/Resources/config/routing.yml
MiEjemplo: pattern:/MiEjemplo defaults:{_controller:MiEjemploBundle:MiEjemplo:index}
Integramoselrouting.ymldelbundlealarchivo routing.ymlprincipaldelSf2
geditapp/config/routing.yml
MiEjemplo: resource:MiEjemploBundle/Resources/config/routing.yml
CONFIGURACIN MODELOVISTACONTROLADOR
LimpiamoselcachedeSymfony2
Ejecutandoenlaconsoladelsistemaoperativo
rmrfapp/cache/*
Sitodosaliobien,probamoselbundle ennuestronavegador
http://localhost/proyectossf2/web/app_dev.php/MiEjemplo