Como Arquiteto de Software não posso deixar de olhar para as outras
soluções que estão fora do mundo Java↳Java42 conteúdosNovidades do Java 26 (para desenvolvedores)Dev (Back & Front) · mar 2026Visual Studio Code para Java: o guia completo (dicas, configuração e extensões)Dev (Back & Front) · out 2025Quarkus: Modernizando a linguagem Java para a era da nuvemDev (Back & Front) · nov 2020Ver tudo em Dev (Back & Front) →. Desenvolver um sistema em Java
pode trazer diversas vantagens, mas também pode trazer complexidade e
custo desnecessário.
Aplicações para empresas de pequenas e médio tamanho consideram o
uso de PHP como solução para seus sistemas web. Dependendo das
características e dos requisitos do sistema, o PHP é uma
ótima solução. A evolução dos frameworks MVC em PHP foi muito boa
nestes últimos anos.
O que é MVC mesmo?
É um padrão de arquitetura de software largamente utilizado em
soluções para Web. Sua principal vantagem é a separação das telas (view)
da camada de negócio (model). Você pode usar MVC em um sistema desktop;
dependendo do sistema, será uma boa escolha.
Neste artigo vou mostrar como pode ser fácil e rápido construir uma solução usando MVC com PHP, neste caso vou usar o framework CodeIgniter.
Por que não Java?
Porque dependendo do sistema seria só adicionar mais complexidade
e custo. Desenvolver um sistema em Java é mais caro, isso não significa
que devemos fazer todos os sistemas em PHP, mas sempre temos que
balancear e a escolha da tecnologia tem sempre que levar a
complexidade do sistema em conta.
Code Igniter
Com esse framework em PHP você verá como que é fácil e simples de
desenvolver um sistema MVC de qualidade, com pouca configuração. Vou
mostrar um exemplo simples, mas será o suficiente para que você veja as facilidades e a qualidade da solução.
Requisitos
- PHP 5.2
- Apache 2.2
- Mysql↳MySQL8 conteúdosMySQL + Adminer + Docker Compose: montando rapidamente um ambiente para usoData · abr 2019Banco de dados MYSQL no PHPStormDev (Back & Front) · jul 2019Criando um ambiente de desenvolvimento PHP mínimo com Docker – Parte 3Dev (Back & Front) · out 2019Ver tudo em Data → 5
- Code Igniter 1.7.1
Não
entrarei nos detalhes de como instalar e configurar o PHP no Apache com
suporte a Mysql. Para instalar o Code Igniter basta extrair o framework
dentro da sua pasta onde você está listando as páginas no Apache.
Vamos mexer na pasta application que fica no caminho CodeIgniter_1.7.1\system\application. Primeiro criarei o Controller. Para criar um model basta ir na pasta models e criar uma página PHP. Confira o código abaixo:
test_model.php
<?php<br /><br /><br /><br />class Test_model extends Model {<br /><br /><br /><br /> var $id = '';<br /><br /> var $nome = '';<br /><br /> var $endereco = '';<br /><br /><br /><br /> function Test_model(){<br /><br /> parent::Model();<br /><br /> }<br /><br /><br /><br /> function get_last_ten()<br /><br /> {<br /><br /> $query = $this->db->get('pessoa', 10);<br /><br /> return $query->result();<br /><br /> }<br /><br /><br /><br />}<br /><br /><br /><br />?>Existem algumas formas de nomear uma classe model. Essa classe é
responsável pela regras de negócio e acesso ao banco de dados. Repare
que o nome da classe é igual ao nome do arquivo (test_model.php) só que
com a primeira letra em maiúscula.
Os atributos com “var $” são referentes aos atributos que existem
no banco de dados, neste exemplo existe o método get_last_ten que
retorna os últimos registros da tabela pessoa do banco de dados.
Criei um banco de dados no mysql com uma tabelinha. Segue o script do banco:
-- phpMyAdmin SQL Dump<br />-- version 3.2.0<br />-- http://www.phpmyadmin.net<br />--<br />-- Host: localhost<br />-- Generation Time: Jul 04, 2009 at 07:54 PM<br />-- Server version: 5.0.67<br />-- PHP Version: 5.2.10<br /><br />SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";<br /><br />--<br />-- Database: `test`<br />--<br /><br />-- --------------------------------------------------------<br /><br />--<br />-- Table structure for table `pessoa`<br />--<br /><br />CREATE TABLE IF NOT EXISTS `pessoa` (<br /> `id` int(11) NOT NULL auto_increment,<br /> `nome` varchar(30) NOT NULL,<br /> `endereco` varchar(150) NOT NULL,<br /> PRIMARY KEY (`id`)<br />) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;<br /><br />--<br />-- Dumping data for table `pessoa`<br />--<br /><br />INSERT INTO `pessoa` (`id`, `nome`, `endereco`) VALUES<br />(2, 'Diego', 'GTI Centro'),<br />(3, 'Bruna', 'Centro Viamao');Agora que temos o model e o banco vamos ao Controller, que controla tudo. Para isso basta criar outra página PHP no diretório CodeIgniter_1.7.1\system\application na parte de controllers.
Confira o código do controller abaixo:
test.php
<?php<br /><br /><br /><br />class Test extends Controller {<br /><br /><br /><br /> function Test() {<br /><br /> parent::Controller(); <br /><br /> }<br /><br /><br /><br /> function index(){<br /><br /><br /><br /> $data = array(<br /><br /> 'nomeApp' => 'CodeIgnitorAppTest',<br /><br /> 'developer' => 'Diego Pacheco'<br /><br /> );<br /><br /><br /><br /> $this->load->view('test',$data);<br /><br /> }<br /><br /><br /><br /> function listar(){<br /><br /><br /><br /> $data = array(<br /><br /> 'nomeApp' => 'CodeIgnitorAppTest',<br /><br /> 'developer' => 'Diego Pacheco'<br /><br /> );<br /><br /><br /><br /> $this->load->model('Test_model','myModel');<br /><br /> $data['query'] = $this->myModel->get_last_ten();<br /><br /> $this->load->view('test', $data);<br /><br /> }<br /><br />}<br /><br /><br /><br />?>Algumas explicações, o método index é executado por padrão, cada
método desta classe poderá ser acessível quando você acessa pelo
browser
http://localhost/CodeIgniter_1.7.1/index.php/nomeDoController/nomeDoMetodo/parametros
Logo, digitando http://localhost/CodeIgniter_1.7.1/index.php/test
você entra na aplicação acessando o método padrão chamado index. No
método index estou criando uma variável chama de data, que é um array, e
dentro desse array estou passando dois parâmetros. Também estou
mandando carregar a view chamada de test.
Vamos ao código da View… Confira o código abaixo:
test.php
<html><br /><head><br /><title>Primeira View com CodeIgniter</title><br /></head><br /><body><br /><br /><h1>View gerada pelo CodeIgniter!</h1><p><br /><br /><b><?=$nomeApp;?></b> Desenvolvida por: <b><?=$developer;?></b><br /><br /><br /><br /><br /><?php if(isset($query)) { ?><br /><br /><h3>Lista de Pessoas</h3> <br /><ul><br /><br /><?php foreach($query as $item):?><br /><li> <?php echo $item->id;?> | <?php echo $item->nome;?> </li><br /><?php endforeach; }else{ echo "<a href="'test/listar'">Listar Pessoas</a>"; } ?><br /><br /></ul><br /><br /><br /><br /><br />Página renderizada em {elapsed_time} segundos</p><br /><br /></body><br /></html>A página deve estar dentro de CodeIgniter_1.7.1\system\application views.
Como pode ver é uma página html com blocos de código PHP. Se o usuário
clicar em listar o framework, vai chamar o controller no método listar,
que chamará o model pegando os registros da tabela pessoa e voltando
ao controler que repassa isso à view pela variável $query.
Para que toda essa aplicação funcione, você deve configurar o acesso
ao banco de dados e carregar as bibliotecas. Para isso, entre na pasta
config e edite o arquivo autoload.php e procure pela linha
$autoload[‘libraries’] = array(); a substitua por:
$autoload[‘libraries’] = array(‘database’); assim estamos carregando o
módulo de banco de dados.
Agora só falta configurar o acesso ao banco. Abra o arquivo
database.php também na pasta config, neste caso, como é um exemplo, estou
com a instalação default sem senha do root, mas isso não é aconselhável
para sua aplicação.
$active_group = "default";<br />$active_record = TRUE;<br /><br />$db['default']['hostname'] = "localhost";<br />$db['default']['username'] = "root";<br />$db['default']['password'] = "";<br />$db['default']['database'] = "test";<br />$db['default']['dbdriver'] = "mysql";<br />$db['default']['dbprefix'] = "";<br />$db['default']['pconnect'] = TRUE;<br />$db['default']['db_debug'] = TRUE;<br />$db['default']['cache_on'] = FALSE;<br />$db['default']['cachedir'] = "";<br />$db['default']['char_set'] = "utf8";<br />$db['default']['dbcollat'] = "utf8_general_ci";E, pronto, agora temos uma mini aplicação MVC com o CodeIgniter. O
bom é que isso pode ser feito em menos de 5 minutos e com uma excelente
qualidade. Estou desenvolvendo uma aplicação com esse framework e mais
para frente mostro outras facilidades.
Abraços.





