Projeto elaborado utilizando o framework Laravel para estudo de SOLID.
SOLID são os seguintes cinco princípios da programação orientada a objetos:
1- Single Responsiblity Principle Este projeto segue este princípio pois cada classe tem uma resposabilidade única.
2- Open-Closed Principle Neste projeto este princípio é utilizado por utilizar as interfaces e suas implementações. Por exemplo:
- Os Controllers não se relacionam diretamente com as Models, temos uma interface de Repositórios entre essas duas camadas.
- A facade Http do Laravel não é utilizada diretamente.
3- Liskov Substitution Principle Aplicado na interface "PersonRepository" que extende a interface "AllDB"
4- Interface Segregation Principle Todos os métodos implementados por meio de uma inteface são necessários.
5- Dependency Inversion Principle Com exceção dos objetos próprios as injeções de dependencia foram feitas com abstrações.
Para instalar e utilizar este projeto basta seguir os seguintes passos:
-
Clone o repositório:
git clone https://github.com/lfgalindo/notification
-
Entre na pasta do projeto, crie um arquivo .env e configure um banco de dados:
cd notification && cp .env.example .env
-
Se for usar o sqlite (sugerido), crie o banco:
touch ./database/database.sqlite
-
Instale as dependências utilizando o composer:
composer install
-
Utilizando o artisanm, gere a key e crie as tabelas do banco de dados:
php artisan key:generate && php artisan migrate
-
Execute o projeto:
php artisan serve
-
Concluído!!!