felipeNascimento.org(true);

Making the web a better place to live

Browsing Posts in Learned Stuff / Tips

I’m quite proud to talk about these new marks and goals.
We’ve also had many feedback, which has helped a lot.

A little secret. I’m working hard to provide a new version with some new features and with a real better engine for the Function Search.

PHPDevBar 2.0.1 released

No comments

This last week we released the latest version of PHPDevBar.
Better, Mozilla has approved it and now it opened to be downloaded at mozilla’s website.

We hope we will have many comments and feedback about it. Ideas are also very welcome.

Hey folks.
I prepared this small function to use, once it’s many times needed and we don’t have it natively in JavaScript. I have many times searched for it through google and couldn’t find a reall interesting lib to it.
Then, I prepared this one.
You can see the example of the output in my projects directory. And you can download the print_j js.

Quero apresentar neste post, e em alguns mais que virão, como podemos criar uma aplicação completa a partir de não mais que 6 linhas utilizando o theWebMind.
Um de seus principais desafios é mostrar como podemos explorar muito mais de algumas de nossas capacidades, que são verdadeiros diferenciais contra as máquinas, ao mesmo tempo, sabendo extrair o que há de melhor nas máquinas, e que não temos sequer chance de concorrer. Sim, estou falando de criatividade, inovação, imaginação, versus habilidade matemática, lógica e performance ao se aplicar regras.
TheWebMind está em sua versão Pre-Alpha 2.0.0 e com certeza ainda ha muitas melhorias por vir, além de possíveis bugs a serem corrigidos.

Com o último release, uma das principais novidades é o módulo nativo Zend Models, que gera uma estrutura MVC utilizando o Zend Framework.

Caso ainda não conheça o Mind, como assim o chamamos, visite seu site oficial e veja a documentação.

Após ter baixado o último release do Mind e tê-lo movido para um diretório em seu ambiente de desenvolvimento PHP, por exemplo, https://localhost/thewebmind/, basta acessar tal endereço para vê-lo funcionando. Ao ser acessado pela primeira vez, o Mind tratará de criar um usuário padrão, que recomendamos que se altere a senha, e prepara o ambiente todo, mesmo que você nem perceba. A partir daí, ja estarás apto a sair usando o Mind.
Caso tenha tido algum problema nesta parte, visite a nossa FAQ e a página com detalhes sobre a instalação.

Sobre o sistema a ser desenvolvido:
Pensei no que preparar, de forma a mostrar de tudo um pouco, e por isto decidi fazer um sistema de posts, onde usuários pudessem criar posts, e outros usuários pudessem comentar os mesmos, além de dar uma nota de 1 a 5.

1º Passo, criando um projeto no Mind

Já logado na IDE do Mind, acesse o menu File, e então New Project. Um formulário será exibido solicitando algumas informações.
Note que não é necessário ter uma base de dados já funcionando para ir desenvolvendo o projeto, porém, ao se solicitar que o Mind gere os arquivos ou a base de dados, sim, neste momento será necessário a existência de um banco de dados já configurado. Aconselho a já cadastrar os dados para um banco de dados desde o início. Podemos ainda cadastrar duas bases de dados diferentes, uma para testes e outra pra produção.

2º Passo, escrevendo em WML

A sintaxe da linguagem WML é baseada no conceito NLP (Natural Language Processing), que consiste basicamente em ser semelhante a linguagem humana natural(Português, Inglês, Espanhol, etc), e ainda obedece ao conceito de programação discreta.
Caso precise de alguma ajuda nesta sintaxe, visite a documentação do Mind sobre WML.

O código que preparei para este protótipo foi o que segue:

Sabemos que todo login tem nome:caractere(60).
Também, o login tem idade:inteiro(). E login pode ter muitos post.
Sendo que cada post tem título:string(40, obrigatório).
E todo post tem descrição:texto().
Post pode ter muitos comentário.
Comentário tem mensagem:varchar(140).
Enquanto que todo o comentário
tem pontuação:inteiro(-1, {1=Ruim|2=Regular|3=Bom|4=Muito Bom|5=Ótimo}).

