novay/boilerplate

My personal Laravel boilerplate.

1.0.56 2024-03-19 16:35 UTC

This package is auto-updated.

Last update: 2024-12-09 21:20:07 UTC


README

💡 This built for my personal use. Tested on Laravel 10 & 11.

Installation

📖 The installation process is quite simple.

# Laravel 10
composer create-project laravel/laravel:^10.0 example-app
cd example-app
composer require novay/boilerplate
php artisan vendor:publish --provider="Novay\Boilerplate\BoilerplateServiceProvider" --tag="config"
php artisan boilerplate:install


# Laravel 11
laravel new example-app
cd example-app
composer require novay/boilerplate "1.0.56"
composer require protonemedia/laravel-splade "1.4.18"
php artisan vendor:publish --provider="Novay\Boilerplate\BoilerplateServiceProvider" --tag="config"

php artisan boilerplate:install

Do not forget to migrate our default migration:

php artisan migrate

The boilerplate:install command will also build the frontend assets. Just like regular Laravel applications, you may run the Vite development server:

npm run dev

Additionally, you can follow this step:

// app/Providers/AppServiceProvider.php
...
class AppServiceProvider extends ServiceProvider
{
    ...
    public function boot(): void
    {
        \Illuminate\Support\Facades\Schema::defaultStringLength(191);
        \ProtoneMedia\Splade\Facades\Splade::defaultToast(function ($toast) {
            $toast->autoDismiss(3);
        });
    }
    ...
}

// app/Http/Kernel.php (Laravel 10)
...
class Kernel extends HttpKernel
{
    ...
    protected $middlewareGroups = [
        'web' => [
            ...
            \App\Http\Middleware\LangMiddleware::class,
        ],
        ...
    ];
    ...
}

// app/Models/User.php 
...
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens; # Laravel 10

use App\Traits\HasProfilePhoto;
use App\Traits\RandomIds;

class User extends Authenticatable // implements MustVerifyEmail
{
    use HasApiTokens; # Laravel 10
    use HasFactory, Notifiable;
    use HasProfilePhoto, RandomIds;

    protected $fillable = [
        'name',
        'email',
        'password',
        'phone',
        'plain',
        'address',
        'last_login_ip',
        'last_login_at'
    ];

    protected $hidden = [
        'password',
        'plain',
        'remember_token',
    ];

    # Laravel 10
    protected $casts = [
        'password' => 'hashed',
        'email_verified_at' => 'datetime',
        'deleted_at' => 'datetime',
        'last_login_at' => 'datetime',
    ];

    # Laravel 11
    protected function casts(): array
    {
        return [
            'password' => 'hashed',
            'email_verified_at' => 'datetime',
            'deleted_at' => 'datetime',
            'last_login_at' => 'datetime',
        ];
    }
}
# Additional
composer require kirschbaum-development/eloquent-power-joins

Documentation

📖 Complete documentation for Laravel Splade

You can use this toolkit right away:

Changelog

Please see CHANGELOG for more information what has changed recently.

Security

If you discover any security related issues, please email novay@btekno.id instead of using the issue tracker.

License

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