Passa al contenuto principale
Pagina non in elenco
Questa pagina non è in elenco. I motori di ricerca non lo indicheranno e solo gli utenti con collegamento diretto possono accedervi.

Guida allo sviluppo di plugin

Gäld supporta un sistema di plugin per estendere le funzionalità senza modificare l'applicazione principale.

Struttura di un plugin

plugins/
└── my-plugin/
├── plugin.json
├── src/
│ └── MyPluginServiceProvider.php
├── routes/
│ └── web.php
├── resources/
│ └── views/
└── migrations/

plugin.json

{
"name": "My Plugin",
"version": "1.0.0",
"description": "Description of what this plugin does",
"author": "Your Name",
"provider": "MyPlugin\\MyPluginServiceProvider"
}

Service Provider

<?php

namespace MyPlugin;

use Illuminate\Support\ServiceProvider;

class MyPluginServiceProvider extends ServiceProvider
{
public function register(): void
{
// Bind services
}

public function boot(): void
{
// Load routes
$this->loadRoutesFrom(__DIR__.'/../routes/web.php');

// Load views
$this->loadViewsFrom(
__DIR__.'/../resources/views',
'my-plugin'
);

// Load migrations
$this->loadMigrationsFrom(__DIR__.'/../migrations');
}
}

Attivare un plugin

I plugin vengono rilevati automaticamente dalla directory plugins/. Ogni plugin deve avere un file plugin.json valido con una classe provider.

Accesso ai servizi principali

I plugin possono iniettare i servizi principali:

use App\Domains\Accounting\Services\LedgerService;

public function boot(LedgerService $ledger): void
{
// Use the ledger service
}

Buone pratiche

  • Utilizzare un namespace per il proprio plugin: YourPlugin\\
  • Utilizzare le migrazioni del database per le modifiche allo schema
  • Registrare le route con un prefisso univoco
  • Utilizzare il namespace delle viste del plugin per evitare conflitti