Ir para conteúdo

Arquivado

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

Fabyo

Zend Framework

Recommended Posts

olá Fabyo

 

estou começando agora com o zend e segui os passos desse tutorial, mas ao rodar a aplicação deu este erro, e não estou entendendo bem, se alguém puder me dar uma luz

 

estou usando o "ZendFramework-1.8.0"

 

o erro é o seguinte:

 

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 C:\wamp\www\uaustudioweb_testes\library\Zend\Loader.php on line 207

 

Notice: Zend_Loader::Zend_Loader::autoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in C:\wamp\www\uaustudioweb_testes\library\Zend\Loader.php on line 186

INDEX

 

 

 

Será pro causa da minha versão do zend que é 1.8.0 e o tuturioal está baseado no 1.5.1, ou algum erro na minha configuração.

 

eu estou testando em localhost com o wampserver - Apache 2.2.11 e mysql 5.1.32

 

Agradeço a ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pronto ja entendi as novas mudanças do Zend 2.0 e que ja estão funcionando no Zend 1.8

 

apague:

 

require_once "Zend/Loader.php";

Zend_Loader::registerAutoload();

 

e insira:

 

require_once 'Zend/Loader/Autoloader.php';

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

 

fiz os testes aqui e funcionou normal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daew Fabyo

 

problema resolvido, posto aqui pra galera que estiver precisando

 

no lugar de:

require 'library/Zend/Loader.php';
Zend_Loader::registerAutoload();

eu coloquei assim:

 

require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);
$loader->registerNamespace('App_');

e agora funciona legal

 

beleza

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tbm pode fazer assim:

 

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true)->registerNamespace('App_');

 

OBS do jeito que postei ja funciona, nao precisa usar registerNamespace se sua classe ja tiver.

por padrao o Zend ja tem Namespace "Zend_" e "ZendX_"

entao basta:

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

 

http://framework.zend.com/manual/en/zend.l...autoloader.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo, tow curtindo bastante estudar esse framework mas como todo iniciante em alguma coisa... já tenho algumas duvidas idiotas:

 

Sobre os tamplates: nele, eu vi que posso escrever minhas TAGS html normalmente tanto quanto executar alguns comandos em PHP...

EU costumo montar minhas páginas definindo, primeiro, a sua estrutura em html e depois copiando e colando em outras páginas... inserindo a programação de cada um, como conexão com o banco e seleção dos dados para exibição...

 

NESSE CASO... esses templates seriam essas minhas páginas que eu costumo montar com o meu HTML e programação... ou eu faria isso de outra forma??

SE NAUM... pra que exatamente serviria esse template e como eu poderia integrá-lo com a minha programação necessária para cada página de meu site???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom sua duvida é exatamente sobre como ficaria o padrao usando Zend, e o Zend usa MVC

a ideia de MVC é separar a programação do html , se quiser ver como funciona voce precisa aprender mais sobre MVC e Zend

 

baixa meu exemplo de Zend_Layout que ja te ajudaria muito e você veria como deve montar suas paginas

 

qualquer duvida posta ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou estudando MVC e quero adotar um Framework - escolhi o Zend - Pq?... Sei lá, talvez porque seja desenvolvido pela própria Zend...

 

Mas é o seguinte:

 

Antes de continuar lendo e estudando seus tutoriais (diga-se de passagem: muito bons tutoriais, simples, práticos e objetivos - parabéns) , gostária de ver na tela, pelo menos um Hellow World ou qualquer outra coisa...

 

Segui todos os passos e está dando erro:

 

1ª dúvida que tenho:

 

Não estou nem conseguindo fazer o require...

Seguindo sua estrutura de diretório, a chamada de Autoloader.php não seria diferente?

 

Seu código:

require_once "Zend/Loader/Autoloader.php";

 

Não deveria ser assim: Subindo um diretório?

require_once "../Zend/Loader/Autoloader.php";

 

2ª Dúvida:

 

Quando digito:

echo get_include_path();

Aparece todos os path, porém o último aparece com as barras invertidas? Como resolvo isso?

C:/Arquivos de programas/EasyPHP 2.0b1\php5\pear\

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Respondendo as duvidas

 

1) ta certo desse jeito por causa do codigo no começo "set_include_path"

eu ja incluo o caminho certo da pasta Zend, entao qualquer outra chamada pra algum codigo PHP é só fazer a partir da pasta Zend mesmo, agora só fique atento a um detalhe as novas versoes do Zend nao usa mais o Autoloader desse jeito, veja a maneira correta nesse topico:

 

http://forum.imasters.com.br/index.php?/topic/343336-zendframework-1-8-0/page__view__findpost__p__1283172

 

