Fachada de Laravel

Fachada de Laravel
O contêiner de serviço de Laravel permite ao usuário iniciar classes por alias. A maneira de acessar o contêiner de serviço de Laravel é chamado de fachada. O Laravel contém muitas fachadas embutidas para acessar diferentes recursos do Laravel. A fachada é usada em Laravel para tornar o aplicativo mais testável, flexível e mais simples. Todas as fachadas embutidas são definidas no espaço de nome Iluminar \ suporte \ fachadas. Este tutorial mostra como criar e usar fachadas embutidas do Laravel.

Uso de fachadas embutidas

Você deve criar um controlador para usar qualquer fachada embutida. Execute o seguinte comando para criar um controlador nomeado TestController.

Modifique o TestController com o código a seguir para mostrar o uso da fachada embutida DB. Esta fachada é usada para fazer todos os tipos de operações de banco de dados. No código a seguir, todos os registros da tabela do usuário serão recuperados usando o DB fachada. A saída será impressa como uma matriz após a execução do código.

TestController.PHP:

namespace app \ http \ controladores;
use iluminado \ http \ request;
use db;
Classe testController estende o controlador

Índice de função pública ()

$ usuários = db :: select ('selecione * de usuários');
echo print_r ($ usuários);

Adicione a seguinte rota no rede.php arquivo. Isso chamará de índice() método TestController para a rota '/teste.'

Rota :: get ('/test', 'testController@index');

Execute o seguinte URL do navegador.

http: // localhost/laravelpro/public/teste

Crie uma fachada

Siga as etapas abaixo para criar uma fachada personalizada em Laravel.

1. Crie uma pasta chamada Área sob a aplicação pasta e crie um arquivo chamado Área.php Sob esta pasta com o seguinte código. Quatro métodos são definidos na classe para calcular a área de um círculo, quadrado, retângulo e triângulo. Círculo() tomará o valor do raio como um parâmetro para calcular a área. Quadrado() tomará o comprimento de cada lado do quadrado como um parâmetro para calcular a área. Retângulo() tomará a altura e a largura como parâmetros para calcular a área. Triângulo() levará os valores de base e altura do triângulo para calcular a área.

namespace app \ área;
área de aula

Círculo de Função Pública ($ RADIUS)

retornar "A área do círculo é".(3.14*$ raio*$ raio);

Função pública quadrada ($ len)

retornar "A área de Sqaure é".($ len*$ len);

Retângulo de função pública ($ altura, $ largura)

retornar "A área do retângulo é".($ altura*$ width);

Triângulo de função pública ($ base, $ altura)

retornar "A área do triângulo é".(0.5*$ base*$ altura);

2. Adicione as seguintes rotas para acessar os métodos do Área aula. Aqui, quando os tipos de usuário 'área'Após o URL base, um objeto do Área A classe será definida e os quatro métodos desta classe são chamados com valores de parâmetros. Mas, se você deseja acessar os métodos da classe diretamente como uma fachada sem criar o objeto, um erro será gerado. As próximas etapas mostram como criar uma fachada para acessar os métodos desta classe diretamente.

Use App \ Area \ Area;
Route :: get ('/área', function ()
$ área = nova área ();
eco $ área-> círculo (3)."
";
eco $ área-> quadrado (4)."
";
eco $ área-> retângulo (100.200)."
";
eco $ área-> triângulo (10,5)."
";
);

3. Execute o seguinte URL do navegador para verificar se a rota está funcionando.

http: // localhost/laravelpro/público/área

A saída a seguir aparecerá se a rota funcionar corretamente.

4. Crie uma pasta chamada Fachadas debaixo de aplicativo pasta e crie um arquivo chamado Calculateareia.php Com o seguinte código. Aqui o getfacadeAccessor () O método é definido dentro Calculateareia Para devolver a corda cal_area usado para ligar o Área aula.

namespace app \ fachades;
Classe calculatearea estende \ iluminate \ support \ fachades \ fachada

Função estática pública getFacadeAccessor ()

retornar 'cal_area';

5. Abrir rede.php e adicione o seguinte código para vincular o Área classe com Calculateareia Classe de fachada pela string cal_area.

app ()-> bind ('cal_area', function ()
retornar novo \ app \ área \ areia;
);

6. Abra o aplicativo.php arquivo sob o Config pasta. Vá para a seção de matriz de aliases e adicione a seguinte linha no final da matriz. Isso define Calculateareia como um índice de matriz e o valor é a classe fachada que é definida sob o /aplicativo/fachada pasta. Agora, você pode acessar os métodos do Área classe como uma fachada sem criar nenhum objeto.

'CalculateareAea' => App \ Facades \ Calculatearea :: Class,

7. Adicione a seguinte rota no rede.php arquivo para acessar os métodos do Área classe usando o Calculateareia fachada.

Route :: get ('/cnarea', function ()
eco calculatearea :: circ (3)."
";
eco calculateea :: square (4)."
";
eco calculatearea :: retângulo (100.200)."
";
Echo Calculatearea :: Triangle (10,5)."
";
);

8. Execute o seguinte URL do navegador para verificar se a rota está funcionando.

http: // localhost/laravelpro/public/calheea

A saída a seguir aparecerá se a rota funcionar corretamente.

9. Você também pode usar o Calculateareia fachada como uma fachada embutida em qualquer controlador. Execute o seguinte comando para criar um controlador nomeado FacadeController onde o Calculateareia fachada será aplicada.

$ PHP Artisan Make: Controller FacadeController

Modificar o controlador com o seguinte código, onde o Calculateareia fachada é importada e o índice() o método é adicionado dentro do controlador. Quando o índice() o método é chamado, os quatro métodos do Área A classe será chamada e as saídas formatadas serão impressas usando CSS.

namespace app \ http \ controladores;
use iluminado \ http \ request;
use calculatearea;
Classe facadeController estende o controlador

Índice de função pública ()

eco "

".Calculatearea :: Circle (5)."

";
eco "

".Calculatearea :: Square (5)."

";
eco "

".Calculatearea :: Rectangle (200.200)."

";
eco "

".Calculatearea :: Triangle (15,5)."

";

10. Adicione a seguinte rota em rede.php Para acessar o acesso ao índice() método de FacadeController.

Route :: get ('calculatearea', 'facadeController@index');

11. Execute o seguinte URL do navegador para verificar se a rota está funcionando.

http: // localhost/laravelpro/public/calculatearea

A saída a seguir aparecerá se a rota funcionar corretamente.

Conclusão

O recurso discutido neste artigo pode ser usado em lugares diferentes, como o controlador ou rota de Laravel, usando a fachada. Isso facilita a tarefa de desenvolvimento. Os usos de fachadas interno e definidas pelo usuário são explicadas neste tutorial usando exemplos apropriados. O uso de uma fachada embutida, DB, é mostrado usando um controlador. O uso de uma fachada personalizada, Calculateareia, é mostrado usando uma rota e um controlador. Este tutorial explicou o conceito de usar uma fachada para ajudar os desenvolvedores de Laravel a aplicá -lo em seus projetos, com base em seus requisitos específicos.