Criar e Executar um Projeto CodeIgniter
O que é CodeIgniter?
CodeIgniter é um framework PHP leve, adequado para desenvolver aplicações web rápidas e eficientes. Ele segue o padrão de design MVC (Model-View-Controller), oferecendo um rico conjunto de recursos e ferramentas que permitem aos desenvolvedores construir rapidamente aplicações web de alta qualidade. Conhecido por sua simplicidade, alto desempenho e facilidade de aprendizado, o CodeIgniter é uma escolha popular entre os desenvolvedores.
Principais Recursos e Vantagens do CodeIgniter
- Leve: O sistema central do CodeIgniter é muito pequeno, contendo apenas os componentes necessários, o que o torna rápido para carregar.
- Alto Desempenho: O CodeIgniter é famoso por seu desempenho eficiente e velocidade, capaz de lidar com alta concorrência.
- Fácil de Aprender: Oferece uma API simples e fácil de usar junto com documentação abrangente, permitindo que os desenvolvedores comecem rapidamente.
- Flexibilidade: Permite que os desenvolvedores escolham e usem bibliotecas e plugins de terceiros livremente, facilitando extensões e personalizações.
- Forte Suporte Comunitário: Há uma comunidade ativa de desenvolvedores e uma riqueza de extensões de terceiros.
O CodeIgniter pode ajudar os desenvolvedores a construir rapidamente aplicações web de alto desempenho e alta qualidade, adequado para projetos de qualquer escala.
Criar e Executar um Projeto CodeIgniter Usando ServBay
Neste artigo, usaremos o ambiente PHP do ServBay para criar e executar um projeto CodeIgniter. Utilizaremos a função 'Host' do ServBay para configurar o servidor web e obter acesso ao projeto através de uma configuração simples.
Nota: Se você era um usuário do NGINX ou Apache
O ServBay usa o Caddy como servidor web padrão. Para usuários que estão migrando do NGINX e Apache para o ServBay, há algumas mudanças principais das quais devem estar cientes:
Configuração do Caddy
O Caddy já está embutido no ServBay, e a configuração padrão foi otimizada e depurada. Os desenvolvedores só precisam gerenciar o site através da função ‘Host’ do ServBay sem modificar manualmente os arquivos de configuração do Caddy.
Regras de Reescrita e .htaccess
No NGINX e Apache, os desenvolvedores geralmente precisam escrever suas próprias regras de reescrita e arquivos .htaccess para reescrita de URL e outras configurações. No entanto, com o ServBay, as regras para o Caddy vêm pré-configuradas, o que significa que, a menos que haja um requisito especial, os desenvolvedores não precisam escrever essas regras.
Saiba Mais
Para mais informações, consulte Reescrita e htaccess, Como Migrar um Website Apache para ServBay, Como Migrar um Website NGINX para ServBay.
Criar um Projeto CodeIgniter
TIP
O ServBay recomenda que os desenvolvedores coloquem seus sites no diretório /Applications/ServBay/www
para facilitar o gerenciamento.
Instalar o Composer
O Composer vem pré-instalado com o ServBay, portanto, não há necessidade de instalá-lo separadamente.
Criar um Projeto CodeIgniter
Use o Composer para criar um novo projeto CodeIgniter:
bashcd /Applications/ServBay/www mkdir servbay-codeigniter-app cd servbay-codeigniter-app composer create-project codeigniter4/appstarter .
1
2
3
4Entrar no Diretório do Projeto
Entre no diretório do projeto CodeIgniter recém-criado:
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
Configuração Inicial
Configurar Conexão com o Banco de Dados
Configure as configurações de conexão com o banco de dados no arquivo
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8mb4', 'DBCollat' => 'utf8mb4_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Configurar o Servidor Web
Use a função 'Host' do ServBay para acessar o projeto CodeIgniter via servidor web. Adicione um novo host nas configurações do 'Host' do ServBay:
- Nome:
Meu Primeiro Site Dev CodeIgniter
- Domínio:
servbay-codeigniter-test.local
- Tipo de Site:
PHP
- Versão do PHP: Selecionar
8.3
- Diretório Raiz do Site:
/Applications/ServBay/www/servbay-codeigniter-app/public
Para etapas detalhadas de configuração, consulte Adicionando o Primeiro Website.
Adicionar Código de Exemplo
Adicione o seguinte código no arquivo app/Controllers/Home.php
:
namespace App\Controllers;
use CodeIgniter\Controller;
class Home extends Controller
{
public function index()
{
return 'Hello ServBay!';
}
public function memcached()
{
$cache = \Config\Services::cache();
$cache->save('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $value;
}
public function redis()
{
$redis = \Config\Services::cache();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $value;
}
public function mysqlAdd()
{
$db = \Config\Database::connect();
$db->table('users')->insert([
'name' => 'ServBay',
'email' => '[email protected]',
]);
return 'User added';
}
public function mysql()
{
$db = \Config\Database::connect();
$users = $db->table('users')->get()->getResult();
return json_encode($users);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Acessar o Website
Abra seu navegador e visite a seguinte URL:
https://servbay-codeigniter-test.local
: Você verá a página exibindoHello ServBay!
.
Exemplos de Banco de Dados NoSQL
Exemplo Memcached
Instalar Extensão Memcached
A extensão Memcached vem pré-instalada no ServBay, portanto, não é necessária instalação adicional.
Configurar Memcached
Configure as informações de conexão Memcached no arquivo
app/Config/Cache.php
:phppublic $memcached = [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 1, ];
1
2
3
4
5Usar Memcached
Use o cache no controlador:
phppublic function memcached() { $cache = \Config\Services::cache(); $cache->save('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $value; }
1
2
3
4
5
6
7Adicione a rota em
app/Config/Routes.php
:php$routes->get('/memcached', 'Home::memcached');
1Abra um navegador e visite https://servbay-codeigniter-test.local/memcached
Exemplo Redis
Instalar Extensão Redis
A extensão Redis vem pré-instalada no ServBay, portanto, não é necessária instalação adicional.
Configurar Redis
Configure as informações de conexão Redis no arquivo
app/Config/Cache.php
:phppublic string $handler = 'redis'; public $default = [ 'host' => '127.0.0.1', 'password' => null, 'port' => 6379, 'timeout' => 0, 'database' => 0, ];
1
2
3
4
5
6
7
8
9Usar Redis
Use o cache no controlador:
phppublic function redis() { $redis = \Config\Services::cache(); $redis->save('key', 'Hello Redis!'); $value = $redis->get('key'); return $value; }
1
2
3
4
5
6
7Adicione a rota em
app/Config/Routes.php
:php$routes->get('/redis', 'Home::redis');
1Abra um navegador e visite https://servbay-codeigniter-test.local/redis
Exemplos de Banco de Dados Relacional
Exemplo MySQL
Configurar MySQL
Configure as informações de conexão MySQL no arquivo
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8mb4', 'DBCollat' => 'utf8mb4_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Criar Arquivo de Migração
Use a ferramenta de linha de comando do CodeIgniter para criar um arquivo de migração:
bashphp spark make:migration create_users_table
1Editar Arquivo de Migração
Encontre o arquivo de migração recém-criado no diretório
app/Database/Migrations
e edite-o para definir a estrutura da tabela do banco de dados:phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Executar Migração
Use o comando de migração do CodeIgniter para executar a migração e criar a tabela do banco de dados:
bashphp spark migrate
1Adicionar Rota
Adicione as seguintes rotas em
app/Config/Routes.php
:php$routes->get('/mysql-add', 'Home::mysqlAdd'); $routes->get('/mysql', 'Home::mysql');
1
2Inserir Dados de Usuário
Insira os dados de usuário no controlador:
phppublic function mysqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9Usar MySQL
Chame o banco de dados no controlador:
phppublic function mysql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Abra um navegador e visite
https://servbay-codeigniter-test.local/mysql-add
ehttps://servbay-codeigniter-test.local/mysql
Exemplo PostgreSQL
Configurar PostgreSQL
Configure as informações de conexão PostgreSQL no arquivo
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'Postgre', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 5432, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Criar Arquivo de Migração
Use a ferramenta de linha de comando do CodeIgniter para criar um arquivo de migração:
bashphp spark make:migration create_users_table
1Editar Arquivo de Migração
phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Executar Migração
Use o comando de migração do CodeIgniter para executar a migração e criar a tabela do banco de dados:
bashphp spark migrate
1Adicionar Rotas
Adicione as seguintes rotas em
app/Config/Routes.php
:php$routes->get('/pgsql-add', 'Home::pgsqlAdd'); $routes->get('/pgsql', 'Home::pgsql');
1
2Inserir Dados de Usuário
Insira os dados de usuário no controlador:
phppublic function pgsqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9Usar PostgreSQL
Chame o banco de dados no controlador:
phppublic function pgsql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Abra um navegador e visite
https://servbay-codeigniter-test.local/p;pgsql-add
ehttps://servbay-codeigniter-test.local/pgsql
Através dos passos acima, você criou e executou com sucesso um projeto CodeIgniter, usou os recursos do ServBay para gerenciar e acessar seu projeto, e conectou-se a vários bancos de dados para interagir com dados. Espero que este artigo ajude você a começar rapidamente com o CodeIgniter e aplicá-lo aos seus projetos.