This project is a personal blueprint starter with customized SOA architecture.
Service-Oriented Architecture (SOA) is a stage in the evolution of application development and/or integration. It defines a way to make software components reusable using the interfaces. Formally, SOA is an architectural approach in which applications make use of services available in the network.
Laravel is accessible, powerful, and provides tools required for large, robust applications.
You can create new Laravel project using git clone
git clone [email protected]:dekts/laravel-9-architecture.git
After the project is created run the following commands
cd laravel-9-architecture
Install the dependencies using composer
composer install
Copy the environment from .env.example to .env and add database connection
copy .env.example .env
Then generate application key
php artisan key:generate
Then create storage link
php artisan storage:link
Then run the migrations
php artisan migrate:fresh
app
├── Exceptions
│ └── Core
│ │ ├── GeneralException.php
│ │ ├── GeneralIndexException.php
│ │ ├── GeneralNotFoundException.php
│ │ ├── GeneralSearchException.php
│ │ ├── GeneralStoreException.php
│ │ ├── GeneralUpdateException.php
│ │ ├── GeneralDestroyException.php
│ │ ├── FormRequestTableNotFoundException.php
│ └── Example
│ │ ├── ExampleIndexException.php
│ │ ├── ExampleNotFoundException.php
│ │ ├── ExampleSearchException.php
│ │ ├── ExampleStoreException.php
│ │ ├── ExampleUpdateException.php
│ │ ├── ExampleDestroyException.php
│ └── ExampleType
│ ├── ExampleTypeIndexException.php
│ ├── ExampleTypeNotFoundException.php
│ ├── ExampleTypeSearchException.php
│ ├── ExampleTypeStoreException.php
│ ├── ExampleTypeUpdateException.php
│ ├── ExampleTypeDestroyException.php
├── Filters
│ └── Core
│ ├── FilterBuilder.php
│ ├── QueryFilter.php
├── Helpers
│ └── Core
│ ├── Helper.php
├── Http
│ └── Controllers
│ │ └── Api
│ │ │ └── Core
│ │ │ │ ├── ApiController.php
│ │ │ └── Example
│ │ │ │ ├── ExampleController.php
│ │ │ └── ExampleType
│ │ │ ├── ExampleTypeController.php
│ │ └── Auth
│ │ │ ├── AuthenticatedSessionController.php
│ │ │ ├── ConfirmablePasswordController.php
│ │ │ ├── EmailVerificationNotificationController.php
│ │ │ ├── EmailVerificationPromptController.php
│ │ │ ├── NewPasswordController.php
│ │ │ ├── PasswordResetLinkController.php
│ │ │ ├── RegisteredUserController.php
│ │ │ ├── VerifyEmailController.php
│ │ └── Example
│ │ │ ├── ExampleController.php
│ │ └── ExampleType
│ │ │ ├── ExampleTypeController.php
│ │ ├── Controller.php
│ └── Requests
│ └── Auth
│ │ ├── LoginRequest.php
│ └── Core
│ │ ├── FormRequest.php
│ │ ├── CreateFormRequest.php
│ │ ├── UpdateFormRequest.php
│ │ ├── DeleteFormRequest.php
│ │ ├── ShowFormRequest.php
│ │ ├── SearchFormRequest.php
│ └── Example
│ │ ├── CreateExampleRequest.php
│ │ ├── UpdateExampleRequest.php
│ │ ├── DeleteExampleRequest.php
│ │ ├── ShowExampleRequest.php
│ │ ├── SearchExampleRequest.php
│ └── ExampleType
│ │ ├── CreateExampleTypeRequest.php
│ │ ├── UpdateExampleTypeRequest.php
│ │ ├── DeleteExampleTypeRequest.php
│ │ ├── ShowExampleTypeRequest.php
│ │ ├── SearchExampleTypeRequest.php
│ ├── Controller.php
├── Interfaces
│ └── Core
│ │ ├── FilterInterface.php
│ │ ├── RepositoryInterface.php
│ │ ├── SearchInterface.php
│ └── Example
│ │ ├── ExampleInterface.php
│ └── ExampleType
│ ├── ExampleTypeInterface.php
├── Models
│ └── Example
│ │ ├── Example.php
│ └── ExampleType
│ ├── ExampleType.php
├── Repositories
│ └── Core
│ │ ├── Repository.php
│ └── Example
│ │ ├── ExampleRepository.php
│ └── ExampleType
│ ├── ExampleTypeRepository.php
├── Scopes
│ └── You can design scopes here
├── Services
│ └── Example
│ │ ├── ExampleService.php
│ └── ExampleType
│ ├── ExampleTypeService.php
├── Traits
│ └── Core
│ ├── ApiResponses.php
│ ├── Filterable.php
├── Transformers
│ └── Core
│ │ ├── EmptyResource.php
│ │ ├── EmptyResourceCollection.php
│ └── Example
│ │ ├── ExampleResource.php
│ └── ExampleType
│ │ ├── ExampleTypeResource.php
│ └── ExampleType
│ ├── ExampleTypeResource.php
├── View
│ └── Components
│ ├── AppLayout.php
│ ├── GuestLayout.php
The Laravel framework is open-sourced software licensed under the MIT license.