Ir para conteúdo

Arquivado

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

Fabyo

Zend Framework

Recommended Posts

Para usar plugins no Zend_Application, você deve definir ele no application.ini

 

setar um autoloadernamespaces ou usar o padrao.

 

vou mostrar como funciona na pratica:

 

application.ini

autoloadernamespaces.4 = "Plugins_"

 

resources.frontController.plugins.MySecurity = "Plugins_MySecurity"

 

 

MySecurity.php

<?php

class Plugins_MySecurity extends Zend_Controller_Plugin_Abstract

{

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo, dava pra você explicar como funciona esse método setRedirect ???? Aqui não funcionou, ele não redireciona, para o controller de login, então eu usei:

$redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
$redirector->gotoUrl('/auth/login');

eu vi nesse link do fórum da zend.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe a demora pra responder, nao estou mais recebendo emails avisando que o topico tinha novos post, e ando sem tempo para visitar a seção

 

mas vamos la, vou deixar aqui a solução caso alguem precise

 

			
$response = $this->getResponse();
$response->setRedirect($this->getRequest()->getBaseUrl().'/login');
$response->sendHeaders();
exit();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou iniciando com Zend e já mecho um pouco com ExtJS, fui testar o exemplo depois de adicionar as libs e as configs e me apresenta o seguinte erro

 

Warning: trigger_error(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Boa_Vista' for 'AMT/-4.0/no DST' instead in /usr/local/zend/share/ZendFramework/library/Zend/Loader.php on line 258 Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in /usr/local/zend/share/ZendFramework/library/Zend/Loader.php on line 258 Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Boa_Vista' for 'AMT/-4.0/no DST' instead in Unknown on line 0 Fatal error: Uncaught exception 'Zend_Log_Exception' with message '"logs/log.txt" cannot be opened with mode "a"' in /usr/local/zend/share/ZendFramework/library/Zend/Log/Writer/Stream.php:78 Stack trace: #0 /Users/canivel/htdocs/WBill_WEB/index.php(31): Zend_Log_Writer_Stream->__construct('logs/log.txt') #1 {main} thrown in /usr/local/zend/share/ZendFramework/library/Zend/Log/Writer/Stream.php on line 78

 

Oque pode estar havendo...?

 

Obrigado

 

Bom acho que eh o loader que não deve ser usado na versao nova do framework... vou tentar atualizaar... pra ver

Compartilhar este post


Link para o post
Compartilhar em outros sites

Show de Bola!!! só to com um problema aqui...

 

Quando tento acessar por exemplo localhost/NomeDoProjeto ele chama a view do index.phtml e mostra o conteudo... ao invés de redirecionar para localhost/NomeDoProjeto/login, o qual funciona certinho quando chamo esta página... como faço para fazer a validação automática em todas as páginas, e caso o usuário não estiver logado redirecioná-lo para /login

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa resolvi aqui... era erro meu(óbvio), uma outra coisa a barra de carregamento nunca enche... sempre aparece soh um pedacinho e fica ali e jah carrega a página é normal isso? mais uma última dúvida para atualizar a versão do extjs para 3.2 precisa ser feito alguma alteração ou apenas trocar os arquivos do framework pelos novos?

 

Muito obrigado fabyo.

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo

 

Testei aqui o login e funcionou legal.

Mas gostaria de rodar um gerenciador de conteúdos.

 

Tenho a minha estrutura básica.

 

Tenho que separar os módulos da administração em uma pasta diferente, pois vi alguns tutoriais e alguns configuram de forma diferente excluindo a pasta controller e criando a pasta para admin e colocando seus arquivos de controles nesta pasta, utilizando módulos e tudo mais.

 

Gostaria de saber qual é a melhor maneira?

 

Desculpe o encomodo, pois estou com esta dúvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom é dificil falar qual a melhor maneira, posso falar a maneira que uso

 

mas como a proposta do Zend é MVC, eu costumo sempre trabalhar em cima disso, por isso tenho minha pasta controller

 

e conexao com banco de dados na model, visual na view, tenho visto muita gente trabalhar com zend mas ignorando a pasta model, usando apenas a controller e a view, como falei eu sigo a risca esse conceito, até para manter um padrao mesmo.

 

uma pergunta você que ta migrando agora pra Zend_Application você sabe fazer conexoes nesse modo?

 

se nao souber avisa que eu te passo o esquema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo

 

Gostaria que você me passasse, pois estou começando a trabalhar com o Zend Framework, como estou acostumado a trabalhar com um framework desenvolvido pela empresa onde trabalhava, esta sendo um pouquinho complicado de fazer as coisas com o Zend Framework, algumas coisas consigo entender fácil e outras ficam um pouco complicadas.

 

Praticamente estou aprendendo do Zero. Achei o manual do Zend Framework um pouco complicado, pois algumas coisas não ficaram bem claras.

 

Você tem algum livro legal ou interessante para me indicar, pois vi na internet estes dois livros:

Zend Framework em Ação (Esse aqui li algumas críticas não muito boas, com relação a tradução e os exemplos do livro)

Zend Framework

 

Grato pela sua ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom sobre livros nao posso recomendar porque nao li nenhum livro sobre Zend

 

sobre a conexao agora ficou bem pratico, você percebeu que os dados do banco de dados estao no application.ini?

 

entao primeiro configure os dados do banco, e proteja esse arquivo com .htaccess, assim ninguem vai ter acesso a esse arquivo

 

para conectar se você tiver na model nao precisa fazer nada basta utilizar exemplo:

 

$rows = $this->fetchAll();

 

fora da Model você conecta assim:

$db = Zend_Db_table::getDefaultAdapter()

 

se der em breve irei postar um novo tutorial de Zend com todos esses conceitos e um sisteminha de exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo

 

Me fale se meu raciocínio esta errado ou não.

 

Pelo que puder ver mais detalhadamente no exemplo de Autenticação, usando o Zend_Auth, vi que você tem a pasta Models, nela é que vão ficar por exemplo todas as funcionalidades do site, por exemplo: Classe de Notícias, para exibição de notícias.

 

E tem o controlador da página de notícias, que vai ser responsável por exibir a página de notícias, por exemplo:

 


public function indexAction(){
//Codigo aqui
}

public function verAction(){
//Código que fará a chamada para a Model de exibição de notícias
}

Não sei se é dessa forma ou estou enganado?

 

Agradeço desde já pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só para voce entender melhor simplificando seria:

 

Controller: É onde voce recebe e trata os dados via POST/GET/COOKIE/SESSION etc..., filtra variaveis, validações

funções em geral

 

Model: É onde voce vai fazer a conexao com o banco de dados e retorna o resultado para a Controller

Fazer consultas e inserções em geral.

 

View: Codigo html das paginas, estruturas css, javascript etc..., e algumas variaveis predefinidas para ser exibidas vindas da Controller

 

entao no exemplo do login a Model cuida para fazer a pesquisa no banco e ver se o usuario existe, a Controller cuida para receber esses dados do formulario e a View exibe o resultado da pagina

nem sempre será obrigatorio usar a view, tem coisas que voce pode exibir direto da Controller onde nao precisa gerar nenhuma pagina html, principalmente paginas de consultas para retorno de ajax, json etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo

 

Valeu pela dica, aos poucos eu vou pegando o jeito do Zend Framework.

 

Então pelo que pude entender, posso utilizar as consultas da banco de dados dentro da própria ação do controller.

 

Outra coisa, que estou querendo entender, não sei se minha linha de raciocínio esta correta:

Quero desenvolver um gestor de conteúdo, vou criar por exemplo o arquivo gestao.php e o seu GestaoController.php.

Vou utilizar o exemplo de login que você explicou no exemplo, faço a chamada do plugin de segurança também no application.ini ou apenas no arquivo gestao.php?

 

Desculpe o encomodo, e agradeço novamente pela explicação.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites
Então pelo que pude entender, posso utilizar as consultas da banco de dados dentro da própria ação do controller.

 

Então como falei as consultas ficam na Model, na controller você faz as chamadas dessas classes por exemplo

$usuarios = new Usuarios();

 

a chamada do plugin fica no application.ini ou qualquer outro plugin fica tudo no application.ini

 

você nao vai criar nenhum gestao.php apenas o GestaoController.php

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.