rawilk/laravel-stubs

Opinionated modifications to the default Laravel stubs.

Fund package maintenance!
rawilk

v1.3.0 2024-04-09 13:42 UTC

README

Latest Version on Packagist Tests Total Downloads PHP from Packagist License

Social image

This repo contains opinionated versions of the Laravel stubs. The most notable changes are:

  • migrations don't have a down function
  • controllers don't extend a base controller
  • none of the model attributes are guarded
  • use return type hints where possible
  • most docblocks have been removed
  • declare(strict_types=1); added to most files

Installation

You can install the package via composer:

composer require rawilk/laravel-stubs --dev

If you want to keep your stubs up-to-date with every update, add this composer hook to your composer.json file:

"scripts": {
    "post-update-cmd": [
        "@php artisan custom-stub:publish --force"
    ]
}

Usage

You can publish the stubs using this command:

php artisan custom-stub:publish

Usage in Packages

If you're developing a package, you may pull these stubs in to your package and generate them just like you would with a normal Laravel project. This is possible when used with Orchestral Canvas. On your package project, run the following command:

composer require --dev rawilk/laravel-stubs orchestra/canvas

Next you need to run:

composer exec canvas preset package

Finally, modify the generated canvas.yaml file:

preset: Rawilk\Stubs\Canvas\Package
namespace: YourPackageNamespace

To generate a file, you can run the following command:

composer exec canvas make:migration CreatePostsTable --create

Running this would generate a migration normally, just like the php artisan make:migration command would. For more information on canvas, please refer to their documentation.

Tip: Create an alias for composer exec canvas in your profile to allow easier entering of your generator commands. I personally added the following alias to my bash profile:

alias canvas="composer exec canvas"

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.