Para compreender o que foi escrito: apenas com estas 7 linhas de código conseguimos representar um problema relativamente complexo.
A instrução mais complexa é a ultima, onde especificamos que os comentarios terão uma pontuação, e que a mesma somente aceitará 5 opções de valores numericos. Apontamos -1 como tamanho do inteiro, para que o mesmo tenha um tamanho padrão, e então especificamos os valores válidos para este atributo e suas respectivas lábels. Para maiores detalhes, veja em na sessão de atributos na documentação do mind.

3º Rodando o projeto

Para rodar o projeto, o que atualizará o output do mesmo, será necessário ter o projeto já salvo com o código atual, e entao clicar no ícone Run project na barra de ferramentas sobre o editor do Mind, ou pelo menu Tools>Run/Simulate.
Neste momento, as saídas serão atualizadas tanto no painel de output, na parte inferior da tela, quanto na árvore contendo a estrutura do projeto, na lateral esquerda da IDE.
Confira algumas das saídas para este projeto:
Código DDL - criação da estrutura na base de dados

Diagrama ER para o projeto gerado

Árvore, representando a estrutura do projeto trabalhado

4º Gerando o projeto

Para gerar um projeto, use o menu Tools>Generate Project ou o ícone Generate Project sobre o editor do theWebMind.
Um wizard irá abrir com alguns passos a serem seguidos:

  1. Escolha o que planejas gerar. Nesta tela, selecione a opção que melhor se adapta. Escolheremos a segunda, para criar os arquivos, MAIS a base de dados no banco de dados que cadastramos como desenvolvimento.
  2. Na segunda tela, selecionaremos um módulo para ficar como responsável pelo código a ser gerado. Neste caso, selecionaremos o módulo ZendModels.
    – Note que há requisitos para usar este módulo, como htaccess ativo e a biblioteca library na raíz de seu servidor
  3. A terceira tela lhe oferecerá opções sobre o módulo selecionado ou detalhes do passo-a-passo. Neste caso, o ZendModels não tem nenhuma especificação extra, porém será perguntado se desejamos pular(skip) ou substituir (replace) as tabelas que já existirem no banco de dados. Como a base ainda está limpa, esta opção é indiferente neste momento.

Ao clicar em avançar, theWebMind irá automáticamente iniciar a gerar os arquivos e a interagir com a base de dados para criar as tabelas necessárias.
Ao término desta tarefa, lhe será oferecido um link, here que lhe levará aos arquivos gerados. Os mesmos também estão acessíveis em View>Temp Project Files.

6º Testando a aplicação gerada

Simplesmente fazendo isto, já temos um sistema pronto e funcionando de forma simples. Somente o que precisaremos fazer será editar as views para ter uma interface melhor adaptada à real necessidade.
Na modal onde vemos os códigos gerados, logo no topo da árvore que representa a estrutura de arquivos vemos um link com o nome do projto. Clicando nele seremos levados para onde a aplicação gerada esta rodando. Outra forma de chegarmos a estes arquivos paramovermos para outro servidor é atraves do endereço: <theWebMind root>/restrict/users/<user name>/temp/<project name>/root/

Publiquei o sistema gerado, sem nenhuma alteração, aqui, onde você poderá ver e testar como ficou o resultado.

Enfrentando possíveis problemas

Caso tenha tido algum problema ao gerar o mesmo sistema, verifique se o htaccess está aivo na configuração do seu server. Confirme também que a biblioteca do Zend Framework está no diretório raíz do seu servidor HTTP. O que enfrentamos também, foi que algumas configurações no apache limitam o htaccess, então teste removendo as linhas:

php_flag magic_quotes_gpc off
php_flag register_globals off

Enfim, tentei expressar neste post como podemos com apenas algumas poucas linhas, desenvolver uma aplicação já funcional com toda a estrutura e classes seguindo o padrão ZF.
Você encontra outro exemplo de aplicação gerada a partir do Mind no blog do Jaydson.
Espero ter um feedback sobre suas experiências a respeito do theWebMind.

Abraços a todos.

PHP Developer ToolBar 2.0

No comments

I’ve just worked, all the week, due to release this second version before my classes restart in the university.
I can say I learned many great things doing this new addon (specialy about XUL) and it’s very better than the first.
This second version is not focused in Brazilian groups, anymore and its special detail is that now you can see a function’s details without get out of the current page, it opens a smal floating panel with the function data.
You can, of course, search into official websites, browse new tools and applications focused in PHP of navigate through a huge list of PHP user groups.

Download at mozilla.

The addon has already reached more than 4 thousand downloads.