Qcodo: um gerador de código para PHP
Veremos hoje um eficiente gerador de código para PHP↳PHP44 conteúdosPadronizando seu código com PHP CS FixerDev (Back & Front) · mai 2019Docker de imagem. Para rodar projetos PHP em menos de 30 segundosDev (Back & Front) · jan 2026PHP 7.3: conheça as novidades desta versãoDev (Back & Front) · abr 2019Ver tudo em Dev (Back & Front) →, o Qcodo.
Muitas vezes a utilização deste tipo de ferramenta é muito útil,
pois poupa tempo e sacrifício por parte do programador e, além de
tudo, faz com que o código fique mais organizado.
Geradores
de código são frameworks que utilizam ORM (Object Relational
Mapping). Em suma, ORMs tratam as tabelas de um banco de dados↳Banco de dados134 conteúdosSQL ou NoSQL: eis a questão!!Data · mar 2020Banco de dados: como organizar e dar segurança para milhões de dados de loteriasData · mai 20215 serviços gratuitos na cloud para bancos de dados PostgresData · fev 2025Ver tudo em Data →
relacional como classes. Isso facilita para o desenvolvedor, pois não é
necessário criar classes com conexões com o banco de dados, e
principalmente faz com que a aplicação seja independente do SGBD,
pois os métodos de acesso ao banco (conexão, execução de queries
e etc), são implementados pelo próprio framework. Imagine
desenvolver uma aplicação para Oracle e ao final do produto, você
tenha que escrever seu código todo compatível com DB2. Certamente
um esforço muito grande.
Nem
sempre é indicado o uso de geradores de código; em aplicações
críticas por exemplo, não é viável. Mas quando se trata de
aplicações menores, em que o tempo de entrega do produto é
prioridade, com certeza é uma excelente opção.
Existem
bons geradores de códigos para linguagens proprietárias, como o DEV
Force IdeaBlade para .NET, que também é um produto
pago.
Qcodo
O Qcodo é um framework de
desenvolvimento para aplicações web open-source, feito para PHP5.
Utiliza ORM, CRUD (Create, Retrive, Update, Delete). Traz recursos
como internacionalização e interfaces para funcionalidades AJAX,
dentre outros.
Ele é
divido em três principais partes, que são:
- Gerador de códigos (constrói
um ORM a partir da base de dados relacional) e assim a interface
parar o ORM. - Qforms (classes Orientadas a
Objeto geradas). - Qquery (utliza a SQL baseada
nas classes orientadas a objeto geradas) .
Em sua
página
é possível obter mais informações sobre projeto, exemplos
práticos e o download do código.
Exemplo de utilização
Neste exemplo irei
mostrar como um formulário é gerado rapidamente no Qcodo.
Praticamente basta indicar o banco de dados e todos os formulários
com as funções CRUD das tabelas é gerado.
Faça o download da última versão
do Qcodo (enquanto escrevia este artigo, a versão estável era a
0.4.10).
Após feito o download, crie um
diretório no DocumentRoot e descompacte os diretórios WWW, CLI e
INCLUDES do Qcodo para o diretório criado. Para nosso exemplo, vamos
chamar esse diretório de Qcodo_exemplo. Para verificar qual o
diretório DocumentRoot que seu Apache utiliza, basta verificar o que
é indicado nesta mesma variável no arquivo de configuração do
Apache, o http.conf.
Feito isto, renomeie o arquivo
codegen.xml-dist em CLI/SETTINGS/ para codegen.xml. Copie os arquivos
QApplication.class.php-dist e configuration.inc.php-dist dentro de
INCLUDES/QCODO/_CORE/ para INCLUDES e renomei-os para
QApplication.class.php e configuration.inc.php, respectivamente.
Com os arquivos já copiados e
renomeados dentro de INCLUDES, agora temos que editar o arquivo
configuration.inc.php. Neste arquivo, informamos qual o nosso
diretório DocumentRoot e o nosso alias para o exemplo
(Qcodo_exemplo). Além de informar os parâmetros de conexão com o
banco de dados.
A constante __DOCROOT__ dentro de
configuration.inc.php armazena nosso DocumentRoot, portanto basta
inserir o seu diretório DocumentRoot. Na constante __SUBDIRECTORY__,
adicionamos Qcodo_exemplo/www. Mas abaixo, basta informarmos os
parâmetros da conexão com o banco de dados. Nosso arquivo pronto
ficará parecido com a figura 1:
Figura 1: Configuração do
arquivo configuration.inc.php
No meu caso, o meu DocumenRoot é
C:\xampp\htdocs, mas basta substituir pelo seu. Perceba que no caso
do exemplo estiver sendo realizado no Windows, a barra separadora de
diretórios deve ser colocada invertida (/ ao invés de \).
Nesta
página há uma demonstração dos parâmetros para as conexões com os principais
SGBDs, que deverá ser informado na constante DB_CONNECTION. Sobre o
banco de dados do nosso exemplo, será usado o MySQL. Para a criação
do banco, segue as instruções SQL:
CREATE DATABASE qcodo;<br />USE qcodo;<br />CREATE TABLE usuarios (<br />id INT(11) NOT NULL AUTO_INCREMENT, nome VARCHAR(50),<br />PRIMARY KEY (id)<br />);<br />CREATE TABLE cidade (<br />codCidade INT(11) NOT NULL AUTO_INCREMENT, nome VARCHAR(50),<br />PRIMARY KEY (codCidade)<br />);<br />INSERT INTO usuarios (nome) VALUES ('PHP'),('MySQL'),('Qcodo');<br />INSERT INTO cidade (nome) VALUES ('Cataguases'), ('São Paulo'), ('Leopoldina');Agora,
basta abrir o browser e digitar o endereço
http://localhost/Qcodo_exemplo/www.
Se tudo ocorrer bem, uma página similar à figura 2 será exibida:

Figura
2: Página inicial da configuração do Qcodo
Esta página mostra as informações
de conexão com o banco de dados e outras informações. Nela é dito
para executar um arquivo que fica dentro de CLI, o qcodo. Este
arquivo se encarregar de gerar as classes com os formulários para
cada tabela do banco de dados.
Para sistemas POSIX, você deve
editar o arquivo qcodo. Se seu sistema é Windows, edite o arquivo
qcodo.bat.
Para e edição você deve informar na
variável PHP_COMMAND qual o seu diretório do PHP (para sistemas
Windows).
Feito isto, basta abrir o prompt de
comandos do seu sistema operacional e executar o comando qcodo
codegen, como mostrado na tela de apresentação que você gerou.
Se tudo ocorrer bem, o resultado será
similar ao da figura 3:
Figura 3: Resultado
do comando gerador de classes
Agora foi feito o mapeamento do banco
de dados, e geradas as classes. Entre novamente na url inicial do
qcodo, e selecione /Qcodo_exemplo/www/drafts. Será exibida uma lista
com opções de selecionar todos os dados das tabelas ou inserir
dados, como na figura 4:

Figura 4: Listagem
de todas as tabelas do banco de dados
Além disto, temos a opção de
visualização dashboard.
Para ilustrar todos os passos acima,
há um vídeo
em inglês onde é feita a demonstração.
Conclusão
O Qcodo é simples de usar, se comparado a outros geradores de
código para PHP. Como dito no início, geradores de código
facilitam o desenvolvimento da aplicação, poupando tempo. Mas em
alguns casos, não são viáveis, sendo a melhor solução a boa e
velha filosofia de que “se você necessita, faça você mesmo”.
Espero ter sido útil. Um abraço a todos.









José Carlos Macoratti
Cezar Taurion
Loiane Groner





