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 analysePrejavte 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 kryptomienOdoslaní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.