π
Easy command to install the TALL-stack & jumpstart development
This package provides a simple artisan command for Laravel that can fully scaffold your application and jumpstart development.
It basically runs the installation process for all of your favourite packages, so that you can start developing right away!
Demo projects
Features
- It runs the regular installation process for your favourite TALL-tools, so that you don't have to
π - Install Pest instead of PHPUnit
βοΈ - Configure a Domain-Driven file structure (DDD)
β¨ - Install Browsersync for Valet users
β‘οΈ
What does it install?
- Tailwind CSS
- Tailwind CSS Forms
- Tailwind CSS Typography
- Alpine.js
- Alpine.js Trap
- Filament Admin Form Builder
- Filament Admin Table Builder
- Laravel Livewire
- Toast TALL-notifications
What can it install?
This package can also do the following things for you:
- Configure Browsersync for Laravel Valet users
- Install Pest testing framework instead of PHPUnit
- Configure a DDD-file structure.
Roadmap
- Fortify installation
The intention of this package is to do all the backend installation and not force you into anything frontend-wise.
Missing your favourite package? Feel free to submit an issue or a PR with your proposal.
Contents
Installation & usage
To get started, you need a plain Laravel installation:
laravel new name
# or
composer create-project laravel/laravel name
Install the package via composer:
composer require ralphjsmit/tall-install
Now run the tall-install
command:
php artisan tall-install
# Run this to reindex potential changes in classes.
composer dump-autoload
You can use the following flags to install a particular package.
Note: you can only use this command on a plain Laravel installation. Otherwise I cannot guarantee the correct result.
tall-install --ddd
Configure DDD with You may use the --ddd
or -d
flag to configure DDD:
php artisan tall-install --ddd
I think this is the most powerful feature, as it rewrites your /app
directory to this:
src/Support
βββ App
βββ Console
βββ Exceptions
βββ HTTP
βββ Providers
βββ Application.php
βββ Models
User.php
βββ View/Components/Layouts
App.php
Admin.php
src/Domain
// Add your own 'domains' here. Domains are where the business logic of the application is.
βββ Invoices...
βββ Customers...
src/App
// Add your own 'apps' here. Apps are the exposed to the outside (like APIs, a dashboard, a separate admin panel) or are your infrastructure (jobs).
βββ Console
βββ Jobs
βββ Api
For me, once I started using DDD I never wanted anything else. A good reference is the Laravel Beyond CRUD course by Brent Roose.
tall-install --pest
Install Pest with You may use the --pest
or -p
flag to configure Pest:
php artisan tall-install --pest
tall-install --browsersync
Install Browsersync with You may use the --browsersync
or -b
flag to configure Browsersync for Laravel Valet:
php artisan tall-install --browsersync
This will append the following code to your webpack.mix.js
file:
/* Browsersync configuration with Laravel Valet */
mix.disableSuccessNotifications();
const domain = 'valetDomain.test';
const homedir = require('os').homedir();
mix.browserSync({
proxy: 'https://' + domain,
host: domain,
open: 'external',
https: {
key: homedir + '/.config/valet/Certificates/' + domain + '.key',
cert: homedir + '/.config/valet/Certificates/' + domain + '.crt'
},
notify: false, //Disable notifications
})
By default it takes the current folder name as the domain for Valet. You may specify a custom domain with the --url
flag:
php artisan tall-install --browsersync --url=custom.test
Cleaning up
You can remove the package from your Composer dependnecies after you've run the tall-install
command:
composer remove ralphjsmit/tall-install