All truth passes through three stages. First, it is ridiculed. Second, it is violently opposed. Third, it is accepted as being self-evident.
Arthur Schopenhauer, German philosopher (1788 – 1860)
Nos últimos 2 anos o desenvolvimento WEB vem mudando muito, na minha opinão melhorando muito, uns dos motivos disso foi o surgimento do framework Ruby On Rails que mudou a maneira de pensar de muita gente pois mesmo sendo um framework MVC completo consegue manter a simplicidade e rapidez no desenvolvimento, ao contrario da maioria dos frameworks web java com seus excesso de XML e configurações.
Umas das vantages de Ruby on Rails sobre PHP é a elegância e modulariedade das aplicações feita em ROR , ao contrario do PHP que utilizado sem um bom conhecimento de arquitetura de software pode resultar em uma aplicação muito difícil de manter.
Uma maneira que se encontrou para melhorar a qualidade de sites feitos PHP foi a criação do Zend Framework, projeto liderado pela Zend principal mantenedora do PHP.
ZendFramework esta no mercado a um bom tempo e se mostrou excelente, é feito utilizando OOP e padrões de desenvolvimento, além de contar com uma documentação razoável , por isso é a minha escolha quando o assunto é framework PHP.
1. Baixando
Acesse http://zendframework.com e faça o download da versão mais recente, neste tutorial utlizarei a versão 1.9 Beta.
2. Configurando
Para quem esta começando essa é uma parte muito importante, pois é necessario configurar o Zend Framework corretamente para conseguir trabalhar de forma “pacifíca” com o framework PHP.
o primeiro passo é descompactar o arquivo baixado no item 1 e copiar este novo diretorio ,por exemplo, para C:\ZendFramework-1.9.0b1 de modo que fique parecido com a estrutura abaixo.
agora vá para seu php.ini normalmente no c:\windows e modifique seu arquivo para que fique parecido :
basicamente descomentar o include_path caso esteja comentado e adicionar um novo path para library do diretório do Zend Framework.
Falta ainda duas coisas, adicionar dois executaveis no path para isso, clique com botão direito no icone meu computador no desktop -> Advanced System settings -> aba Advanced -> Environment variables(variaveis de ambiente), escolha a variavel Path, e adicione no final o endereço completo do executavel PHP na sua maquina e endereço completo zf.bat(presenta na pasta bin, do Zend Framework), exemplo abaixo :
Pronto, agora para testar , abra o prompt de comando e execute.
zf show version
pronto, se como resposta do comando acima, conseguiu a resposta abaixo, o ZendFramework esta instalado corretamente e pronto para ser usado.
Observação : os procedimentos para alterar a variavel de ambiente, PATH, funcionou em um Windows XP, já no Windows Vista, mesmo reiniciando, não funcionou. Para funcionar copiei o conteúdo do diretorio bin do diretorio do Zend Framework para pasta c:\windows, o copiei também o executavel e dlls do php para basta c:\windows, depois disso funcionou, talvez não seja a melhor solução, mais fica registrado a dica.
3. Criando sua primeira aplicação
Basta ir para Document Root do apache,ou seja, o diretorio onde fica seus sites no apache e por linha de comando execute.
zf create project sample1
agora acesse http://localhost/sample1/public/
e deverá encontrar esta tela.
é onde sua aplicação Zend FrameWork deve estar rodando.
em futuros posts pretendo cobrir outros topicos deste fantastico FrameWork!
Se você já teve que montar um layout de um site com css usando tableless, você já deve saber como essa simples tarefa pode se torna um pesadelo para um iniciante.
É comum problemas, uma propriedade funciona na versão 7 do IE outra não.
Com base nisso esta surgindo o idéia de CSS Framework, basicamente eles fornecem toda essa infra-estrutura de CSS para você, como por exemplo definir fontes padrões, e claro montar o layout, ou grid do seu site.
Abaixo irei explicar como utilizar o Blue Print CSS e construir uma estrutura basica de um site, header, footer e menu esquerdo.
1. Faça o download do framework em http://www.blueprintcss.org/
2. Descompacte o arquivo e copie a pasta blueprint para o diretorio raiz do seu site, neste exemplo irei utilizar c:\trabalho\site1
3. Vamos carregar o nosso framework em nosso site
index.html
<!DOCTYPE html PUBLIC "-/W3c/DTD HTML 4.01/EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <link rel="stylesheet" href="blueprint/screen.css" type="text/css" media="screen,projection"> <link rel="stylesheet" href="blueprint/print.css" type="text/css" media="print"> <!--[uf IE]> <link rel="stylesheet" href="blueprint/ie.css" type="text/css" media="screen, projection"> <![endif]--> </head> <body> </body> </html>
pronto o nosso CSS Framework esta instalando agora vamos começar a usa-lo.
4. Definindo o nosso layout completo:
<!DOCTYPE html PUBLIC "-/W3c/DTD HTML 4.01/EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <link rel="stylesheet" href="blueprint/screen.css" type="text/css" media="screen,projection"> <link rel="stylesheet" href="blueprint/print.css" type="text/css" media="print"> <!--[uf IE]> <link rel="stylesheet" href="blueprint/ie.css" type="text/css" media="screen, projection"> <![endif]--> </head> <div id="container"> <h1> Aqui é conteúdo do header. </h1> <hr> <h2 class="alt"> Simples teste </h2> <hr> <div class="span-15 prepend=1 colborder"> <p> Um simples texto para conteúdo </p> </div> <div class="span-7 last"> <ul> <li><a href="#"> MENU 1 </a></li> <li><a href="#"> MENU 2 </a></li> </ul> </div> <hr> <p> Um simples rodapé </p> </div> <body> </body> </html>
é essa uma estrutura basica de um layout em html, bom com isso já é possivel ter uma ideia do framework, mais é necessario um aprofundamento maior para entender toda logica do framework.
Baixe os arquivos utilizados acima junto com framework AQUI.
Novamente o google, estava eu inocentemente navegando, lendo meus blogs preferidos quando me deparo com essa intrigante noticia, o google esta lançando mais um produto, pensei qual seria a novidade desta vez ? pois sempre que o google lança um produto eu fico com aquela sensação “por que não pensei nisso antes?”, entretanto este produto não chega a ser uma “novidade” pelo contrario ele nasceu com a web, então que produto é ? sim, isso mesmo um web browser e como de costume, para o google, “menos é mais” umas das principais caracteristica do navegador é a simplicidade, bom se ainda não é suficiente o pessoal do google criaram uma pagina para explicar o porque desta novidade.
Uma curiosidade é http://docs.jboss.com/seam/2.0.1.GA/reference/en/html/gettingstarted.html que é esse tal de seam-gen é basicamente uma cópia do generate do Ruby On Rails, até ae tudo bem mas reparem no trecho:
“But if you really want a fast edit/compile/test cycle, Seam supports incremental redeployment of JavaBean components. To make use of this functionality, you must deploy the JavaBean components into the WEB-INF/dev directory, so that they will be loaded by a special Seam classloader, instead of by the WAR or EAR classloader.”
e logo depois :
“ou need to be aware of the following limitations:
então em resumo este tal de ” fast edit/compile/test cycle” não existe com essas limitações… O mais engraçado é o “But if you really want” , se eu quero(preciso) ? não, eu não quero não… eu gosto de ficar reiniciando o tomcat…é divertido… perder o maior tempo e depois descobrir que o tomcat não fez o deployment da sua ultima alteração na sua classe, super legal.
Depois de muito ouvir falar desse tal de JBoss seam , hoje resolvi testar ele, fazer algum exemplo realmente facil para ver como ele funciona. Para isso fui até site do framework e baixei a versão [jboss-seam-2.0.3.CR1] eu já tinha baixado o JBoss [jboss-5.0.0.Beta4], com isso eu esperava ter tudo para rodar o tal JBoss Seam engano meu logo no começo para rodar o JBoss tive um problema, bem estranho, mais googlando “resolvi” tinha alguma coisa haver com java jdk 6, tudo bem adicionei um novo parametro para JVM e ok agora já era possível rodar o JBoss, claro para fazer isso la se foram uma 1 hora.
Depois disso já confiante que iria ver o JBoss Seam rodando na minha maquina, entrei no diretorio de exemplos do framework e depois de alguns minutos e um monte de build.xmls e build.properties eu era capaz de fazer o build das aplicações de exemplos no diretorio correto do JBoss.
E para ter “alguma base” abri o tutorial do Seam que começa pela aplicação “registration” depois de executar “ant” no diretório do exemplo, mais uma decepção :
*** CONTEXTS IN ERROR: Name -> Error
vfsfile:/C:/jboss-5.0.0.Beta4/server/default/deploy/jboss-seam-registration.ear
-> java.lang.RuntimeException: mapped-name is required for timerService of deplo
yment TimerServiceDispatcher
Novamente de volta ao google e desta vez sem muita sorte, depois de pelo menos uma hora, descobri que esse erro é realmente um bug, e que teria que baixar o JBoss com o release que corrigia este bug….
Em casa conexão discada… sem chance de baixar JBoss… então baixei esse tal de JBoss embebed [jboss-embedded-beta3-SNAPSHOT-bin] e mais uma vez depois de uma hora brigando com o bicho, devido a problemas de configurações especificos da minha maquina, “até que funcionou” consegui rodar alguns exemplos do JBoss Seam e já outros não funcionaram, por exemplo [registration]…
em resumo pretendia estudar o framework mais gastei quase todo tempo em problemas de configurações, talvez eu tenha escolhido errado as versões, pois quase todas elas era CR,BETA então vou tentar novamente mais somente com versões “estaveis” dos frameworks.
Mais de primeira o que notei no framework é a volta do EJB estilo “bem pesado”,”para rodar em servidor de aplicação” muito criticados em sua versão EJB 2.*.
Sobre o JBoss Seam a idéia do framework é Usar EntityBean(JPA e Hibernate) e um tal de Stateless Session Bean como a classe de ação.
bom lendo o tutorial percebe-se tem annotations para todo lado e alguns xmls(web.xml,persistence.xml,faces-config.xml,ejb-jar.xml).
A Java magazine deste mês fala deste framework, e pela matéria parece ser o framework “produtivo”, mais será mesmo ?
Outra critica é que JBoss Seam como próprio nome diz é “JBoss” teoricamente tem suporte para outros AS, mais sabe como é né ? “na pratica a teoria é outra…”.
bom vamos ver se na próxima tentativa eu tenha mais sorte.
Finalmente consegui encontrar um plugin para formatar os códigos fontes apresentados neste blog.
public class TestPlugin {
public static void main(String args[]) {
System.out.println("teste");
}
}
com isso irei aumentar a frequência de posts apresentados aqui.
Espero que em 2008, eu consiga postar mais e melhor.
Apples and Ideas
“If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have one idea and we exchange these ideas, then each of us will have two ideas.”
George Bernard Shaw
fonte:
Esses blogs são bem interessantes e engraçados.
http://blog.fragmental.com.br/
O Post http://gc.blog.br/2007/08/27/dijkstra-um-grande-jornalista/ é muito engraçado.
Alguns dos pedidos mais frequentes feitos por iniciantes em java nos fórums é um programa de exemplo feito em java… Por isso considero importante este link pois nele você irá encontrar um “programinha” simples(será ?) feito pelo próprio criador do java (e colaboradores), legal né ?
Trata-se de um simples “fazedor de apresentação” que James fez em virtude da sua necessidade de fazer muitas apresentações, coitadinho…
Segue o link https://huckster.dev.java.net/ , diverta-se !