> LOADING ARTICLE...
28 Jul 2025 Desenvolvimento

Estrutura de Directórios

Estrutura de Directórios

Laravel Docs em Português

Introdução

A estrutura padrão do Laravel destina-se a oferecer um excelente ponto de partida para as suas aplicações, independentemente do seu tamanho. Contudo poderá organizar a sua estrutura da sua aplicação da forma que mais gostar. O Laravel não impõe quaisquer restrições acerca da localização das suas classes, uma vez que o Composer pode fazer o autoload das mesmas.

O directório raiz

O directório App

O código principal da sua aplicação encontra-se na pasta App. Iremos explorar este directório de forma mais detalhada brevemente; De todas as formas, quase todas as classes do seu projecto é aqui que se encontram.

O directório Bootstrap

A pasta bootstrap contém o ficheiro app.php o quel tem a função de inicializar o framework. Este directório também contém um direct´rio de cache, o qual contém ficheiros gerados pela estrutura para a otimização de desempenho da aplicação, tais como que contém arquivos gerados pela estrutura para otimização de desempenho, tais como os ficheiros de cache das rotas e de serviços. Num modo geral, nunca será necessário editar qualquer ficheiro constante nesta pasta.

O directório Config

O directório Config, tal como o nome indica, contém todos os ficheiros de configuração da aplicação. Será de extrema importância dar uma vista de olhos por todos estes ficheiros e familiarizar-se com todas as opções que estão disponiveis nestes ficheiros.

O directório Database

Esta pasta contém as migrações da Base de Dados, as factories dos modelos e as seeds. Se assim o desejar, esta pasta pode conter ainda a sua base de dados SQLite.

O directório Public

O directório public contém o ficheiro index.php, que é somente o ponto de entrada para todas as requisições feitas à sua aplicação e é onde é configurado o autoload das suas classes. Esta pasta contém ainda os seus assets, tais como imagens, ficheiros JavaScript ou CSS.

O directório Resources

Este directório contém as suas views e os seus assets antes de serem compilados. Contém ainda os ficheiros de multi idioma.

O directório Routes

A pasta routes é onde estão localizadas as suas rotas. Por defeito são incluídos os ficheiros web.phpapi.phpconsole.php, e channels.php.

O ficheiro web.php contém as rotas que o RouteServiceProvider coloca no middleware web, o qual oferece o estado das sessões, a proteção CSRF e a encriptação de Cookies. Se a sua aplicação não tem qualquer estado vinculado ou não é uma RESTFul API, então concerteza, todas as suas rotas estarão aqui definidas. 

O ficheiro api.php contém as rotas que o RouteServiceProvider coloca no middleware api. Estas rotas estão não têm qualquer estado vinculado e são autenticadas através de tokens e não terão acesso ao estado das sessões.

O ficheiro console.php é onde pode definir todas as suas closure que os seus comandos na consola utilizam. Cada closure está vinculada a uma instância de comando, permitindo uma abosrdagem simples para interagir com cada método de comando IO. Mesmo que este ficheiro não defina rotas HTTP, ele define pontos de entrada para a aplicação através da consola de comandos.

O ficheiro channels.php é onde pode registar todos os canais de eventos broadcast da sua aplicação.

O directório Storage

O directório Storage contém os seus logs, templates Blade compiladas, ficheiros de sessão, ficheiros de cache e outros ficheiros gerados pelo framework. Este directório subdivide-se noutros três directórios; appframework, e logs. O directório app pode ser usado para guardar qualquer ficheiro gerado pela aplicação. O directório framework é usado para guardar ficheiros gerados pelo framework e pelas caches e finalmente o directório de logs contém os logs da sua aplicação.

A pasta storage/app/public pode ser usada para guardar os ficheiros gerados pelos utilizadores, tais como imagens. Deverá ter acesso publico. Pode criar um link simbólico (symbolic link) na pasta public/storage o qual irá “apontar” para este directório. Para criar esse link pode deverá usar o comando Artisan php artisan storage:link.

O directório Tests

É aqui onde constam os testes automatizados da aplicação. The tests directory contains your automated tests. Nesta pasta são disponibilizados exemplos de testes unitários PHPUnit e funcionalidades de testes estão aqui prontos a serem utilizados. Cada classe de teste deve ser nomeada com o sufixo Test. Pode correr os seus testes utilizando o comando phpunit ou php vendor/bin/phpunit. Pode ainda, se assim o desejar ou preferir, utilizar o comando php artisan test e obterá um retorno mais legível e detalhado dos resultados dos seus testes.

A pasta Vendor

É aqui onde serão alojadas as dependências do Composer.

O directório App

A maior parte da sua aplicação está alojada neste directório. Por defeito este directório está sob o namespace App e é automaticamente carregado pelo Composer, usando o padrão PSR-4 autoloading.

