Criar e Executar um Projeto Yii 2
O que é Yii 2?
Yii 2 é um framework PHP de alto desempenho, ideal para desenvolver aplicações web modernas. Ele segue o padrão de design MVC (Model-View-Controller) e oferece um conjunto completo de recursos e ferramentas para que os desenvolvedores possam construir aplicações web de alta qualidade rapidamente. Yii 2 é conhecido por sua eficiência, flexibilidade e escalabilidade, sendo a escolha preferida de muitos desenvolvedores.
Principais Características e Vantagens do Yii 2
- Alto Desempenho: Yii 2 é um framework de alto desempenho capaz de lidar com pedidos altamente concorrentes.
- Modularidade: Oferece uma ampla gama de módulos e plugins, facilitando a extensão e personalização das funcionalidades.
- Segurança: Inclui várias funcionalidades de segurança, como validação de entrada, filtragem de saída, proteção contra CSRF, entre outras.
- Facilidade de Uso: Fornece uma API simples e documentação completa, permitindo aos desenvolvedores começarem rapidamente.
- Forte Suporte da Comunidade: Possui uma comunidade ativa de desenvolvedores e uma vasta gama de extensões de terceiros.
Yii 2 permite aos desenvolvedores construir aplicações web de alto desempenho e qualidade rapidamente, sendo adequado para projetos de qualquer escala.
Criar e Executar um Projeto Yii 2 com o ServBay
Neste artigo, utilizaremos o ambiente PHP fornecido pelo ServBay para criar e executar um projeto Yii 2. Vamos usar o recurso 'Hospedagem' do ServBay para configurar o servidor web e acessar o projeto com uma configuração simples.
Atenção: Se você já foi um usuário do NGINX ou Apache
Por padrão, o ServBay usa o Caddy como servidor web. Para usuários que estão migrando do NGINX ou Apache para o ServBay, alguns pontos importantes devem ser observados:
Configuração do Caddy
O ServBay já vem com o Caddy integrado e otimizado por padrão. Os desenvolvedores só precisam gerenciar o site através do recurso 'Hospedagem' do ServBay, sem necessidade de modificar manualmente os arquivos de configuração do Caddy.
Regras de Rewrite e .htaccess
No NGINX e Apache, os desenvolvedores costumam criar regras de Rewrite e arquivos .htaccess para lidar com reescrita de URLs e outras configurações. No entanto, o ServBay já vem pré-configurado com as regras do Caddy, então, a menos que haja uma necessidade específica, os desenvolvedores não precisarão escrever essas regras por conta própria.
Saiba Mais
Para mais informações, consulte os guias Rewrite e htaccess, Como Migrar um Site Apache para o ServBay e Como Migrar um Site NGINX para o ServBay.
Criar um Projeto Yii 2
TIP
O ServBay recomenda que os desenvolvedores coloquem os sites no diretório/Applications/ServBay/www
para facilitar a gestão.
Instalar o Composer
O ServBay já vem com o Composer pré-instalado, não sendo necessária uma instalação separada.
Criar o Projeto Yii 2
Use o Composer para criar um novo projeto com o template básico do Yii 2:
bashcd /Applications/ServBay/www mkdir servbay-yii2-app cd servbay-yii2-app composer create-project --prefer-dist yiisoft/yii2-app-basic .
1
2
3
4Entrar no Diretório do Projeto
Entre no diretório do novo projeto Yii 2:
bashcd /Applications/ServBay/www/servbay-yii2-app
1
Configuração Inicial
Configurar Conexão com o Banco de Dados
Configure a conexão do banco de dados no arquivo
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Configurar Cache e Componentes do Redis
Adicione a configuração dos componentes de cache e Redis no arquivo
config/web.php
:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Configurar o Servidor Web
Use o recurso 'Hospedagem' do ServBay para acessar o projeto Yii 2 através do servidor web. No ServBay, adicione uma nova hospedagem com as seguintes configurações:
- Nome:
My First Yii 2 Dev Site
- Domínio:
servbay-yii2-test.local
- Tipo de Site:
PHP
- Versão do PHP: Escolha
8.3
- Diretório Raiz do Site:
/Applications/ServBay/www/servbay-yii2-app/web
Para passos detalhados, consulte o guia Adicionando o Primeiro Site.
Adicionar Código de Exemplo
No arquivo controllers/SiteController.php
, adicione o seguinte código:
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\web\Response;
class SiteController extends Controller
{
public function actionIndex()
{
return $this->render('index');
}
public function actionMemcached()
{
$cache = Yii::$app->cache;
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->asText($value);
}
public function actionRedis()
{
$redis = Yii::$app->redis;
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->asText($value);
}
public function actionMysqlAdd()
{
Yii::$app->db->createCommand()->insert('users', [
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->asText('User added');
}
public function actionMysql()
{
$users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll();
return $this->asJson($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
No arquivo views/site/index.php
, adicione o seguinte código:
<?php
/* @var $this yii\web\View */
$this->title = 'My Yii2 Application';
?>
<div class="site-index">
<div class="jumbotron">
<h1>Congratulations!</h1>
<p class="lead">You have successfully created your Yii2 application.</p>
</div>
</div>
2
3
4
5
6
7
8
9
10
Acessar o Site
Abra o navegador e acesse a URL:
https://servbay-yii2-test.local
: Você verá a página de boas-vindas padrão do Yii 2.
Exemplos 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 sendo necessária uma instalação adicional.
Configurar o Memcached
Configure as informações de conexão do Memcached no arquivo
config/web.php
:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13Usar o Memcached
No controller, utilize o cache:
phppublic function actionMemcached() { $cache = Yii::$app->cache; $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
Exemplo de Redis
Instalar a Extensão Redis
No ServBay, a extensão Redis já vem pré-instalada, não sendo necessária uma instalação adicional.
Configurar o Redis
Configure as informações de conexão do Redis no arquivo
config/web.php
:php'components' => [ 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9Usar o Redis
No controller, utilize o Redis:
phppublic function actionRedis() { $redis = Yii::$app->redis; $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
Exemplos de Banco de Dados Relacional
Criar Estrutura de Banco de Dados e Arquivos de Migração
Criar Arquivo de Migração
Utilize a ferramenta Gii do Yii 2 para criar um arquivo de migração:
bashphp yii migrate/create create_users_table
1Editar Arquivo de Migração
No diretório
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() { $this->createTable('users', [ 'id' => $this->primaryKey(), 'name' => $this->string()->notNull(), 'email' => $this->string()->notNull()->unique(), 'created_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP'), 'updated_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ]); }
1
2
3
4
5
6
7
8
9
10Executar a Migração
Utilize o comando de migração do Yii 2 para rodar a migração e criar a tabela no banco de dados:
bashphp yii migrate
1
Exemplo de MySQL
Configurar MySQL
Configure as informações de conexão do MySQL no arquivo
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Escrever Dados de Usuário
No controller, insira dados de usuário:
phppublic function actionMysqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8Usar o MySQL
No controller, faça consultas ao banco de dados:
phppublic function actionMysql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
Exemplo de PostgreSQL
Configurar PostgreSQL
Configure as informações de conexão do PostgreSQL no arquivo
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'pgsql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Escrever Dados de Usuário
No controller, insira dados de usuário:
phppublic function actionPgsqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8Usar o PostgreSQL
No controller, faça consultas ao banco de dados:
phppublic function actionPgsql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
Seguindo esses passos, você criou e executou com sucesso um projeto Yii 2, utilizando o ServBay para gerenciar e acessar seu projeto, além de conectar a múltiplos bancos de dados e buscar dados. Espero que este artigo ajude você a começar rapidamente com o Yii 2 e aplique-o em seus projetos.