Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá!
Bom, neste tópico vou deixar algumas referencias de estudo para este frameworks completo e robusto da Zend!
O Zend segue o padrão MVC. É considerado um frameworks pq ele te força a programar no padrão da Zend, mas não é nada muito complexo.
Escrito em php5, este frameworks possui uma biblioteca bem completa, com classes internas como Zend_Mail, Zend_Pdf e etc.
Bom, acho que não é necessario explicar como funciona o pattern mvc, mas caso algm nao saiba, é só dar uma olhada em:
MVC
http://forum.imasters.com.br/index.php?showtopic=220133
Official Web Site:
Download:
http://framework.zend.com/download
Documentação
http://framework.zend.com/manual -> tem em português
Para estudo:
http://devzone.zend.com/public/view/
[http://mikenaberezny.com/talks/dcphp06/get...d_framework.pdf](http://mikenaberezny.com/talks/dcphp06/getting_started_with_zend_framework.pdf) -> *update (29/03/2007) *
[http://framework.zend.com/wiki/display/ZFU...2C+and+Examples](http://framework.zend.com/wiki/display/ZFUSER/External+Resources+-+Tutorials%2C+Articles%2C+and+Examples) *update (29/03/2007) *
http://weierophinney.net/matthew/uploads/2...resentation.pdf
http://hades.phparch.com/ceres/public/arti...ework::tutorial
http://www.ralfeggert.de/kategorie/zend-framework/ 'Em alemão :D ... aqui é só para baixar e visualizar os exemplos
http://www.phpdeveloper.org/tag/zendframework
http://www.marcelioleal.net/paideguaphp/zend_framework.pdf
Para duvidas:
http://www.zend.com/forums/ 'mas é meio fraco ...
lista de discussões
poste aqui!
Bom, eu utilizo o Zend desde a sua versão 0.2.0, hoje, em sua versão 0.9.0 pode-se dizer que o frameworks esta bem robusto e atende as minhas necessidades, mas ainda faltam alguns recursos a serem implementados, para maiores informações acessem:
http://framework.zend.com/roadmap/future/
Algumas considerações:
É possivel implementar as suas classes dentro do pacote, e construir uma nova biblioteca, mas para isso é necessário que voce siga algumas recomendações da Zend, mais em : http://framework.zend.com/manual/en/coding-standard.html
Hoje, a minha maior briga, no desenvolvimento de um projeto do 0(zero) é com a organização de arquivos, e na automatização de alguns processos afim tornar o código menos repetitivo
Qq coisa, estamos ai !
Abrasss
Valeu meu brother!Tenho mais links, mas estão em casa, se conseguir a noite eu posto.
Só me tira uma dúvida, pra eu trabalhar com Zend Framework o servidor de hospedagem precisa ter ele instalado tb ou só na minha máquina?
fala fera,Não é necessario instalar o zend, não tem como instalar, pois ele é apenas uma biblioteca de arquivos(classes).Voce devera configurar o apache para setar o caminho do htaccess file no httpd.conf, e configurar o .htacces conforme os artigos que eu postei anteriormenteÉ possivel utilizar as bibliotecas do zend framework sem a configuração do .htaccess, mas eu não recomendo.Abrasss
mas o servidor de hospedagem precisa ta configurado também ou só meu computador?
ambos ..cara, se voce quiser testar localmente, voce configura seu apache ...se quiser botar on, voce tb devera configurar conforme os artigos que eu passei, não é dificil !
opa,
mais documentação pra galera
boas praticas de programação, muito legal:
http://mikenaberezny.com/talks/zendcon06/p...t_practices.pdf
organizando projetos em php
http://paul-m-jones.com/organizing-php-projects.pdf
abrass
Sobre o Zend Studio 5.x? Você tem algum comentário?Há algum outro IDE a nivel dele?
opa,
é muito bom sim, mas como eu sou adepto a ferramentas free:
eu só uso o eclipse ... eu tornei meu eclipse personalizado, com plugins para uml, php debug e etc!
é muito bom, recomendo!
Opa.. eu baixei a nova versão.Zend Framework Beta 0.9.3Mais todos os tudos que eu vejo é para as versões antiga.. o arquivo Zend.php não existe nessa versão.. E ai o que faço? ja tentei debugar mais é f*** arrumo uma coisa estraga em outra.. Void você que já tem um tempo mechendo com a ferramenta.. já conseguiu usar essa nova versão se sim.. me explica ai um hello word pelo - ou então me manda por e-mail (erick_leao @@ yahoo.com.br) a versão mais estavel que você tem ae..... se tiver que dividir o arquivo em partes pode dividir com o winrar que eu junto depois...Mais ta complicado =/Eu consegui baixar um que a versão é Zend Framework 0.20 (released 31 October 2006) nele eu consegui fazer um hello word e achei muito facil mais a nova versão num estou conseguindo sair do chão =/ fora que a nova versão tem muito mais componentes..
Acho que isso vai te ajudar:
http://framework.zend.com/manual/pt-br/zen...ng-started.html
Valeu fabão eu havia conseguido depois que postei.. algo.... pois eu fui debugando debugando e cheguei no mesmo resultado que está nesse link ae.. =D
Opa mexi com o nova atualização... simplesmente show de bola.. agora eu sei o porque cada vez mais o pessoal usa os frameworks e eu aqui viajando... muito simples de usar esse da zend gostei muito... dele isso porque só usei o basico dele. fora ainda que num precisa ficar criando os ?sessao=algumacoisa&..... que faz sua queri ficar feixa e meio orrivel :PMais é isso vou estudar ela e começar a criar alguns artigos aqui para o pessoal começar a mecher com ele tbm e assim começar a crescer mais os tutos em pt por ae =DVoid: nem preciso mais lá do exemplo ja peguei as manhas =D
ta ok, mas se precisar de qq coisa, pode falar !abrass
Void queria saber como você trabalha com Login e Permisões ......Pois pelo que eu vi ele usa os seguintes componentes para isso:Zend_Auth => para autenticação e o Zend_Acl => para niveis de acessoMe da uma mãozinha
é isso ae fera,
e ainda acrescentaria mais uma classe ai, a zend_session que provê esquemas de namespaces e etc.
Se eu não me engano, a lib zend acl não estava 100%, bom, pelo menos foi isso que eu li da ultima vez.
Mas é um recurso muito legal tb, ela permite que voce possa definir rules (regras) à resources (acessos).
E o zend_auth é um tanto quanto sugestivo, é a classe que voce ira utilizar para criar seu esquema de autenticação, para isso é necessario que voce crie sua própria classe e implemente a interface (se eu nao me engano) da classe Zend_Auth.
Assim que voce criar a sua propria classe de autenticação voce devera assinar os métodos existentes na classe de interface que voce implementou.
Mas não é nada complicado.
Primeiro, eu aconselharia voce a ler sobre a classe Zend_Session, sobre como o zend utiliza namespaces e etc.
Depois voce tenta implementar oque voce aprendeu em união com a lib Zend_Auth.
E por ultimo, voce da uma olhada em Zend_Acl, que é mto simples, porem mto eficiente!
Sessão: http://framework.zend.com/manual/en/zend.session.html
Auth: http://framework.zend.com/manual/en/zend.auth.html
Acl: http://framework.zend.com/manual/en/zend.acl.html
Abrasssssss
Opa... eu estou fazendo teste de modulos. e não está funcionando pela maneira que eu li no manual..
Eu tenho o arquivo chamado
IndexController.php
Contendo:
class IndexController extends Zend_Controller_Action { public function IndexAction() { echo "index"; } public function noRouteAction() { $this->_redirect('/'); } public function TesteAction(){ echo "teste"; }}
até ai tudo bem agora vamo definir os modulos:
$front->setControllerDirectory(array( 'default' => './Aplicacao/Controller', 'usuario' => './Aplicacao/Usuario/Controller', ) )
Bem quando eu faço isso:
http://exemplo.com/ ele mostra escrito Index
http://exemplo.com/index/teste ele mostra na tela a palavra teste
agora quando eu faço isso num rola
http://exemplo.com/usuario < nada
http://exemplo.com/usuario/teste < nada
e sim tem o IndexController.php onde eu indiquei no caminho desse modulo..
se eu entrar nesse arquivo e mudar o nome da classe para Usuario_IndexController ele funciona a url
mais o http://exemplo.com/usuario/teste <- não =/
E agora quem poderá me ajudar?
http://exemplo.com/usuario/index/testeeh na ordem: Modulo/Controller/Action.
http://exemplo.com/usuario/teste
soh funcionaria se teste fosse o Controller
Puts que vacilo meu .. era isso mesmo tinha esquecido valeu kra.. ;) Mais uma coisa tenho mesmo que criar os indexcontroller.php com o nome da pasta? dessa eu num sabia pois no manual num tem nada falando sobre isso pelo - pelo que eu li
digamos que você tenhos os seguintes modulos:
default => application/controllers/admin => application/admin/controllers/O IndexController eh o controlador padrão, e é usado quando nenhum controlador foi solicitado.
ex:
www.site.com/
www.site.com/admin/
para fazer um controlador do módulo admin, o deve-se faze assim:
class Admin_IndexController{ }se o modulo for o padrão, nao é necessário usar o nome do modulo na frente do nome da classe
isso ae Magical Trevor,
lembrando perfect lion que é recomendado que voce crie sua própria classe de "Action", ou seja, que voce tenha uma classe PerfectLion_Controller_Action;
dessa forma, voce consegue personalizar seus scripts caso voce queira criar algum método que seja utilizado por varias classes de controle em seu sistema.
No meu classe, minha classe de controle esta ficando assim (não terminei) :
<?php/** * My Class in Zend Framework (My class for perform) * * LICENSE * * This source file is subject to the new BSD license that is bundled * * @category My * @package My_Controller * */ abstract class My_Controller_Action extends Zend_Controller_Action{ /** * Método init, invocado assim que a classe é instanciada * * Invocado em {@link __construct()} o último passo da instanciação. * * @return void */ public function init() { $this->_init(); } /** * Método abstrato _init, invocado assim que a classe é instanciada através do método * público init (sua assinatura é obrigatória); * * @return void */ abstract protected function _init(); /** * Initialize View object * * Initializes {@link $view} if not otherwise a Zend_View_Interface. * * If {@link $view} is not otherwise set, instantiates a new Zend_View * object, using the 'views' subdirectory at the same level as the * controller directory for the current module as the base directory. * It uses this to set the following: * - script path = views/scripts/ * - helper path = views/helpers/ * - filter path = views/filters/ * * @return Zend_View_Interface * @throws Zend_Controller_Exception if base view directory does not exist */ public function initView() { require_once 'Zend/View/Interface.php'; if (isset($this->view) && ($this->view instanceof Zend_View_Interface)) { return $this->view; } $request = $this->getRequest(); $module = $request->getModuleName(); $dirs = $this->getFrontController()->getControllerDirectory(); if (empty($module) || !isset($dirs[$module])) { $module = 'default'; } $baseDir = dirname($dirs[$module]) . '/views'; if (!file_exists($baseDir) || !is_dir($baseDir)) { throw new Zend_Controller_Exception('Missing base view directory ("' . $baseDir . '")'); } require_once 'Zend/View.php'; $this->view = new Zend_View(array( 'scriptPath' => $baseDir . '/templates', 'helperPath' => $baseDir . '/helpers', 'filterPath' => $baseDir . '/filters' )); return $this->view; } /** * Seta o diretório das classes Model do projeto. * * Método público, geralmente invocado em todas classes de controle. * * @return void * @throws Zend_Controller_Exception se o diretorio de models nao existir. */ public function initModel() { if (function_exists("ini_set")){ $request = $this->getRequest(); $module = $request->getModuleName(); $dirs = $this->getFrontController()->getControllerDirectory(); $baseDir = dirname($dirs[$module]) . DIRECTORY_SEPARATOR . 'models'; if (!file_exists($baseDir) || !is_dir($baseDir)) { throw new Zend_Controller_Exception('Missing base model directory ("' . $baseDir . '")'); } ini_set("include_path",ini_get("include_path") . SEP . $baseDir); } else { throw new Zend_Controller_Exception('Don\'t have ini_set permission'); } } /** * Do check if var user set in session, this method allways called * before any action * * @param undefined; * @return undefined; */ public function preDispatch() { } /** * Método público, invocado em caso de ações e/ou controles requisitados que não foram definidos. * * @return void */ public function __call($action, $arguments) { if (method_exists($this, "noRouteAction")) { $this->noRouteAction(); } else { $error = array( "number" => 404, "description" => "NOT_FOUND" ); $this->_forward("noRoute", "index", "default", $error); } } public function __toString() {} public function __clone() {}}
---
esse meu post tinha como referencia a pergunta do perfect lion sobre o erro que estava dando ... postei atrasado!
Hummm... se eu fose iniciante no PHP iria apanhar para saber isso em.. pq no manual num achei falando sobre isso.... tive que debugar...Void: valeu da mesma forma.. mais acho que no momento preciso de agilidade num tem como eu criar um Controller_Action personalizado.. meu.. =/
ok, tranquilo, mas qq dúvida, pode perguntar meu broda!abrasss
Hummm... se eu fose iniciante no PHP iria apanhar para saber isso em.. pq no manual num achei falando sobre isso.... tive que debugar...Void: valeu da mesma forma.. mais acho que no momento preciso de agilidade num tem como eu criar um Controller_Action personalizado.. meu.. =/
Uma dúvida.No caso, se eu fizer meu site através de algum framework como o Zend Studio, meu provedor de hospedagem terá que ter o Zend Studio instalado para que o site funcione corretamente ou não precisa? Qualquer framework que eu utilizar para PHP, basta eu colocar em uma pasta as bibliotecas que utilizo, que o site irá funcionar corretamente, é isso?
entao, zend studio é uma coisa zend frameworks é outra.para criar uma aplicação usando o frameworks do zend, é recomendado que voce sete o seu include_path para o diretório dos arquivos da lib do zend e utilize o .htacess para fazer um "parser" da urlda uma olhada no site do frameworks da zend que é bem explicativo essa parteabrass
Dahora Void