Criando e Executando um Projeto com PHPixie
O que é PHPixie?
PHPixie é um framework PHP leve e ideal para desenvolver rapidamente aplicações web de alto desempenho. Ele segue o padrão de design HMVC (Hierarchical Model-View-Controller), oferecendo uma estrutura de código limpa e performance eficiente. PHPixie é conhecido por sua simplicidade, flexibilidade e alto desempenho, sendo a escolha preferida de muitos desenvolvedores.
Principais características e vantagens do PHPixie
- Leveza: O sistema central do PHPixie é compacto, contendo apenas os componentes necessários e exibindo tempos de carga muito rápidos.
- Alto desempenho: PHPixie é renomado por sua eficiência e velocidade, capaz de lidar com requisições de alta concorrência.
- Facilidade de aprendizado: Oferece uma API simples e ampla documentação, permitindo que os desenvolvedores comecem rapidamente.
- Flexibilidade: Permite a livre escolha e uso de bibliotecas e plugins de terceiros, facilitando a extensão e a customização de funcionalidades.
- Suporte da comunidade: Possui uma comunidade ativa de desenvolvedores e uma rica variedade de extensões de terceiros.
PHPixie pode ajudar os desenvolvedores a construir aplicações web de alta performance e qualidade rapidamente, sendo adequado para projetos de todos os tamanhos.
Criando e Executando um Projeto PHPixie usando ServBay
Neste artigo, usaremos o ambiente PHP fornecido por ServBay para criar e executar um projeto PHPixie. Utilizaremos o recurso 'host' do ServBay para configurar o servidor web e, por meio de configurações simples, acessar o projeto.
Atenção: caso você seja um usuário NGINX ou Apache
O ServBay usa o Caddy como servidor web por padrão. Para os usuários que estão migrando do NGINX e Apache para o ServBay, há algumas mudanças chave a serem observadas:
Configuração do Caddy
O ServBay vem com o Caddy pré-configurado e otimizado. Os desenvolvedores precisam apenas usar o recurso de 'host' do ServBay para gerenciar os sites, sem necessidade de ajustar manualmente os arquivos de configuração do Caddy.
Regras de Rewrite e .htaccess
No NGINX e Apache, os desenvolvedores geralmente escrevem suas próprias regras de Rewrite e arquivos .htaccess para gerenciamento de URLs e outras configurações. Entretanto, o ServBay já vem configurado com regras do Caddy, então, a menos que haja necessidades especiais, não é preciso escrever essas regras.
Saiba mais
Para mais informações, consulte Rewrite e .htaccess, Como migrar sites Apache para o ServBay, Como migrar sites NGINX para o ServBay.
Criando um Projeto PHPixie
TIP
O ServBay sugere que os desenvolvedores posicionem seus sites no diretório /Applications/ServBay/www
para facilitar a gestão.
Instalando o Composer
O ServBay vem com Composer embutido, portanto, não há necessidade de instalação separada.
Criando um Projeto PHPixie
Crie um novo projeto PHPixie utilizando o Composer:
bashcd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app composer create-project phpixie/project .
1
2
3
4Entrando no Diretório do Projeto
Acesse o diretório do novo projeto PHPixie:
bashcd /Applications/ServBay/www/servbay-phpixie-app
1
Configuração Inicial
Configurando a Conexão de Banco de Dados
Configure a conexão do banco de dados no arquivo
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9
Configuração do Servidor Web
Usando a ferramenta 'host' do ServBay para acessar o projeto PHPixie via servidor web. Nas configurações do 'host' do ServBay, adicione um novo host:
- Nome:
My First PHPixie Dev Site
- Domínio:
servbay-phpixie-test.local
- Tipo de Site:
PHP
- Versão do PHP: escolha
8.3
- Diretório Raiz do Site:
/Applications/ServBay/www/servbay-phpixie-app/web
Para passos detalhados, consulte Adicionar o Primeiro Site.
Adicionando Código de Exemplo
Adicione o seguinte código ao arquivo src/App/HTTP/Controller/Home.php
:
namespace App\HTTP\Controller;
use PHPixie\HTTP\Request;
use PHPixie\Template;
class Home extends \PHPixie\Controller
{
protected $template;
public function __construct(Template $template)
{
$this->template = $template;
}
public function action_index(Request $request)
{
return $this->template->render('app:home');
}
public function action_memcached(Request $request)
{
$cache = $this->components->cache();
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->response()->string($value);
}
public function action_redis(Request $request)
{
$redis = $this->components->redis();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->response()->string($value);
}
public function action_mysql_add(Request $request)
{
$query = $this->components->database()->query();
$query->insert('users')->data([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->response()->string('User added');
}
public function action_mysql(Request $request)
{
$query = $this->components->database()->query();
$users = $query->select('*')->from('users')->execute()->fetchAll();
return $this->response()->json($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
46
47
48
49
50
51
52
Adicione o seguinte código ao arquivo assets/templates/app/home.php
:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to PHPixie</title>
</head>
<body>
<h1>Welcome to PHPixie</h1>
<p>The page you are looking at is being generated dynamically by PHPixie.</p>
</body>
</html>
2
3
4
5
6
7
8
9
10
11
12
Acessando o Site
Abra o navegador e acesse a seguinte URL:
https://servbay-phpixie-test.local
: Você verá a página exibindoWelcome to PHPixie
.
Exemplos com Bancos de Dados NoSQL
Exemplo com Memcached
Instalando a Extensão do Memcached
No ServBay, a extensão Memcached já está pré-instalada, não necessitando de instalação adicional.
Configurando o Memcached
Configure a conexão Memcached no arquivo
assets/config/cache.php
:phpreturn [ 'default' => [ 'driver' => 'memcached', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], ];
1
2
3
4
5
6
7
8
9
10
11
12Utilizando o Memcached
Utilize o cache no controlador:
phppublic function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
Exemplo com Redis
Instalando a Extensão do Redis
No ServBay, a extensão Redis já está pré-instalada, não necessitando de instalação adicional.
Configurando o Redis
Configure a conexão Redis no arquivo
assets/config/redis.php
:phpreturn [ 'default' => [ 'hostname' => '127.0.0.1', 'port' => 6379, 'timeout' => 0, 'database' => 0, ], ];
1
2
3
4
5
6
7
8Utilizando o Redis
Utilize o cache no controlador:
phppublic function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
Exemplos com Bancos de Dados Relacionais
Criando Estrutura de Banco de Dados e Arquivos de Migração
Criando Arquivo de Migração
Utilize a ferramenta CLI do PHPixie para criar o arquivo de migração:
bashphp pixie generate:migration create_users_table
1Editando Arquivo de Migração
No diretório
assets/migrations
, encontre o novo arquivo de migração e edite-o para definir a estrutura da tabela do banco de dados:phppublic function up() { $this->schema->create('users', function($table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); } public function down() { $this->schema->drop('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14Executando Migração
Use a ferramenta CLI do PHPixie para executar a migração, criando a tabela no banco de dados:
bashphp pixie migrate
1
Exemplo com MySQL
Configurando o MySQL
Configure a conexão MySQL no arquivo
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9Inserindo Dados de Usuários
Insira dados de usuários no controlador:
phppublic function action_mysql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9Utilizando o MySQL
Chame o banco de dados no controlador:
phppublic function action_mysql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
Exemplo com PostgreSQL
Configurando o PostgreSQL
Configure a conexão PostgreSQL no arquivo
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9Inserindo Dados de Usuários
Insira dados de usuários no controlador:
phppublic function action_pgsql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9Utilizando o PostgreSQL
Chame o banco de dados no controlador:
phppublic function action_pgsql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
Seguindo esses passos, você terá criado e executado um projeto PHPixie usando as funcionalidades fornecidas pelo ServBay para gerenciar e acessar seu projeto, conectando e consultando dados de diversos bancos de dados. Esperamos que este artigo ajude você a começar rapidamente com PHPixie e aplicá-lo nos seus projetos.