Configurando o Yii2
No artigo anterior mostrei como fazer uma instalação do basic template que o chamamos de vitrine. Hoje mostrarei como configurar o framework.
Vamos por a mão na massa configurando o Yii2, como exibido no artigo anterior, o diretório responsável por essa tarefa é o diretório config/.
Atenção: Todas as configurações no Yii são feitas em arrays, porém no Yii 2 os arrays estão usando uma sintaxe curta, presente desde a versão 5.4 do php.
Configurando o arquivo web.php
Esse é um dos arquivos mais importantes de configuração, nesse arquivo configuramos tudo referente ao framework, configurações como idioma padrão, timezone, id da aplicação, componentes que poder ser inicializado com o sistema entre outras coisas.
Aqui tem um “Jump of Cat” (pulo do gato), algo que sempre me perdia desde a versão Yii 1. Na maioria das vezes que ver algo referente a configuração do framework será no índice ‘components’ => [].
Vamos as modificações:
Altere o índice id para ‘vitrine’ e adicione os índices language (idioma do site) e o timezone.
Um detalhe sobre o índice language é que ele faz a maioria das traduções da aplicação. Basicamente traduz as mensagens de erros e os títulos das views.
Formatter
O formatter é um componente muito importante pois trata a parte sacal de formato de moeda, data e hora. Isso lá na frente vai nos poupar um certo tempo, principalmente nas views do sistema.
UrlManager
O urlManager é o componente responsável por habilitar as url amigáveis do Yii2, definir rotas e outros truques como esconder a extensão do arquivo.
Por padrão a uel do yii é: http://localhost/vitrine/web/index.php?r=site/index.
Tudo passa pelo index.php. Do ponto de interrogação “?” para a frente é a rota “r” do sistema, onde “site” é o controller e “index” é o action (ação do controller).
Para o urlManager funcionar é preciso que o mod rewrite do apache esteja habilitado e que o arquivo .htaccess esteja dentro do diretório web
Arquivo .htaccess
O manual do Yii fornece esse .htaccess para você: http://www.yiiframework.com/doc-2.0/guide-tutorial-shared-hosting.html#deploying-a-basic-project-template
Outra vantagem do components, é que você pode por exemplo, chamar um componente seu ou de terceiro para inicializar com o framework.
Explicando os outros componentes…
- request — Cria um token que é usando pela aplicação para evitar o XSS e o CSRF.
- cache — Usado para criar cache.
- uses — Usado para criar autenticação. No caso do template básico, a autenticação é feita na forma hard coded, ou seja, feita direta no arquivo com um array. Porém no decorrer dos posts iremos implementar a autenticação que vem por padrão no template advanced.
- mailer — usado para envio de e-mail.
Configurando o arquivo db.php
Como o nome sugere, esse arquivo contém as configurações do banco de dados. O Yii tem suporte a vários bancos de dados pois utiliza o PDO e o ActiveRecord. Os bancos suportados são: MySQL, MariaBD, PostgreSQL, SQLite, Oracle*, MSSQL*e CUBRID.
Drives dos bancos
- MySQL, MariaDB:
mysql:host=localhost;dbname=mydatabase
- SQLite:
sqlite:/path/to/database/file
- PostgreSQL:
pgsql:host=localhost;port=5432;dbname=mydatabase
- CUBRID:
cubrid:dbname=demodb;host=localhost;port=33000
- MS SQL Server (via sqlsrv driver):
sqlsrv:Server=localhost;Database=mydatabase
- MS SQL Server (via dblib driver):
dblib:host=localhost;dbname=mydatabase
- MS SQL Server (via mssql driver):
mssql:host=localhost;dbname=mydatabase
- Oracle:
oci:dbname=//localhost:1521/mydatabase
No nosso caso, utilizaremos o MySQL como banco, mas a criação do banco e suas tabelas será em um outro artigo. Vamos no ater agora na configuração do arquivo.
Caso queira habilitar o cache do banco basta adicionar as seguintes linhas.
‘enableSchemaCache’ => true,
‘schemaCacheDuration’ => 3600, // Duration of schema cache.
‘schemaCache’ => ‘cache’, // Name of the cache component used to store schema information
* Oracle e MSSQL são brancos proprietários, logo não servem bem com o PHP em modo geral.
Configurando o arquivo params.php
Esse arquivo funciona como um arquivo de constante, ou seja, colocamos aqui os itens que poderão ser acessado em qualquer parte do sistema. Isso facilita muito quando precisamos alterar alguma informação, pois, será replicado em todo o sistema.
Aqui pode adicionar qualquer outro item que julgue necessário e importante para sua aplicação.
Com essas poucas modificações fizemos as configurações básicas e iniciais para um sistema ou site desenvolvido em Yii2.
Desculpem o artigo longo, mas esse merecia ser bem detalhado e cobrir todos os arquivos de configurações e todas as configurações que acho básicas para um projeto.