Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabyo

Zend Framework

Recommended Posts

Zend Framework - Exemplos basicos I

 

Pessoal segue a sequencia de mais um tutorial sobre ZF

quem não viu os tutoriais anteriores aqui estão os links:

 

http://www.meu_site.com.br

 

rodando esse link automaticamente o ZF procura pelo arquivo: IndexController.php

 

e qualquer link que voce criar dentro do index:

 

http://www.meu_site.com.br/index/pagina1

http://www.meu_site.com.br/index/pagina2

http://www.meu_site.com.br/index/pagina3

http://www.meu_site.com.br/index/pagina4

 

o ZF ira procurar dentro do arquivo IndexController.php o action com o mesmo nome:

 

<?php

class IndexController extends Zend_Controller_Action
{	
	public function indexAction()
	{	

	}

	public function pagina1Action()
	{	

	}	
	
	public function pagina2Action()
	{	

	}	
	
	public function pagina3Action()
	{	

	}	

	public function pagina4Action()
	{	

	}		
}

e consequentemente ele ira procurar pelo layout correpondente dentro da pasta scripts/index

 

scripts/index/index.phtml

scripts/index/pagina1.phtml

scripts/index/pagina2.phtml

scripts/index/pagina3.phtml

scripts/index/pagina4.phtml

 

se voce não quiser ou não precisar de um layout para uma pagina basta avisar o ZF que não tera layout assim:

 

 

 

 

 

public function indexAction()
	{	
		$this->_helper->removeHelper('viewRenderer');
	}

com isso voce nao precisa ter um index.phtml e o ZF não ira dar erro tentando procura-lo.

 

agora um exemplo simples para envio de dados de um formulario e recebendo usando ZF

 

no exemplo em anexo esta o sistema funcionando, por isso não se preocupem com detalhes

 

para verificar se um formulario foi enviado usem:

 

 

 

 

 

if ($this->_request->isPost()) {}

para receber um dado de um campo GET ou POST use:

 

 

 

$campo = $this->_request->getPost('campo');

só que ja tem uma vantagem, se o $_POST["campo"] não existir o ZF vai tratar e a $campo tera um valor vazio, e sem ter erro na pagina.

 

segurança, o ZF tem uma classe para cuidar da segurança de recebimento de dados, com varias opções, iremos tratar só do filtro trim e strip_tags como no exemplo:

 

 

 

$filter = new Zend_Filter();
$filter->addFilter( new Zend_Filter_StringTrim )
	   ->addFilter( new Zend_Filter_StripTags );
$campo = $filter->filter($this->_request->getPost('campo'));

com isso eu ja pego a $_POST["campo"], passo a função trim e strip_tags e automaticamente passando pelo filtro ela ja se torna uma string segura para ser usada ou salva em banco de dados.

 

Zend_InicioII.zip

 

qualquer duvida sobre o exemplo só perguntar

 

OBS: Pasta Library vazia.

 

Proximo tutorial:

 

>> Plugins

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm...

 

Legal, mais só uma dúvida básica aqui, dentro desse:

public function indexAction()
	{	

	}
o que devo colocar ai deve ser sempre:
$this->view->link = "PAGINA AQUI";
? quando se trata de links ?

 

ai ficaria assim como no arquivo IndexController:

public function indexAction()
	{	
		$this->view->link   = "PAGINA AQUI";
	}
???

 

e no caso essa função dentro da class:

public function pagina2Action(){}
foram criadas por você ? então quando eu for criar um link eu posso fazer isso:
public function validarAction(){}
... e na hora de usar a class eu já sei...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo todos os nomes foi eu que criei voce pode criar o link que quiser por exemplo

 

public function cadastroAction(){}

public function meulinkAction(){}

public function salvarAction(){}

 

etc..., isso fica a seu gosto.

 

e dentro dos action voce coloca o que quiser o nome link foi eu que criei voce coloca o nome que quiser

 

exemplo

 

public function indexAction()
{	
$this->view->var1   = "Valor da var1";
$this->view->var2   = "Valor da var2";
$this->view->var3   = "Valor da var3";
}

 

e no index.phtml:

 

<?php
echo $this->var1."<br />";
echo $this->var2."<br />";
echo $this->var3."<br />";
?>

 

como voce citou o action "validar", veja uns exemplos sobre validações de formularios:

 

http://akrabat.com/2008/02/21/simple-zend_form-example/

http://framework.zend.com/manual/en/zend.filter.input.html

 

