NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Package Toolkit for Laravel

Prechod existujúceho balíka

Presun existujúceho balíka na toolkit je mechanický — štyri kroky.

1. Rozšírte PackageServiceProvider

Namiesto ručne zapojeného providera rozšírte PackageServiceProvider a koncovku mergeConfigFrom / loadX / publishes / commands presuňte do configurePackage(). Typický ručne zapojený provider:

use Illuminate\Support\ServiceProvider;

final class CommentsServiceProvider extends ServiceProvider
{
    public function register(): void
    {
        $this->mergeConfigFrom(__DIR__.'/../config/comments.php', 'comments');
    }

    public function boot(): void
    {
        $this->loadTranslationsFrom(__DIR__.'/../resources/lang', 'comments');

        if ($this->app->runningInConsole()) {
            $this->publishes([
                __DIR__.'/../config/comments.php' => config_path('comments.php'),
            ], 'comments-config');

            $this->publishes([
                __DIR__.'/../resources/lang' => $this->app->langPath('vendor/comments'),
            ], 'comments-translations');

            $this->commands([PruneCommentsCommand::class]);
        }
    }
}

sa zmení na jedinú deklaráciu s rovnakými publish tagmi:

use RoundlyConsulting\PackageToolkit\Package;
use RoundlyConsulting\PackageToolkit\PackageServiceProvider;

final class CommentsServiceProvider extends PackageServiceProvider
{
    public function configurePackage(Package $package): void
    {
        $package
            ->name('comments')
            ->hasConfigFile()                               // same comments-config tag
            ->hasTranslations()                             // same comments-translations tag
            ->hasCommands([PruneCommentsCommand::class]);
    }
}

Ak balík doteraz načítaval migrácie automaticky, toolkit ich namiesto toho publikuje: dajte hostiteľom vedieť, že ich majú publikovať a spustiť migrate, a v TestCase balíka ich načítajte explicitne.

2. Použite KeyType, makrá a DatabaseDriver

Odstráňte lokálny enum *KeyType a magické reťazce driverov; použite KeyType so schémovými makrami a DatabaseDriver:

// Before — driver magic strings and a hard-coded key column
if (DB::connection()->getDriverName() === 'pgsql') {
    // …
}
$table->unsignedBigInteger('author_id')->index();

// After — DatabaseDriver and the host's configured key type
if (DatabaseDriver::current()->isPgsql()) {
    // …
}
$table->ownerKey('author_id', KeyType::fromConfig('comments.key_type'));

3. Nahraďte lokálne kópie pomocníkov

Lokálne kópie LikeEscaper, strážcov konfigurácie či resolverov modelov nahraďte pomocníkmi toolkitu zo Support — LikeEscaper, Config a ModelResolver.

4. Spustite kontrolu kvality

Spustite testy a statickú analýzu balíka, potom CI:

composer test
composer analyse

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.