Está en la página 1de 9

CAPTULO

16

64"/%05&.1-"5&
1"34&3

4FBMHVNMIFPGFSFDFVNBPQPSUVOJEBEFJODSWFM NBTWPDOP
UFN DFSUF[B EF RVF QPEF FYFDVUBS  EJHB TJN  F BQSFOEB DPNP GB[FS
EFQPJT3JDIBSE#SBOTPO
/FN UPEP QSPHSBNBEPS GSPOUFOE UFN DPOIFDJNFOUP EF 1)1
-PHP VNBWJFXDPNNVJUPDEJHP1)1GJDBDPNQMFYBQBSBRVFFMF
E NBOVUFOP 0 UFNQMBUF QBSTFS BKVEB B SFEV[JS P WPMVNF EF
DEJHP 1)1 OB WJFX  UPSOBOEPB NBJT MFHWFM QBSB VN
EFTFOWPMWFEPS GSPOUFOE RVF OP FTU GBNJMJBSJ[BEP DPN B
MJOHVBHFN
"USBWT EF BMHVOT CMPDPT EF FYFNQMPT  WPD WBJ BQSFOEFS OFTUF
DBQUVMP DPNP VTBS P UFNQMBUF QBSTFS OBUJWP EP $PEF*HOJUFS 1BSB
JTTP  JOJDJF VN OPWP EJSFUSJP EF FYFNQMP  DPNP GPJ GFJUP OPT
DBQUVMPTBOUFSJPSFT

5FN EWJEBT TPCSF B DSJBP EP EJSFUSJP CBTF QBSB PT


FYFNQMPT 2VFUBMSFGSFTDBSTVBNFNSJBFSFWJTJUBSPDBQUVMP
*OUSPEVPBP$PEF*HOJUFSQBSBSFWJTBSPBTTVOUP

*/530%60
218

16 USANDO TEMPLATE PARSER

0 UFNQMBUF QBSTFS TVCTUJUVJ QBSUF EP DEJHP 1)1 OB WJFX QPS
QTFVEPWBSJWFJT EFOUSP EF {varivel}  DIBWFT
 7FKB B TFHVJS P
DEJHPEFEVBTWJFXTDPNBNFTNBFTUSVUVSBBQSJNFJSBVTBDEJHP
1)1FBTFHVOEBTPNFOUFBTQTFVEPWBSJWFJTEPUFNQMBUFQBSTFS
4FNQTFVEPWBSJWFJT
<html>
<head>
<title><?=$blog_title?></title>
</head>
<body>
<h3><?=blog_heading?></h3>
<?php foreach($blog_entries as $entries) ?>
<h5><?=$entries->title?></h5>
<p><?=$entries->body?></p>
<?php endforeach; ?>
</body>
</html>

$PNQTFVEPWBSJWFJT
<html>
<head>
<title>{blog_title}</title>
</head>
<body>
<h3>{blog_heading}</h3>
{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}
</body>
</html>

$PNQBSBOEPPTEPJTDEJHPT PTFHVOEPFTUCFNNBJT
MFHWFM F DMFBO EP RVF P QSJNFJSP  RVF NJTUVSB DEJHP
1)1 DPN DEJHP )5.- 1PSN  BNCPT WP HFSBS P
NFTNPSFTVMUBEPGJOBMOBUFMBEPVTVSJP

16.1 INTRODUO

219

.FTNP VTBOEP UFNQMBUF QBSTFS  IBWFS TJUVBFT FN RVF TFS


OFDFTTSJPVTBSBMHVNDEJHP1)1OBWJFX QPJTOFN UPEPUJQP EF
MHJDB QPEF TFS GFJUP VTBOEP QTFVEPWBSJWFJT /P I QSPCMFNB
OJTTP NBTCPNVTBSPNOJNPQPTTWFM KRVFBWJFXPMPDBMOP
RVBMEFWFFTUBSBQFOBTPDEJHP)5.-5PEBBQBSUFEFUSBUBNFOUP
EPTEBEPTEFWFTFSGFJUBOPDPOUSPMMFSFOPNPEFM QPSVNBRVFTUP
EFCPBTQSUJDBT

