Skip to content

Latest commit

 

History

History
194 lines (127 loc) · 5.54 KB

README.md

File metadata and controls

194 lines (127 loc) · 5.54 KB
Banner

Laravel Starter Kit

Rockero Latest Version on Packagist Total Downloads Software License

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.