usanzadunje / scaffold-laravel
Multiple scaffolding options for Laravel application.
Fund package maintenance!
usanzadunje
Installs: 18
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 3
pkg:composer/usanzadunje/scaffold-laravel
Requires
- php: ^7.4|^8.0
- illuminate/contracts: ^7.0|^8.0|^9.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- nunomaduro/collision: ^5.10|^6.1
- nunomaduro/larastan: ^1.0
- orchestra/testbench: ^6.22
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2026-01-09 18:40:23 UTC
README
Multiple scaffolding options for Laravel application.
Installing Vue, adding Vue Router/Inertia as your frontend router, adding Vuex as state manager. Replacing Webpack with Vite or installing Browser Sync plugin for Webpack. Also adds scaffolding for Docker with any of these presets mentioned.
Installation
You can install the package via composer:
composer require usanzadunje/scaffold-laravel
Usage
php artisan scaffold [preset]
Available presets :
vuevue-router(if you have vue application set up)vuex(if you have vue application set up)vite(replaces webpack for vite)dockerall(installs vue, vite and docker preset all together)
Vue
Will generate following files and directories inside your resources/js directory :
componentsdirectorycomposablesdirectoryviewsdirectory andExample.vueinside itapp.jsfiles with minimal scaffolding for Vue applicationapp.blade.phpfile with #app container defined- Change
/route to returnappview instead ofwelcome
Additionally, it will ask if you would like router or state manager installed as well.
Vue Router
Will generate following files and directories inside your resources/js directory :
routerdirectory and inside it basic scaffolding for routes with one example route definedWelcome.vuefile insideviewswhich will be shown for example route definedExampleApp.vuewhich will serve as entrypoint to router (it has defined in it)- It will initialize itself inside
app.jsfile
Additionally, it will ask if you would like basic middleware scaffolding for your routes. This will then create middlewarePipeline.js file which is responsible for calling all middlewares defined on certain route. And inside router/index,js file where routes are defined it will add beforeEach navigation gourd and call this pipeline.
Routes which require middleware(s) should have meta filed with middleware property defined on them which is an array of middlewares. You can define your middlewares in middlewares directory which will be created along with example middleware.
Vuex
Will generate following files and directories inside your resources/js directory :
storedirectory and inside it basic scaffolding for vuex in module fashionModule.jsfile insidestorewhich is example of single module state- It will initialize itself inside
app.jsfile - Vuex scaffolding comes along with
vue-persistedstateplugin which will persist data from state inLocal Storage
Vite
Will remove all packages, scripts and files associated with Webpack. Additionally, it will create vite.config.js in root of project directory and setup basic configuration.
If you have Vue installed it will add Vite plugin for Vue and optimize configuration for it as well (same goes if Vue Router or Vuex are installed)
If you installed Vue using this package it will generate app.blade.php file and Vite scaffolding will remove assets(css/js) imported using Webpack and generate @vite blade directive which will generate imports for Vite assets(css/js).
If you however do not have app.blade.php file it will not try and replace these, so you will need to add @vite directive yourself to your layout file.
It will also import your css/app.css file inside app.js since this is how Vite handles css.
Docker
Will generate docker-compose.yml and docker-compose.prod.yml files with container details. Also it will generate docker-compose directory which contains configuration for: nginx, php, suppervisord and initialization scripts for development and production.
It will adopt itself depending on whether you use Webpack or Vite in order to work smoothly with them and change Webpack or Vite configuration accordingly
It will change your .env file and following contents of it:
DB_HOSTand set it todbso docker can resolve it, since database will live inside containerDB_USERNAMEonly if it is set torootand will change it tolaravelDB_PASSWORDonly if it is set to nothing(empty) and will change it tolaravelDB_PORTonly if it is set to something other than3306since this is port used by container_name
Additional information:
Database port exposed on your local machine is set to 3310 if you want to connect to it from your host machine.
Application port if using with Webpack but without Browser Sync plugin setup will be exposed to 8000(served on localhost:8000).
If you are however using Webpack with Browser Sync port exposed will be 3000 (served on localhost:3000)
When using Vite port exposed will be 3000 (served on localhost:3000)
Scripts that are responsible for applications in production / development are inside docker-compose directory, and they are init.sh / initDev.sh files respectively.
Feel free to change them as these are commands that will run on start of the container which hold application.
Disclaimer
This is my first package, and I made it primarily because I caught myself doing same things on almost every project(copy -> pasting) so I wanted to save myself some time and created this. I also tweaked it a little, so it could be used in multiple occasions so maybe other people can use it. But keep in mind it was made having my problems in mind.
If you have any suggestion that would help you or things to add I would be happy to do it. If it helps one person I would be glad :).
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.