Está en la página 1de 19

...

UN PRIMER PROYECTO EN SYMFONY2

PRIMER PROYECTO EN SYMFONY2

SYMFONY2

dpcesar@gmail.com
Version00021211

CSAR HERNNDEZ

...UN PRIMER PROYECTO EN SYMFONY2

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

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR

ANTESDECOMENZARCONSYMFONY2
Susistemaoperativodebecumplirconlossiguientesrequerimientosbasicos

Apache

(esunservidorweb)

PuedeutilizarelApacheocualquierotroservidorwebdesupreferenciaquesoportePHP

PHP5.3.x (lenguajedeprogramacin)
VersionesanterioresdePHPnocontienenalgunasfuncionesquesonutilizadasSymfony2

GIT MySQL

(Esunsistemadecontroldeversiones) (Esunservidordebasededatos)

ElGITesnecesarioparadescargarlaltimaversinylamasactualizadadeSymfony2

Esrequeridoparaelejemploadesarrollarenestedocumento

...UN PRIMER PROYECTO EN SYMFONY2

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

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR

NOTASDECONFIGURACIN
PuedeclonaratravsdelGITotrosrepositoriosimportantesdelSf2 comosudocumentacin Paravertodosrepositoriosoficialesdelproyectovisite http://github.com/symfony

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR

1.PROBARLAINSTALACINSYMFONY2
http://localhost/proyectossf2/web/app_dev.php

2.CHEQUEARELENTORNODETRABAJOSF2
http://localhost/proyectossf2/web/check.php

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR

VamoscrearelbundleMiEjemplo
Estaserunaaplicacinquemostrarunsimplelistadocondositem Losobjetivos: Familiarizar al programador con algunas de las particularidades de Symfony2 como por ejemplolaestructurabasicadeunbundle ConfigurarelEntornodetrabajo,crearlosarchivosbasicosdelmodelovistacontrolador ConectarseaunabasededatosycrearunatablausandoenDoctrine2 Cargaralgunosdatosinicialesalabasedatos Ysitodosalebien...mostrarunapaginaenelnavegador!

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR

CrearelbundleMiEjemplo
CreareldirectoriodelBundle
mkdirpsrc/Application/MiEjemploBundle

CrearyeditarelarchivoMiEjemploBundle.php
src/Application/MiEjemploBundle/MiEjemploBundle.php

Agregeelsiguientecdigo
<?php namespaceApplication\MiEjemploBundle; useSymfony\Component\HttpKernel\Bundle\Bundle; classMiEjemploBundleextendsBundle { }

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR

RegistrarelbundleenAppKernel.php
app/AppKernel.php

DentrodelarchivoAppKernel.phpexisteunafuncinllamadaRegisterBundles EnestafuncinestadefinidounarreglodeBundles LosvaloresconlosqueseinicializaesearreglodeBundles, estanseparadosensecciones,demarcadasporcomentarios Ahorahayqueubicarelcomentario //RegisteryourBundles


Yregistrarelbundlequeacabamosdecrear,agregandoelsiguientecodigo newApplication\MiEjemploBundle\MiEjemploBundle(),

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR

DefinicindelastablasdelaBasedeDatos ElmodeloentidadrelacinsedetallaeneldirectorioEntitydelBundle Pordefecto,eldirectorioEntitynoexiste...

CreeeldirectorioEntity
mkdirpsrc/Application/MiEjemploBundle/Entity

Esteesunejemplobsicodela entidadquedefiniremosenla siguientelamina

<?php namespaceApplication\MiEjemploBundle\Entity; classMiEjemplo { protected$id; public$title; public$body; }

Nota: Ladefinicindelasestructurasdelasdiferentestabasdelabasededatosdesuaplicacinson partedelmodelo(estodentrodelconcepto:modelovistacontrolador)

...UN PRIMER PROYECTO EN SYMFONY2

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

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR

Continuamospreparandoelmodelo
CreareldirectoriodelaEntidad(es)
mkdirpsrc/Application/MiEjemploBundle/DataFixtures/ORM

CrearyeditarelarchivoMiEjemplo.php
src/Application/MiEjemploBundle/DataFixtures/ORM/MiEjemplo.php

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR Continuamospreparandoelmodelo Agregeelsiguientecdigo


<?php namespaceApplication\MiEjemploBundle\DataFixtures\ORM; useDoctrine\ORM\EntityManager, Doctrine\Common\DataFixtures\FixtureInterface, Application\MiEjemploBundle\Entity\MiEjemplo; classLoadEjemplosimplementsFixtureInterface { publicfunctionload($em) { $MiEjemplo1=newMiEjemplo(); $MiEjemplo1>setTitle('CesarHernandez'); $MiEjemplo1>setBody('Ing.DeSistemas,graduadoenlaUniversidadBicentenariadeAragua'); $em>persist($MiEjemplo1); $MiEjemplo2=newMiEjemplo(); $MiEjemplo2>setTitle('SebastianHernandez'); $MiEjemplo2>setBody('EstudiantedeMaternal,nacidoenLecheria,EstadoAnzotegui'); $em>persist($MiEjemplo2); $em>flush(); } }

...UN PRIMER PROYECTO EN SYMFONY2

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:~

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR
Ejecutelossiguientescomandos

phpapp/consoledoctrine:database:create phpapp/consoledoctrine:schema:create phpapp/consoledoctrine:generate:entities phpapp/consoledoctrine:data:load

...UN PRIMER PROYECTO EN SYMFONY2

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>

...UN PRIMER PROYECTO EN SYMFONY2

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)); } }

...UN PRIMER PROYECTO EN SYMFONY2

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

...UN PRIMER PROYECTO EN SYMFONY2

CONFIGURACIN MODELOVISTACONTROLADOR

LimpiamoselcachedeSymfony2
Ejecutandoenlaconsoladelsistemaoperativo

rmrfapp/cache/*

Sitodosaliobien,probamoselbundle ennuestronavegador
http://localhost/proyectossf2/web/app_dev.php/MiEjemplo

También podría gustarte