2) Voce esta no Windows entao nao tem problema com as barras o Windows entende as 2 barras

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz as mudanças e continua dando o seguinte erro:

 

Require não encontra Autoloader.php

Warning: require_once(Zend/Loader/Autoloader.php) [function.require-once]: failed to open stream: No such file or directory in 
C:\Arquivos de programas\EasyPHP 2.0b1\www\ZF-Tutorial\public\index.php on line 17
Barras invertidas:
[code]
Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader/Autoloader.php' 
(include_path='.;C:\Arquivos de programas\EasyPHP 2.0b1\www\ZF-Tutorial\public\library\;
C:\Arquivos de programas\EasyPHP 2.0b1\www\ZF-Tutorial\public\includes\;
C:\Arquivos de programas\EasyPHP 2.0b1\www\ZF-Tutorial\public\application\controllers\plugins\;
C:\Arquivos de programas\EasyPHP 2.0b1\www\ZF-Tutorial\public\application\models\;.;
C:/Arquivos de programas/EasyPHP 2.0b1\php5\pear\') in 
C:\Arquivos de programas\EasyPHP 2.0b1\www\ZF-Tutorial\public\index.php on line 17

 

Desculpa a insistência, mas gostaria muito de ver o Hellow World na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao foi o que eu falei

 

quando voce usa set_include_path você define um caminho e quando voce inclui um arquivo o PHP ira procurar o arquivo nessa pasta que você indicou exemplo

 

set_include_path('c:\root\library' .PATH_SEPARATOR. get_include_path());

 

dai quando eu quiser incluir um arquivo que esta da pasta Zend em diante basta isso:

 

require_once 'Zend/Application.php';

 

entendeu?

 

como voce quer ver funcionando baixa esse projetinho que eu fiz pra voce testar, dai baixe tbm a ultima versao do zend e coloque a pasta library no projeto

 

Alo.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muita calma nesta hora, http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif/> (Eu não sou tão burro assim!!!!) http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif/> http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif/>

Eu entendi a função do set_include_pat... Mas tem algum zica aqui, porque não funfa...

 

Vamos por aparte....

 

1 - Criei a estrutura de diretórios do seu tutorial;

2 - Baixei do link o Full packate.zip, um pacote de 44Mb (Demorou pacas...);

3 - Descompactei e copiei o diretório library conforme sua estrutura de diretorios;

4 - Não estava funcionando, conforme post anterior...

5 - Copiei os arquivo que você disponibilizou, copiei em seus devidos diretórios.

 

E continua reclamando do require_once().

Veja:

;.;C:/Arquivos de programas/EasyPHP 2.0b1\php5\pear\ // pedi para imprimir o get_include_path(). Essas barras invertidas não tem nenhum problema?
Warning: require_once(Zend/Loader/Autoloader.php) [function.require-once]: failed to open stream: 
No such file or directory in C:\Arquivos de programas\EasyPHP 2.0b1\www\ZF-Tutorial\public\index.php on line 6

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader/Autoloader.php' 
(include_path=';.;C:/Arquivos de programas/EasyPHP 2.0b1\php5\pear\') in 
C:\Arquivos de programas\EasyPHP 2.0b1\www\ZF-Tutorial\public\index.php on line 6

Não seria alguma configuração do apache, estou usando o EasyPHP.

 

Vou tomar uma água...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui!!!!!

 

Mudei no php.ini a include_path

 

Antes:

include_path = ".;${path}\php5\pear\"

 

Depois:

include_path = ".;${path}\php5\"

 

Maldigo EasyPHP!!!

 

Obrigado....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tbm pode fazer assim:

 

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true)->registerNamespace('App_');

OBS do jeito que postei ja funciona, nao precisa usar registerNamespace se sua classe ja tiver.

por padrao o Zend ja tem Namespace "Zend_" e "ZendX_"

entao basta:

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

http://framework.zend.com/manual/en/zend.l...autoloader.html

 

 

 

o meu ainda esta dando uma erro

 

Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (aguinaldo)' in /var/www/aguinaldo/PROJETOZEND/Greco Tecnologia/library/Zend/Controller/Dispatcher/Standard.php:242 Stack trace: #0 /var/www/aguinaldo/PROJETOZEND/Greco Tecnologia/library/Zend/Controller/Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /var/www/aguinaldo/PROJETOZEND/Greco Tecnologia/index.php(25): Zend_Controller_Front->dispatch() #2 {main} thrown in /var/www/aguinaldo/PROJETOZEND/Greco Tecnologia/library/Zend/Controller/Dispatcher/Standard.php on line 242

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.