# Introduction
This is a very opinionated modified version of the Laravel framework which aims at providing strong type hinting with improved IDE support.
# Core Principles
- Domain oriented Laravel (opens new window)
- Actions (opens new window)
- Database UUIDs
- Model Repository pattern
- Invoked single method controllers
See the app/Domain/User (opens new window) directory for an example Model, Action & Data structure.
# Directory Structure
- app/App: Code that is required to run the core application.
- app/Domain: Domains
- app/Support: Abstract classes, interfaces, traits to support the Domains
# Requirements
- PHP 8.1 (opens new window)
- Composer (opens new window)
- Yarn (opens new window)
- Lando (opens new window) (optional)
# Getting Started
Start lando development container
lando start
Link storage folder
lando artisan storage:link
Migrate database
lando artisan migrate:fresh
Create a new Nova user
lando artisan nova:user
# Additional Packages
- Composer packages
- myclabs/php-enum (opens new window)
- romanzipp/dto (opens new window)
- romanzipp/laravel-queue-monitor (opens new window)
- romanzipp/laravel-seo (opens new window)
- romanzipp/laravel-previously-deleted (opens new window)
- romanzipp/laravel-model-doc (opens new window) (Run
php artisan model-doc:generate
) - romanzipp/laravel-env-normalizer (opens new window)
- romanzipp/php-cs-fixer-config (opens new window)
- spatie/laravel-medialibrary (opens new window)
- ebess/advanced-nova-media-library (opens new window)
- npm packages
# Generator commands
In order to provide a quick kickstarting there are many generator commands.
php artisan make:model [...] --domain [...]
(Tip: Provide a--all
flag to create associated classes)php artisan make:factory [...] --domain [...]
php artisan make:repository [...] --domain [...]
php artisan make:resource [...] --domain [...]
php artisan make:migration [...] --domain [...]
(Coming Soon)
# GitHub Actions
# Laravel Nova
You will need to define your Laravel Nova credentials via the NOVA_USERNAME
and NOVA_LICENSE_KEY
GitHub secrets.
# Tools
# PHP-CS-Fixer
lando phpcs fix
# PHPStan
lando phpstan
# Model-Doc Generator
lando artisan model-doc:generate