[ Tutorial ] Zend Framework Parte 02

MVC, Modules, Controllers, Views, Parameters

Sumário

Nesta parte do tutorial vamos aprender alguns conceitos fundamentais para todo desenvolvedor que utilize o Zend Framework, entre eles o Padrão MVC, Modules, Controllers, Actions, Models, Parameters. Vamos criar um site básico a partir do nosso projeto criado na parte anterior e vamos utilizar os conceitos citados acima.

Continue lendo

Publicado em Framework, PHP 5, Tutorial, Zend Framework | Com a tag , , , , , | 24 comentários

[ Tutorial ] Zend Framework Parte 01

Instalação, configuração, criação de projeto

Sumário

Neste tutorial, você vai aprender como baixar e instalar o Zend Framework, assim como ativar o mod_rewrite do Apache e criar um Virtual Host. Vai criar um hack no arquivo .htaccess para modificar o comportamento do Zend Framework.
Você também vai aprender a criar um projeto utilizando o ZF Tool.
Continue lendo

Publicado em Framework, PHP 5, Zend Framework | Com a tag , , , | 9 comentários

[ KingHost ] – Java / Publicar Projeto Com Arquivo WAR

No momento da escrita deste post estou dando os primeiros passos no mundo Java WEB.
E como tenho uma conta na KingHost, contratei o plano com suporte à Java com Tomcat.
Naturalmente, quando aprendemos a programar em Java utilizamos um IDE tal como Eclipse ou Netbeans e não nos estressamos com os detalhes de configuração de servidores web para java tal como Tomcat ou Glassfish.

E certamente, na hora de publicar o primeiro site surgem as primeiras dores de cabeça.

Vitima como fui de um sistema onde parece que ninguem ensina a fazer estas coisas tão fundamentais, resolvi quebrar este paradigma e suportar ao máximo, como já tenho feio em PHP os amigos desenvolvedores, agora também no mundo Java.

Para se enviar um projeto para o Tomcat na Kinghost você deve proceder da seguinte forma:

1 – Enviar o arquivo.WAR ( que contém o nome do seu projeto e o nome que você deseja acessar remotamente, ex. http://seusite.com/projeto) para a pasta webapps via FTP.

2 – Aguardar o envio do arquivo finalizar

3 – No painel de controles criar um novo aplicativo com o mesmo nome do pasta que foi extraida

4 – Reiniciar o Tomcat http://seusite.com/projeto.

É bem simples assim.

5 – Testar acessando o url

Publicado em Java, VRaptor | Com a tag , , , , | Deixar um comentário

[ VRaptor ] – Como Criar Projeto VRaptor no Netbeans

Pois é!

Estou dando meus passos no mundo JAVA EE e decidi começar pelo Spring MVC e acabei me frustrando, pois é muita coisa pra pouca necessidade. Foi quando entrei em contato com um amigo que havia terminado Ciencias da Computação e eu sabia que mexia com Java me sugeriou o VRaptor.

O Vraptor é um projeto brasileiro, o que me deixou surpreso.

Como entusiata que sou do Netbeans não iria começar a utilizar Eclipse somente porque os desenvolvedores do VRaptor o utilizam.

Bem, a coisa ficou estranha até eu conseguir resolver isto… (risos)

O VRaptor foi desenvolvido no Eclipse e vem com um projeto em branco ( que não está em branco) para ser utilizado no Eclipse e dentro dele vem um projeto Netbeans, mas sinceramente, não sei o que os caras estavam pensando quando colocaram aquele projeto ali dentro, porque na pratica, ele não funciona! (gargalhadas)

Depois de sofrer, chorar, tomar 3 litros de suco de guarana com açaí , como todo cabaço em alguma nova tecnologia, não sabia que o Netbeans possui um recurso de importação de Projetos Eclipse.

Apesar de parecer óbvio, alguem precisa ensinar isto para os novatos como eu, para até mesmo incentivar a comunidade brasileira a utilizar o VRaptor.

Achei interessante que os desenvolvedores não se preocuparam com a expansão do mesmo. Quantas mais formas de se utilizar um Framework mais amado ele vai ser. Os caras parecem ter limitado as coisas ao Eclipse e fecharam os olhos ou não estão entusiasmados com o que criaram!

Então, como sou nacionalista e patriota, vou incentivar o uso do VRaptor com o Netbeans.

Bom, antes de mais nada, caso você não tenha o workspace do Eclipse, baixe este workspace ( http://gilbertoalbino.com/downloads/workspace.zip) do Eclipse e salve no seu Desktop ou qualquer outro lugar, o Netbeans vai ter problemas se não importar diretamente do workspace do Eclipse.

Os passos são simples.

1 – Abra o Netbeans se ele não estiver aberto e deixa ele abrindo sozinho…

2 – Baixe o projeto em branco do Vraptor disponível em http://vraptor.caelum.com.br/download.jsp ( para o mais recente escolha o link que diz PROJETO EM BRANCO ) ou diretamente em http://vraptor3.googlecode.com/files/vraptor-blank-project-3.3.1.zip

3 – Extrai os arquivos no workspace do Eclipse  e renomei a pasta para “MeuProjetoVRaptor” ou qualquer coisa que quiser (Pelo amor de Deus só não coloca HelloVRaptor ou HelloWorld).

4 – Abra a pasta gerada e renomeada e EXCLUA a pasta nbproject e o arquivo nbbuild.xml

5 – Abra o arquivo .project no bloco de notas mesmo e substitua <name>vraptor-blank-project</name> por <name>MeuProjetoVRaptor</name> ou o nome que você colocou. ( Salve é claro!)

6 – Abra o arquivo web.xml dentro de WebContent/WEB-INF e  troque <display-name>vraptor-blank-project</display-name> por <display-name>MeuProjetoVRaptor</display-name> ou …. e salve.

Agora, se seu computador ou notebook não for uma lata velha com pentium III 333MHz você já deve estar com o Netbeans aberto entao vamos lá:

1 – Vá no menu Arquivo->Importar Projetos->Projeto Eclipse

2 -  Escolha Importar projetos da área de trabalho

3 – Procure a pasta onde você extraiu o PROJETO EM BRANCO  e clique em Abrir

4 -  Clique em Próximo

5 – Neste momento vai aparecer todos os projetos dentro da pasta, como só há o suposto MeuProjetoVRaptor, escolha ele.

6 – Ainda nesta tela, logo embaixo escolha a opção: Crie projetos netbeans importados em um local separado e deixe como está pois o Tomcat no Netbeans dá erro se não trabalhar dentro da pasta de projetos do Netbeans.

7 – Escolha o Servidor que deseja utilizar e clique em Finalizar

8 – Se você estiver utilizando uma versão mais atual do Java 7 vai aparecer uma mensagem de erro, mas ignore e clique em OK.

9) De um F6 e curta seu projeto VRaptor no NetBeans.

É isto aí. Bons estudos e bons negocios!

Publicado em Framework, Java, MVC, VRaptor | Com a tag , , , , | 2 comentários

[ Zend Framework ] – Criando Rotas ( Routes) Customizadas no arquivo configuration.ini

  • Se você deseja cria ruma rota customizada no arquivo configuration ini proceda da seguinte maneira:

1) abra o arquivo /application/configs/application.ini ( seu caminho pode ser diferente )

