Criar e executar um projeto FuelPHP
O que é FuelPHP?
FuelPHP é um framework PHP flexível e modular, adequado para desenvolver aplicações web modernas. Ele segue o padrão de design HMVC (Hierarchical Model-View-Controller) e oferece uma variedade de recursos e ferramentas que permitem aos desenvolvedores criar rapidamente aplicações web de alta qualidade. FuelPHP é conhecido por sua flexibilidade, alto desempenho e facilidade de extensão, sendo a escolha preferida de muitos desenvolvedores.
Principais características e vantagens do FuelPHP
- Arquitetura HMVC: Suporta o padrão MVC hierárquico, facilitando a reutilização de código e o desenvolvimento modular.
- Alto desempenho: FuelPHP é conhecido por sua eficiência e velocidade, sendo capaz de lidar com altas cargas de requisições.
- Facilidade de extensão: Oferece mecanismos de extensão ricos, permitindo que os desenvolvedores adicionem facilmente funcionalidades personalizadas.
- Segurança: Incorpora uma variedade de recursos de segurança, como validação de entrada, filtragem de saída, proteção CSRF, entre outros.
- Suporte robusto da comunidade: Possui uma comunidade ativa de desenvolvedores e uma variedade de extensões de terceiros.
FuelPHP pode ajudar os desenvolvedores a criar rapidamente aplicações web de alto desempenho e alta qualidade, sendo adequado para projetos de qualquer escala.
Criar e executar um projeto FuelPHP usando ServBay
Neste artigo, utilizaremos o ambiente PHP fornecido pelo ServBay para criar e executar um projeto FuelPHP. Usaremos a funcionalidade "Host" do ServBay para configurar o servidor web e acessar o projeto por meio de uma configuração simples.
Atenção: se você já foi um usuário do NGINX ou Apache
ServBay usa por padrão o Caddy como servidor web. Para usuários que estão migrando do NGINX ou Apache para o ServBay, há algumas mudanças importantes a serem notadas:
Configuração do Caddy
O ServBay já vem com o Caddy pré-instalado e configurado. Os desenvolvedores só precisam administrar os sites por meio da funcionalidade "Host" do ServBay, sem necessidade de modificar manualmente os arquivos de configuração do Caddy.
Regras de reescrita e .htaccess
No NGINX e Apache, os desenvolvedores geralmente escrevem suas próprias regras de reescrita e arquivos .htaccess para lidar com a reescrita de URL e outras configurações. No entanto, o ServBay já vem com regras do Caddy configuradas, exceto se houver necessidades específicas, os desenvolvedores não precisarão escrever essas regras.
Saiba mais
Para mais informações, consulte Rewrite e htaccess, Como migrar um site Apache para o ServBay, Como migrar um site NGINX para o ServBay.
Criar um projeto FuelPHP
TIP
ServBay recomenda aos desenvolvedores colocar seus sites no diretório /Applications/ServBay/www
para facilitar a gestão.
Instalar Composer
O ServBay já vem com Composer pré-instalado, então não é necessário instalar separadamente.
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
4Entrar no diretório do projeto
Entre no diretório do novo projeto FuelPHP:
bashcd /Applications/ServBay/www/servbay-fuelphp-app
1
Configuração Inicial
Configurar a conexão com o banco de dados
Configure as informações de conexão do 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
Configurar o servidor web
Use a funcionalidade "Host" do ServBay para acessar o projeto FuelPHP via servidor web. No ServBay, adicione um novo host nas configurações "Host":
- Nome:
Meu primeiro site FuelPHP Dev
- Domínio:
servbay-fuelphp-test.local
- Tipo de site:
PHP
- Versão do PHP: Escolha
8.3
- Diretório raiz do site:
/Applications/ServBay/www/servbay-fuelphp-app/public
Passos detalhados de configuração podem ser encontrados em Adicionar primeiro site.
Adicionar 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;
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()
{
$redis = \Redis::instance();
$redis->set('key', 'Hello Redis!');
$value = $redis->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
Acessar o site
Abra o navegador e acesse a seguinte URL:
https://servbay-fuelphp-test.local
: Você verá a saída da páginaHello ServBay!
.
Exemplo de banco de dados NoSQL
Exemplo Memcached
Instalar extensão Memcached
No ServBay, a extensão Memcached já está pré-instalada, então não é necessário instalar adicionalmente.
Configurar Memcached
Configure as informações de conexão Memcached no arquivo
fuel/app/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
13Adicionar Rota
Adicione as seguintes rotas no arquivo
fuel/app/config/routes.php
:phpreturn array( 'memcached' => 'welcome/memcached', )
1
2
3Usar Memcached
Utilize 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 o navegador e acesse: https://servbay-fuelphp-test.local/memcached
Exemplo Redis
Instalar extensão Redis
No ServBay, a extensão Redis já está pré-instalada, então não é necessário instalar adicionalmente.
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 Rota
Adicione as seguintes rotas no arquivo
fuel/app/config/routes.php
:phpreturn array( 'redis' => 'welcome/redis', )
1
2
3Usar Redis
Utilize 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 o navegador e acesse: https://servbay-fuelphp-test.local/redis
Exemplo de banco de dados relacional
Criar estrutura de banco de dados e arquivos de migração
Criar arquivo de migração
Use a ferramenta Oil do FuelPHP para criar um arquivo de migração:
bashphp oil g migration create_users_table
1Editar arquivo de migração
Encontre e edite o arquivo de migração recém-criado no diretório
fuel/app/migrations
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 as tabelas do banco de dados:
bashphp oil refine migrate
1
Exemplo 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
9Inserir 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
9Utilizar MySQL
Faça chamadas ao 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
Seguindo esses passos, você criou e executou com sucesso um projeto FuelPHP, utilizando os recursos fornecidos pelo ServBay para gerenciar e acessar seu projeto, conectando-se a uma variedade de bancos de dados e manipulando os dados. Esperamos que este artigo ajude você a começar rapidamente com o FuelPHP e aplicá-lo em seus projetos.