loading...

Laravel load anonymous components from packages

dcblog profile image David Carr Originally published at dcblog.dev on ・1 min read

From Laravel 7 blade components are included. You may want to use these in packages.

For the components to be loaded from a package, the package service provider has to first load views from a folder and then use Blade::component to load the components.

Example:

In the package src folder create a folder called components

This example is for a fictional package called Elements

The service provider loads the files from the components folder and then uses Blade::component to load each one.

At the time of writing this, there is no way to automatically load components, the need to be loaded individually.

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Blade;

class ElementsServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->loadViewsFrom( __DIR__. '/components', 'elements');

        Blade::component('elements::form-button', 'form-button');
    }
}

These components can then use using by called <x- followed by the name:

<x-form-button method="GET" action="/demo">
    Delete
</x-form-button>

Posted on by:

dcblog profile

David Carr

@dcblog

For the past 15 years, I've been developing applications using mostly PHP. I love to write tutorials and get involved with the community.

Discussion

markdown guide