2) Insira as linhas abaixo dentro de seu arquivo:

resources.router.routes.home.route = /site
resources.router.routes.home.defaults.module = default
resources.router.routes.home.defaults.controller = index
resources.router.routes.home.defaults.action = index

 

Cada rota no Zend precisa especificar

  • Rota
  • Modulo
  • Controlador
  • Ação

 

Por padrão, você não precisa criar um módulo default, pois o zend enxergará os arquivos que você criar dentro de application, no entanto, você precisa passar esta informação no arquivo de configuração.

 

Publicado em Zend Framework | Com a tag , , | 4 comentários

Please enter a valid URL. Protocol is required (http://, https:// or ftp://)

Fui instalar o Magento no meu localhost e apareceu esta mensagem:

Please enter a valid URL. Protocol is required (http://, https:// or ftp://)

Não entendi nada, pior foi ver abaixo uma opção para pular a validação do Url caso tivesse problemas, e não dar certo também.

Vi várias pessoas dizendo para utilizar 127.0.0.1.

No entanto, a única forma de fazer o Magento enchergar minha instalação em localhost foi criando um virtual host com o servername magento.localhost e atribuindo o mesmo servername ao hosts do windows.

No arquivo httpd-vhosts.conf:

#magento
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/magento"
ServerName magento.localhost
ErrorLog "logs/magento-error.log"
CustomLog "logs/magento.log" common
</VirtualHost>

#localhost
<VirtualHost *:80>
    DocumentRoot "C:/wamp/www/"
    ServerName localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost.log" common
</VirtualHost>

e no hosts do windows

## localhost
127.0.0.1 magento.localhost
127.0.0.1 localhost

Nota:
ao criar um host no windows você precisa manter a linha

127.0.0.1 localhost

e no httpd-vhosts.conf criar o vhost para o localhost

Publicado em Magento | Com a tag , , , | Deixar um comentário

[ Dica Zend ] – Como adicionar classes próprias|customizadas no Zend Framework

Atendendo ao pedido de um visitante do meu Blog, o colega Renan, ai vai uma dica fácil e rápido para você adicionar suas próprias classes no Zend Framework.

No seu arquivo application.ini, insira a linha:

;
; Obviamente, você deve colocar o nome que melhor
; lhe convém, no Caso, sempre terminando com o sufixo "_"
; neste caso Proprias vira Proprias_

autoloaderNamespaces.custom = "Proprias_"

; ou

autoloaderNamespaces[]  = "Proprias_"

Feito isto, você deve criar uma pasta com o mesmo nome que você passou para o registro de configurações do Zend dentro da sua pasta library.

library/Proprias

Agora, se você gostaria de criar uma classe qualquer, suponhamos, Teste, você deverá fazer o seguinte:

1) Criar a classe com o caminho completo para ela:
Ex.:

class Proprias_Teste
{
    ....
}

2) Salvar o arquivo com o nome da classe sem o prefixo:
Ex.: library/Proprias/Teste.php

