slideyii
-
Upload
pauloidelfonso -
Category
Documents
-
view
220 -
download
0
Transcript of slideyii
-
8/14/2019 slideyii
1/48
Iniciando com YII Framework
Volmar Machado da Silva Neto
-
8/14/2019 slideyii
2/48
Linguagem Dinamica
Linguagem com foco em desenvolvimento Web
- Velocidade e robustez
- Estruturado e orientado a objetos
- ortabilidade
- !i"agem dinamica
- Sinta#e similar ao $%$&& e erl
- '"en-source
PHP: Linguagem, aplicabilidades, porque php?
-
8/14/2019 slideyii
3/48
' ( tem muitas bibliotecas)
E#* S'+, ML, D'M, Stream, D' etc)))
!em uma comunidade gigantesca)
E#) Listas, gru"os, foruns, em"resas)
+tualiza./es constantes)
Documenta.0o)
Estatisticas
Linguagem Sites Porcentagem
PHP 3.9984.25 59%
ASP.NET 2.294.166 34%Perl 259.931 4%
Python 159.475 2%
PHP: Linguagem, aplicabilidades, porque php?
-
8/14/2019 slideyii
4/48
1 usado "or muitas em"resas de sites institucionais, a a"lica./esde intranet e e#tranet) !emos como e#em"lo, faceboo2, milharesde sites e blogs com 3ord"ress, temos ainda outros 4ue usam
joomla e dru"al, e tamb5m 6ii frame3or2)
PHP: Linguagem, aplicabilidades, porque php?
file:///C:/Users/Internet/Desktop/drupal.jpeg
file:///C:/Users/Internet/Desktop/joomla.jpeg
file:///C:/Users/Internet/Desktop/images.jpg
file:///C:/Users/Internet/Desktop/magento.jpg
-
8/14/2019 slideyii
5/48
YII Framework
' nome 6ii re"resenta as "alavras f7cil 8eas9:, e;ciente 8ef;cient: ee#tensdigos)
+celera.0o signi;cativa do "rocesso de desenvolvimento)
' 6ii 5 um frame3or2 de "rograma.0o Web gen5rico)$aching "ara o desenvolvimento de a"lica./es com alto tr7fego de dados)
$omo a maioria dos frame3or2s (, ' 6ii 5 um frame3or2 MV$)
E;ciente, rico em recursos e bem documentado)
' 6ii 5 n0o 5 nem um sub"roduto de algum "rojeto, nem um conglomeradode trabalho de terceiros)
-
8/14/2019 slideyii
6/48
htt"*%%nomedoservidor%caminho%do%9ii%re4uirements%inde#)"h"
-
8/14/2019 slideyii
7/48
YII Framework: Estrutura
-
8/14/2019 slideyii
8/48
YII Framework: Logica
-
8/14/2019 slideyii
9/48
YII Framework: !"
Modelo-Vis0o-$ontrole
' 6ii im"lementa o "adr0o de desenvolvimento modelo-vis0o-controle 8MV$:4ue 5 am"lamente adotado na "rograma.0o Web) ' MV$ visa se"arar a l>gicade neg>cio da interface com o usu7rio, assim os "rogramadores "odem mudarfacilmente cada "arte, sem afetar as outras) No "adr0o MV$, o modelo
re"resenta as informa./es 8os dados: e as regras de neg>cio, a vis0o cont5melemento de interface com o usu7rio, como te#tos, formul7rios, e o controlegerencia a comunica.0o entre o modelo e a vis0o) +l5m MV$, o 6ii tamb5mintroduz um controle de frente, chamado a"lica.0o 8a""lication:, 4ue re"resentao conte#to de e#ecu.0o dos "rocessos re4uisitados) + a"lica.0o recebe asolicita.0o do usu7rio e a envia "ara um controlador ade4uado "ara ser"rocessada)
-
8/14/2019 slideyii
10/48
YII Framework: Logica
-
8/14/2019 slideyii
11/48
YII Framework: YII"
? cd Web=oot? "h" 6ii=oot%frame3or2%9iic)"h" 3eba"" nomea""
@erramenta de linha de comando "ara automa.0o
comandos*- controller- crud- form- hel"
- model- module
-
8/14/2019 slideyii
12/48
YII Framework: YII"
$reate a Web a""lication under A%Webroot%nomea""B C6esNo
6es
m2dir %Web=oot%nomea""
m2dir %Web=oot%nomea""%assets
m2dir %Web=oot%nomea""%css
generate css%bg)gif
generate css%form)css
generate css%main)css)))
-
8/14/2019 slideyii
13/48
e#em"lo%
inde#)"h" Scri"t Fnico de entrada da a"lica.0o inde#-test)"h" Scri"t de entrada "ara testes funcionais assets% +r4uivos de recurso "ublicados css% @olhas de estilo images% Diretorio de imagens themes% !emas da a"lica.0o
"rotected% Diretorio "rotegido dos ar4uivos de a"lica.0o com"onents% $om"onentes reusaveis da a"lica.0o $ontroller)"h" $lasse base "ara as controllers GserHdentit9)"h" $lasse usada "ara autentica.0o config% Diretorio de configura.0o da a"lica.0o console)"h" $onfigura.0o do console da a"lica.0o main)"h" $onfigura.0o da a"lica.0o 3eb test)"h" $onfigura.0o "ara os testes funcionais controllers% Diretorio das controllers da a"lica.0o Site$ontroller)"h" $ontroller "adr0o
YII Framework: Estrutra de diretorio da aplica#$o
-
8/14/2019 slideyii
14/48
e#tensions% $ontem e#tens/es de terceiros messages% Mensagens traduzidas models% Diretorio de Modelos Login@orm)"h" Modelo de formulario "ara action AloginA $ontact@orm)"h" Modelo de formulario "ara a action AcontactA runtime% +r4uivos tem"orarios tests% Scri"ts de teste vie3s% +r4uivos de a"resenta.0o e la9out la9outs% La9out de a"resenta.0o
main)"h" La9out base da a"lica.0o columnI)"h" La9out "ara "aginas com uma coluna columnJ)"h" La9out "ara "aginas com duas colunas site% +"resenta.0o "ara a controller Site "ages% aginas AestaticasA about)"h" +"resenta.0o "ara a action AaboutA
contact)"h" +"resenta.0o "ara a action AcontactA error)"h" +"resenta.0o "ara a action AerrorA inde#)"h" +"resenta.0o "ara a action Ainde#A login)"h" +"resenta.0o "ara a action AloginA
YII Framework: Estrutra de diretorio da aplica#$o
-
8/14/2019 slideyii
15/48
-
8/14/2019 slideyii
16/48
'modules')arra&(// uncomment the following to ena$le the 6ii tool'gii' )arra&(
'class' ) 's&stem%gii%6ii7odule','password' ) '89;=',
'ipilters' ) false,,
,
// application components'components')arra&(
'user')arra&(// ena$le coo*ie-$ased authentication'allowAuto.ogin')true,
,// uncomment the following to ena$le >1.s in path-format/4'url7anager')arra&(
'urlormat')'path','rules')arra&(
'
-
8/14/2019 slideyii
17/48
// uncomment the following to use a 7&2C. data$ase'd$')arra&(
'connection2tring' ) 'm&sBl:host8D%D%8%8D!d$nameo+sul','emulatePrepare' ) true,
'username' ) 'd$user','password' ) '89;','charset' ) 'utfE',
,
'errorFandler')arra&( 'errorAction')'site/error', ,
'log')arra&(
'class')'.og1outer','routes')arra&(
arra&('class')'ile.og1oute','leels')'error, warning',
,arra&(
'class')'#e$.og1oute',,
,,,
'params')arra&(// this is used in contact page'adminmail')'we$masterGpampa%com%$r
',,
!
YII Framework: "on%igura#$o
mailto:'[email protected]:'[email protected] -
8/14/2019 slideyii
18/48
YII Framework: &cript de entrada
-
8/14/2019 slideyii
19/48
YII Framework: "iclo de 'ida da aplica#$o
I) r5-inicia a a"lica.0o com o m5todo $+""lication**"reinit8:KJ) $onfigura as o auto-carregamento de classes 8autoloader: e otratamento de errosK) =egistra os "rinci"ais com"onentes da a"lica.0oK) $arrega as configura./es da a"lica.0oK) Hnicia a a"lica.0o com o $+""lication**init8:*
I) =egistra os com"ortamentos 8behaviors: da a"lica.0oKJ) $arrega os com"onentes est7ticos da a"lica.0oKO) Dis"ara o evento onPegin=e4uest 8no in
-
8/14/2019 slideyii
20/48
YII Framework: (II
-
8/14/2019 slideyii
21/48
YII Framework: (II
-
8/14/2019 slideyii
22/48
YII Framework: (II
-
8/14/2019 slideyii
23/48
YII Framework: (II
-
8/14/2019 slideyii
24/48
YII Framework: (II
-
8/14/2019 slideyii
25/48
YII Framework: "ontroller
class Lemploontroller eLtends ontrollerM
pu$lic function ++construct(Hid M
Hthis-)la&out 'colunm8'!parent::++construct(Hid!
N
pu$lic function actionAction8(MHthis-)render('action8'!N
pu$lic function actionAction9(MHthis-)render('action9'!N
pu$lic function actionAction(MHthis-)render('action'!
N
pu$lic function actionndeL(MHthis-)render('indeL'!N
N
-
8/14/2019 slideyii
26/48
// >ncomment the following methods and oerride them if needed/4
pu$lic function filters(M// return the filter configuration for this controller, e%g%:return arra&('inlineilterame',arra&('class')'path%to%ilterlass','propert&ame')'propert&Kalue',,
!N
pu$lic function actions(M// return eLternal action classes, e%g%:return arra&('action8')'path%to%Actionlass','action9')arra&('class')'path%to%AnotherActionlass','propert&ame')'propert&Kalue',,!N4/
YII Framework: "ontroller
YII F k d l
-
8/14/2019 slideyii
27/48
YII Framework: odel
-
8/14/2019 slideyii
28/48
YII Framework: odel
/444 @returnarra& alidation rules for model attri$utes%4/pu$lic function rules(M// O": &ou should onl& define rules for those attri$utes that// will receie user inputs%return arra&(arra&('nome, descricao', 'reBuired',arra&('nome, descricao', 'length', 'maL')9,// "he following rule is used $& search(%// Please remoe those attri$utes that should not $e searched%
arra&('id, nome, descricao', 'safe', 'on')'search',!N
/444 @returnarra& relational rules%4/pu$lic function relations(M
// O": &ou ma& need to ad5ust the relation name and therelated// class name for the relations automaticall& generated $elow%return arra&(!N
YII F k d l
-
8/14/2019 slideyii
29/48
YII Framework: odel/444 @returnarra& customiQed attri$ute la$els (name)la$el4/pu$lic function attri$ute.a$els(M
return arra&('id' ) '0','nome' ) 'ome','descricao' ) '0escricao',!N
/444 1etriees a list of models $ased on the current search/filter conditions%
4 @returnActie0ataProider the data proider that can return the models $asedon the search/filter conditions%4/pu$lic function search(M// #arning: Please modif& the following code to remoe attri$utes that// should not $e searched%
Hcriterianew 0$riteria!
Hcriteria-)compare('id',Hthis-)id!Hcriteria-)compare('nome',Hthis-)nome,true!Hcriteria-)compare('descricao',Hthis-)descricao,true!
return new Actie0ataProider(get+class(Hthis, arra&('criteria')Hcriteria,!NN
main "h"YII Framework: La)out * ain
-
8/14/2019 slideyii
30/48
-
8/14/2019 slideyii
31/48
-
8/14/2019 slideyii
32/48
-
8/14/2019 slideyii
33/48
YII Framework: Pagina gerada
YII Framework: "-. * Inde/
-
8/14/2019 slideyii
34/48
YII Framework: "-. * Inde/
YII Framework: "-. * "reate
-
8/14/2019 slideyii
35/48
YII Framework: "-. * "reate
YII Framework: "-. * 'iew
-
8/14/2019 slideyii
36/48
YII Framework: "-. * 'iew
YII Framework: "-. * anage
-
8/14/2019 slideyii
37/48
YII Framework: "-. * anage
YII Framework: "-. * "ontroller
-
8/14/2019 slideyii
38/48
a e o " - * "o t o e
class ntidadeontroller eLtends ontrollerM/444 @varstring the default la&out for the iews% 0efaults to '//la&outs/column9',4 meaning using two-column la&out% 2ee 'protected/iews/la&outs/column9%php'%
4/pu$lic Hla&out'//la&outs/column9'!
/444 @returnarra& action filters4/pu$lic function filters(Mreturn arra&(
'accessontrol', // perform access control for 1>0 operations!N
/444 2pecifies the access control rules%4 "his method is used $& the 'accessontrol' filter%4 @returnarra& access control rules4/
pu$lic function access1ules(Mreturn arra&(arra&('allow', // allow all users to perform 'indeL' and 'iew' actions'actions')arra&('indeL','iew','users')arra&('4',,
YII Framework: "-. * "ontroller
-
8/14/2019 slideyii
39/48
arra&('allow', // allow authenticated user to perform 'create' and 'update'actions'actions')arra&('create','update','users')arra&('G',
,arra&('allow', // allow admin user to perform 'admin' and 'delete' actions'actions')arra&('admin','delete','users')arra&('admin',,arra&('den&', // den& all users'users')arra&('4',,!
N
/444 0ispla&s a particular model%4 @paraminteger Hid the 0 of the model to $e displa&ed4/pu$lic function actionKiew(HidMHthis-)render('iew',arra&(
'model')Hthis-)load7odel(Hid,!N
YII Framework: "-. * "ontroller
-
8/14/2019 slideyii
40/48
/444 reates a new model%4 f creation is successful, the $rowser will $e redirected to the 'iew' page%4/pu$lic function actionreate(MHmodelnew ntidade!
// >ncomment the following line if AVA3 alidation is needed// Hthis-)performA5aLKalidation(Hmodel!
if(isset(H+PO2"S'ntidade'TMHmodel-)attri$utesH+PO2"S'ntidade'T!if(Hmodel-)sae(
Hthis-)redirect(arra&('iew','id')Hmodel-)id!N
Hthis-)render('create',arra&('model')Hmodel,!N
/44
4 >pdates a particular model%4 f update is successful, the $rowser will $e redirected to the 'iew' page%4 @paraminteger Hid the 0 of the model to $e updated4/pu$lic function action>pdate(HidMHmodelHthis-)load7odel(Hid!
// >ncomment the following line if AVA3 alidation is needed// Hthis-)performA5aLKalidation(Hmodel!
YII Framework: "-. * "ontroller
-
8/14/2019 slideyii
41/48
if(isset(H+PO2"S'ntidade'TMHmodel-)attri$utesH+PO2"S'ntidade'T!if(Hmodel-)sae(Hthis-)redirect(arra&('iew','id')Hmodel-)id!N
Hthis-)render('update',arra&('model')Hmodel,!N
/444 0eletes a particular model%4 f deletion is successful, the $rowser will $e redirected to the 'indeL' page%
4 @paraminteger Hid the 0 of the model to $e deleted4/pu$lic function action0elete(HidMif(Yii::app(-)reBuest-)isPost1eBuestM// we onl& allow deletion ia PO2" reBuestHthis-)load7odel(Hid-)delete(!
// if AVA3 reBuest (triggered $& deletion ia admin grid iew, we should notredirect the $rowserif(Risset(H+6"S'a5aL'THthis-)redirect(isset(H+PO2"S'return>rl'T ? H+PO2"S'return>rl'T : arra&('admin'!Nelsethrow new FttpLception(;DD,'nalid reBuest% Please do not repeat this reBuestagain%'!N
YII Framework: "-. * "ontroller
-
8/14/2019 slideyii
42/48
/444 .ists all models%4/pu$lic function actionndeL(
MHdataProidernew Actie0ataProider('ntidade'!Hthis-)render('indeL',arra&('dataProider')HdataProider,!N
/444 7anages all models%4/pu$lic function actionAdmin(MHmodelnew ntidade('search'!Hmodel-)unsetAttri$utes(! // clear an& default aluesif(isset(H+6"S'ntidade'THmodel-)attri$utesH+6"S'ntidade'T!
Hthis-)render('admin',arra&('model')Hmodel,
!N
YII Framework: "-. * "ontroller
-
8/14/2019 slideyii
43/48
/444 1eturns the data model $ased on the primar& *e& gien in the 6"aria$le%4 f the data model is not found, an F""P eLception will $e raised%4 @paraminteger the 0 of the model to $e loaded
4/pu$lic function load7odel(HidMHmodelntidade::model(-)findJ&P*((intHid!if(Hmodelnullthrow new FttpLception(;D;,'"he reBuested page does not eList%'!return Hmodel!N
/444 Performs the AVA3 alidation%4 @param7odel the model to $e alidated4/protected function performA5aLKalidation(HmodelMif(isset(H+PO2"S'a5aL'T UU H+PO2"S'a5aL'T'entidade-form'Mecho Actieorm::alidate(Hmodel!
Yii::app(-)end(!NN
YII Framework: "-. * 0idgets
-
8/14/2019 slideyii
44/48
-
8/14/2019 slideyii
45/48
-
8/14/2019 slideyii
46/48
-
8/14/2019 slideyii
47/48
$lasse $$lientScri"t
H$ase>rl Yii::app(-)$ase>rl!Hcs Yii::app(-)getlient2cript(!Hcs-)registerssile(H$ase>rl % '/css/calendar5s%css'!Hcs-)registerssile(H$ase>rl % '/css/drh/principal%css'!Hcs-)register2criptile(H$ase>rl % '/5s/calendario/5Buer&%5s'!Hcs-)register2criptile(H$ase>rl % '/5s/calendario/mootools%5s'!Hcs-)register2criptile(H$ase>rl % '/5s/calendario/calendar%5s'!
-
8/14/2019 slideyii
48/48
333)9iiframe3or2)comnetocame9ahoo)com)br
9ii-frame3or2-brasilgooglegrou"s)comhtt"*%%333)9iiframe3or2)com%doc%guide%
http://www.yiiframework.com/mailto:[email protected]:[email protected]:[email protected]:[email protected]://www.yiiframework.com/