*/*$*"-*;"/%0"-*#3"3:
" JOJDJBMJ[BP EB MJCSBSZ 5FNQMBUF 1BSTFS  GFJUB EB NFTNB
GPSNB DPNP BT PVUSBT MJCSBSJFT 0V TFKB  QPEF TFS GFJUB UBOUP OP
BVUPMPBERVBOUPOPDPOUSPMMFS BOUFTEFTFVVTP
(FSBMNFOUF VTBTFUFNQMBUFQBSTFSQBSBPQSPKFUPFNVNUPEP
F OP TPNFOUF FN BMHVNBT WJFXT &OUP  EFOUSP EFTTF DFOSJP 
JEFBM RVF B JOJDJBMJ[BP TFKB GFJUB OP BSRVJWP
application/config/autoload.php 
$autoload['libraries'] = array('parser');

 "1-*$"/%0 0 5&.1-"5& 1"34&3 /"


7*&8
"CSB B WJFX welcome_messenger.php  EB CBTF QBESP RVF
FTUBNPT VUJMJ[BOEP QBSB P FYFNQMP  F BMUFSF BT MJOIBT EF DEJHP
DPOGPSNFNPTUSBEPBTFHVJS
<title>Welcome to CodeIgniter</title> 

 <title>

{page_title}</title>
<h1>Welcome

to

CodeIgniter!</h1>

  <h1>

{content_title}</h1>

3FNPWB P DPOUFEP RVF FTU EFOUSP EF <div id="body">...


220

16.2 INICIALIZANDO A LIBRARY

</div> FDPMPRVFPTFHVJOUFDPOUFEP
{list_entries}
<p>- <strong>{name}</strong> - {email}</p>
{/list_entries}

0DPOUFEPBEJDJPOBEPBPCMPDP <div id="body">...</div>


WBJFYJCJSVNBMJTUBEFOPNFTFFNBJMT
"PTVCTUJUVJSPDPOUFEPEFUFYUPEBWJFXQFMBTQTFVEPWBSJWFJT
FOUSF DIBWFT {}
 WPD FTU GB[FOEP DPN RVF P DPOUFEP B TFS
FYJCJEP EFQFOEB EF WBMPSFT EFGJOJEPT OP DPOUSPMMFS &TTFT WBMPSFT
TFSPFOWJBEPTQBSBBWJFXDPOGPSNFPGMVYPEFPQFSBPEP.7$
0VTFKB PDPOUFEPEBWJFXQBTTBBTFSEJONJDP NBTTFNPVTPEF
TIPSUUBHTFWBSJWFJTEP1)1
$PNBWJFXSFFTDSJUB IPSBEFBUVBMJ[BSPDPOUSPMMFS

 $)"."/%0 0 5&.1-"5& 1"34&3 /0


$0/530--&3
2VBOEPVUJMJ[BNPTPUFNQMBUFQBSTFS EFWFNPTDIBNBSPTTFVT
NUPEPTQBSBFYJCJPEBWJFX FOPPNUPEPQBESPRVFVTBNPT
BU P NPNFOUP $this->load->view()  *TTP  OFDFTTSJP QPJT P
$this->load->view()  OP  DBQB[ EF TVCTUJUVJS BT
QTFVEPWBSJWFJTQFMPTTFVTWBMPSFTSFBJT
"CSB P DPOUSPMMFS Welcome.php  F TVCTUJUVB P $this->load>view('welcome_message');
 QPS $this->parser>parse('welcome_message'); &NTFHVJEB BCSBOPCSPXTFSQBSB
WFSPSFTVMUBEP
7PD WFS RVF BT QTFVEPWBSJWFJT GPSBN JNQSFTTBT OB UFMB
NFTNP UFOEP DIBNBEP P NUPEP $this->parser>parse('welcome_message');  QBSB GB[FS B SFOEFSJ[BP EB WJFX
*TTP BDPOUFDFV QPSRVF PT WBMPSFT EBT QTFVEPWBSJWFJT OP GPSBN
16.4 CHAMANDO O TEMPLATE PARSER NO CONTROLLER

221

EFGJOJEPT 4FNQSF RVF VNB QTFVEPWBSJWFM OP UJWFS TFV WBMPS


EFGJOJEP FMBTFSFYJCJEBEFOUSPEBTDIBWFT

4FBFYJCJPEFFSSPTFTUJWFSIBCJMJUBEB TFSPFYJCJEPTBMHVOT
XBSOJOHTQPSDPOUBEBGBMUBEBTQTFVEPWBSJWFJT

1BSB SFTPMWFS JTTP  WBNPT DSJBS VNB WBSJWFM EP UJQP array
DPOUFOEP BT JOGPSNBFT RVF QSFDJTBNPT FYJCJS OB WJFX  F QBTTBS
DPNP TFHVOEP QBSNFUSP QBSB P NUPEP $this->parser>parse() 
public function index()
{
$data = array(
'page_title' => 'Usando template parser',
'content_title' => 'Nomes e Emails',
'list_entries' => array(
array('name' => 'User 1', 'email' => 'user@mail.com'),
array('name' => 'User 2', 'email' => 'user_2@mail.com'),
array('name' => 'User 3', 'email' => 'user_3@mail.com'),
array('name' => 'User 4', 'email' => 'user_4@mail.com')
)
);
$this->parser->parse('welcome_message',$data);
}

"UVBMJ[F B KBOFMB EP CSPXTFS F WFKB RVF BHPSB FTUP TFOEP


FYJCJEPT PT WBMPSFT OP MVHBS EBT QTFVEPWBSJWFJT 7FKB RVF  QBSB
list_entries GPJBTTPDJBEPVNOPWP array DPOUFOUPBMJTUBEF
OPNFTFFNBJMTBTFSFNFYJCJEPT
&N VNB BQMJDBP RVF GB[ VTP EF CBODP EF EBEPT QBSB PCUFS
MJTUBT EF SFHJTUSPT   QPTTWFM BTTPDJBS PT EBEPT SFUPSOBEPT QFMB
DPOTVMUBEJSFUBNFOUFWBSJWFM FVUJMJ[BSPOPNFEPTDBNQPTDPNP
BTQTFVEPWBSJWFJTEBWJFX4FSJBBMHPDPNP QPSFYFNQMP
$query = $this->db->query("SELECT * FROM users");
$data = array(
222

16.4 CHAMANDO O TEMPLATE PARSER NO CONTROLLER

'page_title' => 'Usando template parser',


'content_title' => 'Nomes e Emails',
'list_entries' => $query->result_array()
)
);

4F WPD SFQBSBS CFN FOUSF P FYFNQMP NPTUSBEP OB JOUSPEVP


EFTUF DBQUVMP  UFNPT VNB QTFVEPWBSJWFM {blog_entries}  RVF
TVCTUJUVJP foreach EP1)1/POPTTPFYFNQMP UBNCNVTBNPT
VNB QBSB SFOEFSJ[BP EB MJTUB  TVCTUJUVJOEP BTTJN P foreach  B
QTFVEPWBSJWFMVTBEBGPJ {list_entries}...{/list_entries}

4FWPDDIBNBSVNBQTFVEPWBSJWFMOBWJFX  NBT
FMB OP UJWFS TJEP QBTTBEB OP array  B
SFOEFSJ[BP TFS EB QTFVEPWBSJWFM F OP EP
DPOUFEP
4F WPD QBTTBS VN WBMPS OP array  NBT OP
DIBNBS B QTFVEPWBSJWFM OB WJFX  OFOIVN FSSP
PDPSSFS

64"/%005&.1-"5&1"34&1"3"6."
453*/(
&YJTUFQPTTJCJMJEBEFEFWPDVUJMJ[BSPUFNQMBUFQBSTFSQBSBVNB
TUSJOH EFOUSP EP DPOUSPMMFS  F DBSSFHBS B WJFX UBNCN VTBOEP P
UFNQMBUF QBSTFS 1BSB JTTP TFS QPTTWFM  WPD VUJMJ[B P NUPEP
$this->parser->parse_string()  RVF  DBQB[ EF SFOEFSJ[BS
VNBTUSJOHTFNFYJCJSQBSBPVTVSJPBQTBDPODMVTPEPQSPDFTTP
7PMUFBPDPOUSPMFS Welcome.php F OPNUPEP index() BOUFT
EF SFOEFSJ[BS B WJFX  BEJDJPOF P DEJHP B TFHVJS $PN FMF  WBNPT
SFOEFSJ[BS VNB PVUSB MJTUB EF OPNFT F FNBJMT  NBT EFTUB WF[ TFN
FYFDVUBS P MPPQ EF SFOEFSJ[BP OB WJFX 'BSFNPT JTTP EFOUSP EP
DPOUSPMMFS  F FOWJBSFNPT QBSB B WJFX TPNFOUF B string  DPN P
16.5 USANDO O TEMPLATE PARSE PARA UMA STRING

223

DPOUFEPDPNQMFUPEBMJTUB JODMVTJWFP)5.-
public function index()
{
$data = array(
'page_title' => 'Usando template parser',
'content_title' => 'Nomes e Emails',
'list_entries' => array(
array('name' => 'User 1', 'email' => 'user@mail.com'),
array('name' => 'User 2', 'email' => 'user_2@mail.com'),
array('name' => 'User 3', 'email' => 'user_3@mail.com'),
array('name' => 'User 4', 'email' => 'user_4@mail.com')
)
);
$nouser_list_template = "<li>{name} - {email}</li>";
$nousers = array(
array('name' => 'No User 1', 'email' => 'no_user@mail.com'),
array('name' => 'No User 2', 'email' => 'no_user_2@mail.com'),
array('name' => 'No User 3', 'email' => 'no_user_3@mail.com'),
array('name' => 'No User 4', 'email' => 'no_user_4@mail.com')
);
$base_list = "<ul>";
foreach ($nousers as $user)
{
$base_list .= $this->parser->parse_string($nouser_list_templat
e, $user, TRUE);
}
$base_list .= "</ul>";
$data["no_users"] = $base_list;
$data["no_users_title"] = 'No Usurios';
$this->parser->parse('welcome_message',$data);
}

'PJ DSJBEB VNB WBSJWFM $nouser_list_template  RVF SFDFCF


DPNP DPOUFEP VNB TUSJOH DPOUFOEP VNB QTFVEPWBSJWFM  VNB
WBSJWFM $nousers RVFSFDFCFVN array DPNBMJTUBEPTOPNFTF
FNBJMT FVN foreach RVFGB[BJOUFSBPOBMJTUBEFOPNFTFF
NBJMTEBWBSJWFM $nousers 
%FOUSPEP foreach   DIBNBEP P NUPEP $this->parser>parse_string($nouser_list_template, $user, TRUE)  DPN
224

16.5 USANDO O TEMPLATE PARSE PARA UMA STRING

USTQBSNFUSPT
1SJNFJSPPUFNQMBUFBTFSSFOEFSJ[BEP RVFOFTTFDBTP
 VNB TUSJOH F OP VN BSRVJWP GTJDP EP EJSFUSJP
application/views

4FHVOEPBTJOGPSNBFTEPVTVSJPQBSBBTVCTUJUVJP
EBT QTFVEPWBSJWFJT OP UFNQMBUF QBTTBEP OP QSJNFJSP
QBSNFUSP
5FSDFJSP PQDJPOBM
GPJTFUBEPDPNP TRUE QBSBRVFP
DPOUFEP EP UFNQMBUF  EFQPJT EF SFOEFSJ[BEP  GPTTF
SFUPSOBEPQBSBBWBSJWFMFNWF[EFFYJCJSEJSFUBNFOUF
OB UFMB 4F UJWFTTF TJEP TFUBEP DPNP FALSE  TFSJB
JNQSFTTPOBUFMBPSFTVMUBEPEBSFOEFSJ[BP
/B WJFX  BUVBMJ[F P DPOUFEP EP CMPDP <div id="body">...
</div> DPOGPSNFPDEJHP
{list_entries}
<p>- <strong>{name}</strong> - {email}</p>
{/list_entries}
<hr/>
<h2>{no_users_title}</h2>
{no_users}

$PN FTTB BUVBMJ[BP  QBTTBSFNPT B NPTUSBS VNB OPWB MJTUB


.BT  EFTTB WF[  FN WF[ EF FYFDVUBS OB WJFX P MPPQ QBSB FYJCJS PT
JUFOTEBMJTUB GB[FNPTPMPPQOPDPOUSPMMFSFNBOEBNPTQBSBBMJTUBP
DPOUFEPQSPOUPQBSBTFSFYJCJEP"UVBMJ[FBKBOFMBEPCSPXTFSQBSB
WFSJGJDBSPSFTVMUBEP
/P I NJTUSJP FN TF USBCBMIBS DPN UFNQMBUF QBSTFS  QPJT FMF
OBEB NBJT  EP RVF VNB GPSNB NBJT BNJHWFM EF FTDSFWFS BT
WBSJWFJTOBWJFX

16.5 USANDO O TEMPLATE PARSE PARA UMA STRING

225

$0/$-640
/FTUFDBQUVMP WPDWJVVNBGPSNBTJNQMFTEFSFEV[JSPWPMVNF
EF DEJHP 1)1 OB WJFX QPS NFJP EP VTP EBT QTFVEPWBSJWFJT EP
UFNQMBUF QBSTFS "RVJ GPJ BQSFTFOUBEP P QBSTFS OBUJWP EP $*  NBT
FYJTUFN WSJPT PVUSPT DPNP P 4NBSU  QPS FYFNQMP
 EJTQPOWFJT F
DPNQBUWFJTDPN1)1F$PEF*HOJUFS

$EJHPGPOUF
'BB P EPXOMPBE EP DEJHPGPOUF DPNQMFUP EFTTF FYFNQMP OP
MJOL
IUUQTHJUIVCDPNKMBNJNMJWSPDPEFJHOJUFSUSFFNBTUFS$"1
VTBOEPUFNQMBUFQBSTFS

-JOLTUFJT
%PDVNFOUBP PGJDJBM TPCSF B MJCSBSZ 5FNQMBUF
1BSTFT
IUUQXXXDPEFJHOJUFSDPNVTFS@HVJEFMJCSBSJFTQBSTF
SIUNM

226

16.6 CONCLUSO

También podría gustarte