Desta forma você já pode chamar sua classe em qualquer local dentro de sua aplicação:

class IndexController extends Zend_Controller_Action
{
    public function init()
    {
        $minhaClasse = new Proprias_Teste();
    }
    ....
}
Publicado em Dica, Zend Framework | Com a tag , , , , | 1 comentário

[ Dica Zend Framework ] – Como pegar o último id {lastInsertId} de uma consulta

Então, mas uma pegadinha do malandro!

Normalmente, quando estamos criando Models customizamos até mesmo o nome dos métodos padrões da classe Zend_Db_Table_Abstract e acabamos nos deparando com resultados inesperados.

Um exemplo prático:

Supondo que voce criou um Model Produtos, as chances de você criar um método cadastrar, ou novo, ou inserir, são enormes, dai a queixa.

...
public function cadastrar( $dados )  {
    $this->insert( $dados );
}
...

Ai na hora de inserir os dados você deseja saber o último id inserido e não sai nada.

E você faz algo do tipo:

...
public function cadastrarAction()  {
    $db = new Produtos();
    $dados = array(
        'nome' => $this->getRequest()->getPost('nome'),
        'descricao' => $this->getRequest()->getPost('descricao'),
        'valor' => $this->getRequest()->getPost('valor')
    )
    $id = $db->cadastrar( $dados );
}
...

Ai o que acontece? Voce insere certinho, mas não retorna o id.

A dica esta tem duas partes:

1) Talvez voce tenha esquecido de colocar o return no Model para o método cadastrar

...
    return $this->insert( $dados );
...

2) Voce não colocou o ID na variável $dados. Vale ressaltar aqui, que o Zend manipula os tipos de dados bem estritamente, e certas operações não estarão disponíveis se você não for específico com o tipo de dado em uso, neste caso, o ID a ser retornado é do tipo NULL e logo, você tem que fazer isto:

...
    $dados = array(
        'id' => null // observe que é null e nao 'null' entre aspas, senao seria string
...
Publicado em Dica, Zend Framework | Com a tag , , , | Deixar um comentário

Grupo PHP Fortaleza – pedido negado!

Que comédia e que tristeza ao mesmo tempo!
Participo de praticamente todos os grupos PHP do Brasil,
e para qual surpresa minha, estes dias me inscrevi no Grupo PHP de Fortaleza,
pois gosto de compartilhar meus conhecimentos, e?
-Negaram minha solicitação!
Tudo bem! De repente o pessoal de Fortaleza não queira estender os laços de conhecimentos com os sulistas!
Que pena! Vou colocar um bloqueio de IP para usuários de Fortaleza em meu blog!

Publicado em PHP | Com a tag , | Deixar um comentário

[ Zend Framework ] – Como chamar um Helper dentro de um Form

Boa pergunta!

Você já ouviu dizer que o Zend_Form não tem disponível para uso direto o famoso “$this->view->…” que utilizamos para passar variáveis e objetos para o View de nossa aplicação, pois supostamente, acredito que ele não faça parte do View (risos). Pela lógica, a classe em si não precisaria uma vez que é possivel…

Sim, mas ai vem o caso, e se estou criando um formulário e quero utilizar um helper que ja criei antes? Neste caso, alguem poderia dizer para utilizar um view script para o form e aplicar lá dentro do arquivo em questão as chamadas aos helpers.

É faria sentido, pois ai sim é o lugar de se usar Views, só não faria sentido se eu não quiser ou precisar utilizar tal recurso!

Bom, então para os que depois de buscas e mais buscas sem respostas de como se fazer isto, ai vai a dica:

Preferencialmente no início de seu método init() da classe estendida do Zend_Form que você está criando, insira o seguinte código:

class Application_Form_MeuFormularioDoidao extends Zend_Form
{
    protected $_myhelper;

    public funcion init( )
   {
        $this->_myhelper = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
    }
}

E para chamar o seu Helper, apenas faça o que você já conhece:

$seiLaOque = $this->_myhelper->view->meuHelperBonzao();
Publicado em Dica, Zend Framework | Com a tag , , , | Deixar um comentário