Criando e executando um projeto ThinkPHP 8
O que é o ThinkPHP?
ThinkPHP é uma estrutura PHP Web de código aberto criada por desenvolvedores chineses de PHP. Ela se dedica a fornecer um conjunto de ferramentas simples e eficiente para os desenvolvedores construírem aplicativos Web modernos. ThinkPHP oferece muitos recursos como roteamento, sessões, cache, autenticação, etc., simplificando tarefas comuns de desenvolvimento Web.
Principais características e vantagens do ThinkPHP
- Simplicidade e Eficiência: A sintaxe do ThinkPHP é simples e eficiente, tornando o código mais legível e fácil de manter.
- Conjunto de Recursos Ricos: Inclui roteamento, autenticação, gerenciamento de sessões e cache, simplificando muito o trabalho de desenvolvimento.
- ORM Poderoso: ThinkPHP oferece poderosas funcionalidades de operação de banco de dados, facilitando as operações com banco de dados.
- Design Modular: Com o gerenciador de pacotes Composer, integra facilmente bibliotecas e extensões de terceiros.
- Suporte Comunitário Fortalecido: Possui uma grande comunidade de desenvolvedores e um ecossistema rico.
ThinkPHP ajuda os desenvolvedores a criar rapidamente aplicativos web e APIs de alta qualidade, adequados para projetos de qualquer escala, desde pequenas aplicações até grandes sistemas corporativos.
Criando e executando um projeto ThinkPHP 8 utilizando o ServBay
Neste artigo, usaremos o ambiente PHP fornecido pelo ServBay para criar e executar um projeto ThinkPHP 8. Usaremos o recurso 'hosts' do ServBay para configurar o servidor Web e acessar o projeto por meio de uma configuração fácil.
Atenção:
Caso você tenha sido usuário do NGINX ou Apache, o ServBay usa Caddy como servidor Web por padrão. Para usuários que estão migrando do NGINX e Apache para o ServBay, alguns pontos precisam ser observados:
Configuração do Caddy
O ServBay já vem com o Caddy integrado e configurado, otimizado e depurado. Os desenvolvedores só precisam gerenciar os sites pelo recurso 'hosts' do ServBay, sem precisar modificar os arquivos de configuração do Caddy manualmente.
Regras de Rewrite e .htaccess
No NGINX e Apache, os desenvolvedores geralmente precisam escrever suas próprias regras de Rewrite e arquivos .htaccess para lidar com redirecionamentos de URL e outras configurações. No entanto, o ServBay já vem com as regras do Caddy configuradas, portanto, a menos que haja uma necessidade especial, não é necessário escrever essas regras manualmente.
Saiba mais
Para mais informações, consulte Rewrite e htaccess, Como migrar um site Apache para o ServBay e Como migrar um site NGINX para o ServBay.
Criando o projeto ThinkPHP
TIP
O ServBay recomenda que os desenvolvedores coloquem os sites no diretório /Applications/ServBay/www
para facilitar o gerenciamento.
Instalando o Composer
O ServBay já vem com o Composer pré-instalado, não é necessário instalá-lo separadamente.
Criando um Projeto ThinkPHP
Use o Composer para criar um novo projeto ThinkPHP:
bashcd /Applications/ServBay/www composer create-project topthink/think servbay-thinkphp-app
1
2Entrando no Diretório do Projeto
Entre no diretório do novo projeto ThinkPHP:
bashcd /Applications/ServBay/www/servbay-thinkphp-app
1
Configuração Inicial
Configurar Variáveis de Ambiente
No arquivo
config/database.php
, configure as informações de conexão do banco de dados e outras variáveis de ambiente. Certifique-se de que as seguintes configurações estejam corretas:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'senha', 'hostport' => '3306',
1
2
3
4
5
6
Configurando o Servidor Web
DANGER
As regras de Rewrite do ThinkPHP diferem das regras gerais, então é necessário customizar.
Use o recurso 'hosts' do ServBay para acessar o projeto ThinkPHP pelo servidor Web. No ServBay, adicione um novo host nas configurações de 'hosts':
- Nome:
My First ThinkPHP Dev Site
- Domínio:
servbay-thinkphp-test.local
Em seguida, clique em Custom Configuration
no canto superior direito e insira o seguinte conteúdo abaixo
encode zstd gzip
import set-log servbay-thinkphp-test.local
tls internal
@canonicalPath {
file {
try_files {path}/index.php
}
not path */
}
redir @canonicalPath {path}/ 308
root * /Applications/ServBay/www/servbay-thinkphp-app/public
route {
try_files {path} {path}/ /index.php?s={path}&{query}
php_fastcgi unix//Applications/ServBay/tmp/php-cgi-8.3.sock
}
file_server
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TIP
Se precisar de uma versão diferente do PHP, modifique php-cgi-8.3.sock
para a versão de PHP correspondente. E também lembre-se de alterar set-log
para o domínio correspondente do site.
Passos detalhados de configuração, consulte Adicionando o primeiro site.
Adicionando Código de Exemplo
Adicione o seguinte código no arquivo route/app.php
para exibir "Hello ServBay!":
Route::get('servbay', function () {
return 'Hello ServBay!';
});
2
3
Acessando o Site
Abra o navegador e acesse https://servbay-thinkphp-test.local/servbay
, você verá a página exibindo Hello ServBay!
.
Exemplo de banco de dados NoSQL
Exemplo de Memcached
Instalar a extensão Memcached
No ServBay, a extensão Memcached já vem pré-instalada, não há necessidade de instalar adicionalmente.
Configurar Memcached
No arquivo
config/cache.php
, configure as informações de conexão do Memcached:php'type' => 'memcached', 'host' => '127.0.0.1',
1
2Usar Memcached
No controlador, use o cache:
phpuse think\facade\Cache; Route::get('/memcached', function () { Cache::set('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6
Exemplo de Redis
Instalar a extensão Redis
No ServBay, a extensão Redis já vem pré-instalada, não há necessidade de instalar adicionalmente.
Configurar Redis
No arquivo
config/cache.php
, configure as informações de conexão do Redis:php'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '',
1
2
3
4Usar Redis
No controlador, use o cache:
phpuse think\facade\Cache; Route::get('/redis', function () { Cache::set('key', 'value'); return Cache::get('key'); });
1
2
3
4
5
6
Exemplo de banco de dados relacional
Criando a Estrutura do Banco de Dados e Arquivos de Migração
Instalar a ferramenta de migração de banco de dados
Antes de utilizar a ferramenta de migração de banco de dados do ThinkPHP, é necessário instalá-la:
bashcomposer require topthink/think-migration
1Criar Arquivo de Migração
Use a ferramenta de linha de comando do ThinkPHP para criar um arquivo de migração:
bashphp think migrate:create CreateUserTable
1Editar Arquivo de Migração
No diretório
database/migrations
, encontre o arquivo de migração recém-criado e edite-o para definir a estrutura da tabela do banco de dados:phppublic function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); }
1
2
3
4
5
6
7
8
9Executar Migração
Use a ferramenta de linha de comando do ThinkPHP para executar a migração e criar a tabela do banco de dados:
bashphp think migrate:run
1
Exemplo de MySQL
Configurar MySQL
No arquivo
config/database.php
, configure as informações de conexão do MySQL:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'senha', 'hostport' => '3306',
1
2
3
4
5
6Gravar Dados do Usuário
No controlador, escreva os dados do usuário:
phpuse think\Db; Route::get('/mysql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9Usar MySQL
No controlador, chame o banco de dados:
phpuse think\Db; Route::get('/mysql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
Exemplo de PostgreSQL
Configurar PostgreSQL
No arquivo
config/database.php
, configure as informações de conexão do PostgreSQL:php'type' => 'pgsql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'senha', 'hostport' => '5432',
1
2
3
4
5
6Gravar Dados do Usuário
No controlador, escreva os dados do usuário:
phpuse think\Db; Route::get('/pgsql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9Usar PostgreSQL
No controlador, chame o banco de dados:
phpuse think\Db; Route::get('/pgsql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
Seguindo estes passos, você conseguiu criar e executar um projeto ThinkPHP 8, utilizando os recursos fornecidos pelo ServBay para gerenciar e acessar seu projeto, bem como conectar a diferentes bancos de dados e chamar dados.