no primeiro link acima se voce olhar vera que o proprio ZF ja tem meios de validar um formulario, entao nao seria necessario criar um action validar, só usar o if ($form->isValid($formData)) {, como mostra o exemplo acima

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, eu tava dando uma olhada na estrutura de algumas class aqui, são bem profissionais, além do mais é bom porque já começo OOP por um bom caminho, pois eu sou fraco em class ainda.

 

Enquanto aos links assima, são bem legais os exemplos, dão outra dimensão para validação de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bacana...

Agora acho que Zend irá ganhar novos usuarios.

Parabéns Fabyo, você é o cara :kiss:

Compartilhar este post


Link para o post
Compartilhar em outros sites

dúvidas em alguns pontos:

 

- como crio esses links?

 

- a init(), qual a função dela?

 

- para cada método criado dentro de IndexController.php, deve criar um *.phtml dentro de script/index, correto?

bem, criei e etc...só que percebi que a referências as variaveis criadas.. ( link ou var1 ...) é feita dentro de index.phtml.

sendo assim, qual a função de ter um layout pra cada já que é o index.phtml que trata todos(no exemplo: imprime as variaveis)?

 

os arquivos pagina1.phtml , pagina1.phtml[b/] ... vão ficar vazios?

 

se puderem ajudar-me a entender...agradeço. Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

- como crio esses links?

do mesmo jeito que esta no exemplo, crie um nome do link, a pagina com o mesmo nome e o metodo com o mesmonome+Action

 

- a init(), qual a função dela?

a função inicial que inicia antes dos outros metodos

para ver mais detalhes e outros metodos como esse:

http://framework.zend.com/manual/en/zend.c...ler.basics.html

 

- para cada método criado dentro de IndexController.php, deve criar um *.phtml dentro de script/index, correto?

Correto

 

[quotebem, criei e etc...só que percebi que a referências as variaveis criadas.. ( link ou var1 ...) é feita dentro de index.phtml.

sendo assim, qual a função de ter um layout pra cada já que é o index.phtml que trata todos(no exemplo: imprime as variaveis)?

nao cada variavel tem o seu valor definido pelo metodo se no indexAction eu crio uma variavel ela vai valer para index.phtml, posso ter variaveis com nomes iguais, mas o valor dela é colocado no metodo

 

os arquivos pagina1.phtml vão ficar vazios?

Nao, as paginas.phtml sao suas paginas como é só um exemplo elas nao tem conteudo, mas no seu caso quando for fazer algum site usando ZF voce coloca o conteudo que precisar

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo fabyo.

 

os links eu crio dentro do index principal do ZF?

 

a questão dos métodos consegui compreender..somente os links que não.. Imagem Postada

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

os links que cria apartir do seu primeiro controller, por padrao é o indexcontroller.php com o metodo indexAction()

 

mas isso tudo pode mudar conforme for preciso

 

mas por padrao voce cria os links apartir do index e os links voce cria no templates

 

no exemplo de templates eu criei 4 exemplos de links só dar uma olhada

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim fabyo.

 

o que digo é:

 

esses links seriam as tags <a href='' ?

 

desculpe te incomodar, porque não consegui fazer esse exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao os links que eu falo sao o resultado onde o link ira levar o usuario

 

voce pode criar seus link HTML normalmente usando <a href=""

 

isso nao muda nada

 

o local onde seu link aponta que sim, por exemplo

 

<a href="index/listar">listar</a>

 

quando o usuario clicar nesse link ele ira para a pagina

 

www.meusite.com.br/index/listar

 

e o metodo que o ZF ira procurar no indexcontroller.php é o listarAction

 

public function listarAction()

{

 

}

 

entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Zend Framework - Exemplos basicos I

 

Pessoal segue a sequencia de mais um tutorial sobre ZF

quem não viu os tutoriais anteriores aqui estão os links:

 

http://www.meu_site.com.br

 

rodando esse link automaticamente o ZF procura pelo arquivo: IndexController.php

 

e qualquer link que voce criar dentro do index:

 

http://www.meu_site.com.br/index/pagina1

http://www.meu_site.com.br/index/pagina2

http://www.meu_site.com.br/index/pagina3

http://www.meu_site.com.br/index/pagina4

 

o ZF ira procurar dentro do arquivo IndexController.php o action com o mesmo nome:

 

 

<?phpclass IndexController extends Zend_Controller_Action{		public function indexAction()	{		}	public function pagina1Action()	{		}			public function pagina2Action()	{		}			public function pagina3Action()	{		}		public function pagina4Action()	{		}		}

 

 

 

Não sei o que fiz de errado, mas não consigo obter essa configurção. Sempre que crio por exempo: index/pagina1/ preciso criar um controlador para a pagina1 e criar um index action.

 

Alguém pode me ajudar?

 

Obrigado

Rogers

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.