Criar e Executar um Projeto FuelPHP
O que é FuelPHP?
FuelPHP é um framework PHP flexível e modular projetado para desenvolver aplicações web modernas. Ele segue o padrão de design HMVC (Hierarchical Model-View-Controller) e fornece um conjunto rico de recursos e ferramentas que permitem aos desenvolvedores construir rapidamente aplicações web de alta qualidade. Conhecido por sua flexibilidade, alto desempenho e facilidade de extensão, FuelPHP é uma escolha preferida para muitos desenvolvedores.
Principais Características e Vantagens do FuelPHP
- Arquitetura HMVC: Suporta padrões de design MVC hierárquicos, facilitando a reutilização de código e desenvolvimento modular.
- Alto Desempenho: FuelPHP é conhecido por seu desempenho eficiente e velocidade, capaz de lidar com requisições de alta concorrência.
- Fácil de Estender: Oferece um mecanismo de extensão rico que permite aos desenvolvedores adicionar funcionalidades personalizadas facilmente.
- Segurança: Inclui múltiplos recursos de segurança embutidos, como validação de entrada, filtragem de saída e proteção contra CSRF.
- Forte Suporte da Comunidade: Tem uma comunidade de desenvolvedores ativa e uma riqueza de extensões de terceiros.
FuelPHP pode ajudar os desenvolvedores a construir rapidamente aplicações web de alto desempenho e alta qualidade, adequadas para projetos de vários tamanhos.
Criando e Executando um Projeto FuelPHP com ServBay
Neste artigo, usaremos o ambiente PHP fornecido pelo ServBay para criar e executar um projeto FuelPHP. Configuraremos um servidor web usando o recurso "Host" do ServBay e alcançaremos o acesso ao projeto através de uma configuração simples.
Nota: Para usuários que anteriormente usaram NGINX ou Apache
O ServBay utiliza por padrão o Caddy como servidor web. Para usuários que estão migrando do NGINX e Apache para o ServBay, há algumas mudanças importantes a serem notadas:
Configuração do Caddy
O ServBay tem o Caddy integrado, e a configuração padrão é otimizada e depurada. Os desenvolvedores só precisam gerenciar os sites via o recurso "Host" do ServBay sem modificar manualmente o arquivo de configuração do Caddy.
Regras de Reescrita e .htaccess
No NGINX e no 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, o ServBay vem pré-configurado com regras do Caddy, então os desenvolvedores não precisam escrever essas regras, a menos que haja requisitos especiais.
Saiba Mais
Para mais informações, consulte Reescrita e htaccess, Como Migrar Sites Apache para ServBay e Como Migrar Sites NGINX para ServBay.
Criando um Projeto FuelPHP
TIP
O ServBay recomenda colocar os sites no diretório /Applications/ServBay/www
para facilitar o gerenciamento.
Instalar Composer
O Composer vem pré-instalado no ServBay, portanto, não é necessária uma instalação separada.
Criar um Projeto FuelPHP
Use o Composer para criar um novo projeto FuelPHP:
bashcd /Applications/ServBay/www mkdir servbay-fuelphp-app cd servbay-fuelphp-app composer create-project fuel/fuel .
1
2
3
4Navegue até o Diretório do Projeto
Entre no diretório do projeto FuelPHP recém-criado:
bashcd /Applications/ServBay/www/servbay-fuelphp-app
1
Configuração Inicial
Configurar Conexão ao Banco de Dados
Configure as informações de conexão ao banco de dados no arquivo
fuel/app/config/development/db.php
:phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9
Configurando o Servidor Web
Use o recurso "Host" do ServBay para acessar o projeto FuelPHP através de um servidor web. Nas configurações do "Host" do ServBay, adicione um novo host:
- Nome:
Meu Primeiro Site FuelPHP Dev
- Domínio:
servbay-fuelphp-test.local
- Tipo de Website:
PHP
- Versão do PHP: selecione
8.3
- Diretório Raiz do Website:
/Applications/ServBay/www/servbay-fuelphp-app/public
Para passos detalhados de configuração, consulte Adicionando o Primeiro Website.
Adicionando Código de Exemplo
Adicione o seguinte código no arquivo fuel/app/classes/controller/welcome.php
:
use Fuel\Core\Controller;
use Fuel\Core\Response;
use Fuel\Core\Cache;
use Fuel\Core\DB;
class Controller_Welcome extends Controller
{
public function action_index()
{
return Response::forge('Hello ServBay!');
}
public function action_memcached()
{
Cache::set('key', 'Hello Memcached!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_redis()
{
Cache::set('key', 'Hello Redis!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_mysql_add()
{
DB::insert('users')->set([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return Response::forge('User added');
}
public function action_mysql()
{
$users = DB::select()->from('users')->execute()->as_array();
return Response::forge(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
45
Acessar o Website
Abra o seu navegador e visite a seguinte URL:
https://servbay-fuelphp-test.local
: Você verá a página com a saídaHello ServBay!
.
Exemplos de Banco de Dados NoSQL
Exemplo de Memcached
Instalar Extensão Memcached
A extensão Memcached vem pré-instalada com o ServBay, não sendo necessária instalação adicional.
Configurar Memcached
Configure as informações de conexão Memcached no arquivo
fuel/core/config/cache.php
:phpreturn [ 'driver' => 'memcached', 'memcached' => [ 'cache_id' => 'fuel', 'servers' => [ 'default' => [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ] ], ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14Adicionar Rotas
Adicione as seguintes rotas em
fuel/app/config/routes.php
:phpreturn array( 'memcached' => 'welcome/memcached', )
1
2
3Usando Memcached
Use o cache no controlador:
phppublic function action_memcached() { Cache::set('key', 'Hello Memcached!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7Abra um navegador e visite https://servbay-fuelphp-test.local/memcached
Exemplo de Redis
Instalar Extensão Redis
A extensão Redis vem pré-instalada com o ServBay, não sendo necessária instalação adicional.
Configurar Redis
Configure as informações de conexão Redis no arquivo
fuel/app/config/redis.php
:phpreturn [ 'driver' => 'redis', 'redis' => [ 'database' => 'default', ], ];
1
2
3
4
5
6Adicionar Rotas
Adicione as seguintes rotas em
fuel/app/config/routes.php
:phpreturn array( 'redis' => 'welcome/redis', )
1
2
3Usando Redis
Use o cache no controlador:
phppublic function action_redis() { Cache::set('key', 'Hello Redis!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7Abra um navegador e visite https://servbay-fuelphp-test.local/redis
Exemplos de Banco de Dados Relacionais
Exemplo de MySQL
Configurar MySQL
Configure as informações de conexão MySQL no arquivo
fuel/app/config/development/db.php
:phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9Criar Arquivos de Migração
Use a ferramenta oil do FuelPHP para criar arquivos de migração:
bashphp oil g migration create_users_table
1Editar Arquivos de Migração
Encontre o arquivo de migração recém-criado no diretório
fuel/app/migrations
e edite-o para definir a estrutura da tabela do banco de dados:php<?php namespace Fuel\Migrations; use Fuel\Core\DBUtil; class Create_users_table { public function up() { DBUtil::create_table('users', [ 'id' => ['type' => 'int', 'constraint' => 11, 'auto_increment' => true], 'name' => ['type' => 'varchar', 'constraint' => 100], 'email' => ['type' => 'varchar', 'constraint' => 100, 'unique' => true], ], ['id']); } public function down() { DBUtil::drop_table('users'); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Executar Migração
Use a ferramenta oil do FuelPHP para executar a migração e criar a tabela no banco de dados:
bashphp oil refine migrate
1Adicionar Rotas
Adicione as seguintes rotas em
fuel/app/config/routes.php
:phpreturn array( 'mysql_add' => 'welcome/mysql_add', 'mysql' => 'welcome/mysql', )
1
2
3
4Inserindo Dados de Usuário
Insira dados de usuário no controlador:
phppublic function action_mysql_add() { DB::insert('users')->set([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return Response::forge('User added'); }
1
2
3
4
5
6
7
8
9Usando MySQL
Chame o banco de dados no controlador:
phppublic function action_mysql() { $users = DB::select()->from('users')->execute()->as_array(); return Response::forge(json_encode($users)); }
1
2
3
4
5
6Abra um navegador e visite
https://servbay-fuelphp-test.local/mysql_add
ehttps://servbay-fuelphp-test.local/mysql
Através dos passos acima, você criou e executou com êxito um projeto FuelPHP usando os recursos do ServBay para gerenciar e acessar seu projeto enquanto se conecta e faz consultas a múltiplos bancos de dados. Espero que este artigo o ajude a iniciar rapidamente com FuelPHP e aplicá-lo aos seus projetos.