Fresh Package: skeleton per pacchetti Laravel con Testbench, CI e integrazione Boost
Fresh è uno skeleton per pacchetti Laravel creato da Mazen Touati. Offre uno skeleton per pacchetti opinionated che fornisce un pacchetto con test, analisi statica, CI, un'app workbench e un template di skill Laravel Boost per gli agenti AI. Supporta sia pacchetti solo backend sia pacchetti full-stack.
Ecco cosa include il pacchetto generato con questo skeleton:
- PHPUnit, Larastan, Rector e Pint, con Paratest per le esecuzioni in parallelo
- Un'app
workbench/basata su Orchestra Testbench, così puoi avviare il pacchetto concomposer servee navigarlo senza un'applicazione host - Uno switcher di versione di Laravel,
composer switch:l12ecomposer switch:l13, per verificare localmente entrambe le major supportate - GitHub Actions per una matrice di test da PHP 8.3 a 8.5 su Laravel 12 e 13, Codecov, analisi statica, auto-fix di Pint e Rector e auto-release con release-please
- Frontend in Vue 3, Tailwind v4, Vite e TypeScript, con workflow dedicati per ESLint, Prettier, Vitest e type-check
- Impostazioni del repository: Dependabot, un template per le issue, un file di funding e una security policy
- Linee guida e skill AI per il repository del pacchetto stesso, più uno stub opzionale di skill Laravel Boost per le app che lo installano
Creare lo scaffolding di un pacchetto
Quando usi questo skeleton per creare il tuo pacchetto, il wizard si avvia durante composer install:
composer create-project sunchayn/fresh-package my-package
cd my-package
I prompt di installazione raccolgono i dettagli del pacchetto e le funzionalità che vuoi utilizzare. Ogni prompt ha un flag, quindi puoi saltare il wizard in uno script o in un job di CI:
php .template/init template:init --no-interaction \
--package-name=acme/webhooks \
--vendor-namespace=Acme \
--class-name=Webhooks \
--config --routes --migrations --commands \
--no-blade --no-translations --no-facade --no-assets \
--no-vue --no-funding
Struttura delle directory
Lo skeleton Fresh raggruppa il codice per dominio anziché per tipo:
src/
Http/Greeting/
Controllers/GreetingController.php
Requests/GreetingRequest.php
Resources/GreetingResource.php
Modules/Greeting/
Actions/BuildGreetingAction.php
DataTransferObjects/GreetingData.php
Enums/GreetingTone.php
Se mantieni l'opzione di supporto AI, la skill scaffold-module inclusa impone la stessa struttura quando un agente aggiunge una funzionalità, mentre le skill create-dto-action, write-php-test e task-finalization coprono il resto di una modifica.
Fresh include un'opzione separata per le skill Boost che aggiunge uno stub in resources/boost/skills/. Le app che installano il tuo pacchetto otterranno linee guida e skill del pacchetto in Laravel Boost.
Per saperne di più
Se sei nuovo allo sviluppo di pacchetti, la guida alla creazione dei tuoi pacchetti Laravel spiega come costruire un pacchetto Laravel da zero.
Puoi saperne di più sullo skeleton Fresh Package per Laravel su GitHub.
Altri articoli recenti
Laravel AI 1.1 e 1.2: Agent Skills, Cohere e structured output più solidi
Le release 1.1.0 e 1.2.0 di laravel/ai portano gli Agent Skills, l'approvazione obbligatoria per i tool built-in e nuovi provider come Cohere e Laya self-hosted. Sul fronte qualità arrivano i fix allo structured output per Bedrock e il supporto alle provider options. Aggiornati anche i modelli di default, con Claude 4.7+ che ignora i sampling params.
Laravel 13.35.0: scheduler più controllabile, code più flessibili e response Markdown
Laravel 13.35.0 porta Schedule::alwaysOnOneServer(), il supporto a schedule:interrupt per i comandi di lunga durata, --memory in percentuale per queue:work e il nuovo metodo markdown() sulla response factory. Tante piccole migliorie anche a test, view compilate in parallelo e dischi local.
BashBox: un interprete Bash in sandbox per agenti AI in PHP
BashBox è un interprete bash scritto in puro PHP che permette di eseguire gli script generati dagli agenti AI senza mai ricorrere a proc_open, exec o shell_exec. Ogni comando è una classe PHP che lavora su un filesystem virtuale, con limiti di esecuzione, quote disco e accesso di rete configurabili. Ideale per chi sviluppa agenti con il Laravel AI SDK o altre librerie simili.