Este directório contém uma grande variedade de directórios adicionais tais como ConsoleHttp, e Providers. Olhe para os directórios Console e Http como fornecedores da API de contexto da sua aplicação. O protocolo HTTP e CLI são mecanismos para interagir com a sua aplicação, mas não contendo qualquer logica aplicacional. Por outras palavras, são duas formas de enviar comandos para a sua aplicação. A pasta Console é onde estão todos os comandos Artisan, enquanto na pasta Http contém os controladores, middlewares e requisições.

Muitas outras pastas são criadas dentro da pasta app quando utilizamos o comando Artisan make para a criação de classes. Por exemplo, a pasta app/Jobs não existe enquanto não executar o comando make:job.

Muitas classes na pasta app podem ser criadas através de comandos Artisan. Para verificar todos os comnados disponiveis corra o comando php artisan list make no terminal.

O drectório Broadcasting

O directório Broadcasting contém as classes de canais broadcast para a aplicação. Estas classes são geradas através do comando make:channel. Este directório não existe por defeito, mas será criada quando criar o seu primeiro channel. Para aprender mais sobre channels, verifique a documentação em event broadcasting.

A pasta Console

A pasta Console contém todos os comandos Artisan customizados para a sua aplicação. Estes comandos podem ser criados através do comando make:command. Este diretório também hospeda o kernel do console, que é onde seus comandos Artisan personalizados são registrados e suas tarefas agendadas são definidas. 

A pasta Events

Mais uma pasta que não existe por defeito, mas que será criada mediante as suas necessidades aplicacionais. Será criada através do comando event:generate e make:event. É a pasta onde ficam hospedadas as classes de eventos. Os eventos podem ser usados para emitir alertas para outras partes da aplicação que uma determinada ação aconteceu, fornecendo uma grande flexibilidade e desacoplamento de tarefas.

O directório Exceptions

A pasta Exceptions contém todas as manipulações de Exceções da aplicação. Se gosta de customizar as suas exceções deverá modificar a classe Handler constante neste directório.

O directório Http

Neste directório é onde pode encontrar os seus controladores, middlewares e form requests. Quase toda a lógica da sua aplicação será aqui introduzida.

A pasta Jobs

Este directório não existe por defeito, mas será criado se você executar o comando Artisan make:job. O directório Jobs hospeda os queueable jobs. Os Jobs podem ser inseridos em filas pela aplicação e executados de forma síncrona dentro do ciclo de vida do request actual.

O directório Listeners

Outro directório que não existe por defeito e que será criado por si em caso de executar os comandos event:generate ou make:listener. A pasta Listeners contém classes de manipulação de eventos. Os Event Listeners recebem uma instância de evento e executa uma determinada lógica em resposta ao evento disparado. Por exemplo, um evento UserRegistered event pode ser manipulado por forma a executar um listener SendWelcomeEmail.

O directório Mail

Este directório será criado se executar o comando make:mail. A pasta Mail contém todas as classes representativas de envio de emails. Os objectos Mail permitem encapsular toda a lógica de envio de email numa unica e simples classe que pode ser enviado através do método Mail::send.

O directório Models

O directório Models contém todas as suas classes Eloquent. O ORM Eloquent incluido no Laravel proporciona uma elegante e simples implementação ActiveRecord para a interação com a sua Base de Dados. Cada tabela da Base de Dados correspondente a um Model pode ser manipulada através desse model com Eloquent.

A pasta Notifications

Esta pasta não existe por defeito, e será criada se executar o comando make:notification. A pasta Notifications é onde poderá encontrar todas as notificações transacionais que poderão ser enviadas pela sua aplicação. Esta funcionalidade abstrata trabalha em cima de diversos drivers, tais como email, Slack, SMS, ou salvas na base de dados.

A pasta Policies

Esta pasta também não existe por defeito e será criada através do comando make:policy. Esta pasta contém as classes de politicas de autorizações para a sua aplicação. Estas Policies são usadas para determinar se um utilizador pode ou não efectuar ações dadas através de um determinado recurso.

O directório Providers

O directório Providers contém os service providers para a sua aplicação. Os service providers iniciam a sua aplicação ligando serviços no Service Container, registando eventos e executanto quaisquer outras tarefas para preparar a sua aplicação para receber requisições.

Numa instalação nova de uma aplicação Laravel, este directório já irá conter alguns providers, no entanto é perfeitamente possível criar os seus próprios providers se for necessário.

A pasta Rules

Esta pasta não existe por defeito. Será criada se executar o comando Artisan make:rule. A pasta Rules contém regras de validação crustomizadas consoante as necessidades da aplicação. Estas Rules encapsulam lógicas de validação complicadas num simples objecto. Para mais informação consultar validation documentation.

About Post Author

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *