rockero-cz / starter-kit
Speed up the kickoff of your Laravel projects.
Installs: 2 176
Dependents: 0
Suggesters: 0
Security: 0
Stars: 33
Watchers: 5
Forks: 4
Open Issues: 0
Requires
- php: ^8.1|^8.2|^8.3
- illuminate/contracts: ^10.0|^11.0
- larastan/larastan: ^2.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- spatie/laravel-package-tools: ^1.13.0
- tightenco/duster: 3.0.0
Requires (Dev)
- laravel/pint: ^1.16
- nunomaduro/collision: ^7.5|^8.1
- orchestra/testbench: ^8.0|^9.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^10.1|^11.0
- spatie/laravel-ray: ^1.26
README
Laravel Starter Kit
Installation
Our starter-kit requires Laravel with version 10 or higher.
Install the package via composer:
composer require rockero-cz/laravel-starter-kit --with-all-dependencies
You can customize the installation command by publishing the config file with:
php artisan vendor:publish --tag="starter-kit-config"
Then run the installation command:
php artisan starter-kit:install
Features
All functionally of rockero-cz/laravel-starter-kit
are described bellow in a simple list with examples. They are designed to speed up the kickoff of your projects. It can be installed on any kind of Laravel
application.
Pest setup
The starter kit includes the initial setup of Pest
by publishing a pre-configured TestCase
, example tests and also .env.testing
file.
Additionally, it generates an ArchitectureTest.php
to maintain the codebase clean and sustainable.
test('globals') ->expect(['dd', 'dump', 'ray', 'env']) ->not->toBeUsed(); test('controllers') ->expect('App\Http\Controllers') ->not->toUse('Illuminate\Http\Request'); test('value objects') ->expect('App\ValueObjects') ->toUseNothing();
PHPStan setup
Besides tests, it also prepares static analysis using the PHPStan
tool with custom configuration on level 7.
includes: - ./vendor/larastan/larastan/extension.neon parameters: level: 7 checkMissingIterableValueType: false checkGenericClassInNonGenericObjectType: false paths: - app/
Duster setup
For linting and formatting we use Duster
by Tighten. Duster
unifies multiple tools together (Pint
, TLint
, PHP_CodeSniffer
and PHP CS Fixer
) inside one powerful command. It also helps us to follow some coding standards.
We also have added PHPStan
inside config to have everything unified in one single command.
{ "scripts": { "lint": { "phpstan": ["./vendor/bin/phpstan", "analyse"] }, "fix": { "phpstan": ["./vendor/bin/phpstan", "analyse"] } } }
GitHub Workflows CI
During the installation of the starter-kit, you will be prompted to add CI for GitHub Workflows.
If you choose to proceed, a ci.yml
file containing tests and Duster
will be automatically generated.
To allow github action to commit changes from duster and prettier you have to set permissions for that.
Set Read and write permissions
in github.com -> (Your project) -> Settings -> Actions -> General -> Workflow permissions
Prettier
During the installation of the starter-kit, you will be prompted to add Prettier to CI and project.
Installation prepare .prettierrc
where is configuration and command php artisan prettier
to fix your code on local environment.
You can use the .prettierignore
file to ignore any files or directories that you want. This can be useful for keeping Prettier from formatting files that you don't want it to format, or for keeping Prettier from formatting files that are not code files.
Stubs
Publish Laravel's default stubs so we have unified source code across projects.
They are also slightly modified to make the programming process more productive.
Commands
Since we follow the Action
programming concept, the starter kit provides two commands which will make you more productive.
Make action command: php artisan make:action VerifyUserAction
class VerifyUserAction { /** * Run the action. */ public function run(): void { // } }
Make class command: php artisan make:class ShoppingCart
class ShoppingCart { // }
Both commands have an option
--test
to also create matching tests.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.