Dev & EngARTIGO

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.

é bacharel em Sistemas de Informação pelas Faculdades Unificadas Doctum de Cataguases e técnico de Informática Industrial pelo CEFET-MG. Possui o curso IBM DB2 v9 Fundamentals Certification. Atua na área desenvolvimento de sistemas, com as linguagens PHP e JavaScript e administra bancos de dados PostgreSQL. Tem experiência em administração de servidores Windows Server 2003 e Linux.

Mais de Marcus Vinícius Souza Costa
Ver perfil →