hero-seguros/hero-laratoolkit
Composer 安装命令:
composer require hero-seguros/hero-laratoolkit
包简介
Um Pacote de recursos para apoiar aplicações Laravel
README 文档
README
Biblioteca compartilhada usada pelos serviços Laravel da Hero Seguros. Fornece:
- Geradores de código
make:opinativos, que organizam arquivos por domínio e já injetam as convenções da arquitetura padrão (Controllers comApiControllerTrait, Services comexecute(), Repositories com interface + bind, etc.). - Validadores brasileiros auto-registrados (
cpf,cnpj,phone,cellphone,cep,passport). - Helpers de formatação (
FormatHelper) e validação (ValidatorHelper). AbstractRepository,ApiControllerTraiteBusinessExceptioncomo base do padrão de serviço/controller.
Instalação
composer require hero-seguros/hero-laratoolkit
Requisitos
- PHP: >= 8.0
- Laravel (runtime, declarado em
composer.json): 8.x, 9.x, 10.x, 11.x ou 12.x
Cobertura de CI
O workflow tests.yml roda a suíte Pest contra Laravel 11 (Testbench 9) e Laravel 12 (Testbench 10), em PHP 8.2, 8.3 e 8.4. Laravel 8/9/10 continuam declarados como compatíveis no composer.json mas não são exercitados em CI — o ecossistema bloqueia a instalação combinada de Testbench 8 + PHPUnit-compatível-com-Pest-3 via security advisories (Laravel 10 já está fora do suporte de segurança oficial desde fev/2025). Se você usa o pacote em um serviço Laravel 8-10, os testes precisam ser rodados manualmente no ambiente do serviço.
Comandos make: — visão geral
Todos os overrides preservam os flags nativos do Laravel (--api, --resource, --model=, --sync, etc.). O --domain= é opcional em quase tudo — quando omitido, o comando se comporta exatamente como o nativo.
Overrides de comandos nativos
| Comando | Resultado com --domain=Foo |
Resultado sem --domain |
|---|---|---|
make:controller |
app/Http/Controllers/Foo/{Name}.php (com ApiControllerTrait) |
nativo |
make:request |
app/Http/Requests/Foo/{Name}.php |
nativo |
make:resource |
app/Http/Resources/Foo/{Name}.php |
nativo |
make:policy |
app/Policies/Foo/{Name}.php |
nativo |
make:job |
app/Jobs/Foo/{Name}.php |
nativo |
make:command |
app/Console/Commands/Foo/{Name}.php |
nativo |
make:middleware |
app/Http/Middleware/Foo/{Name}.php |
nativo |
make:rule |
app/Rules/Foo/{Name}.php |
nativo |
make:observer |
app/Observers/Foo/{Name}.php |
nativo |
make:test |
depende de --type (ver abaixo) |
nativo (com Pest forçado) |
Comandos com contrato próprio
| Comando | Assinatura | Resultado |
|---|---|---|
make:service |
{name} --domain={Dominio} (domínio obrigatório) |
app/Services/{Dominio}/{Name}Service.php |
make:repository |
{name} |
Cria interface, implementação e bind no RepositoryServiceProvider |
make:adapter |
{name} [--domain=Foo] |
app/Adapters/[Foo/]{Name}Adapter.php (Guzzle) |
make:helper |
{name} (sem --domain) |
app/Helpers/{Name}Helper.php |
make:test — tipos suportados
php artisan make:test ListOrders --type=feature --domain=Order
# → tests/Feature/Order/ListOrders.php
--type= |
Caminho gerado |
|---|---|
feature |
tests/Feature/[Domain/]{Name}.php |
unit-controller |
tests/Unit/Controllers/[Domain/]{Name}.php |
unit-service |
tests/Unit/Services/[Domain/]{Name}.php |
unit-policy |
tests/Unit/Policies/[Domain/]{Name}.php |
unit-helper |
tests/Unit/Helpers/{Name}.php (sem domínio) |
Pest é forçado sempre. Use --phpunit se precisar do stub PHPUnit.
make:repository — fluxo
php artisan make:repository Order
Gera três efeitos:
app/Contracts/Repositories/OrderRepositoryInterface.phpapp/Repositories/OrderRepository.php(estendeAbstractRepository, implementa a interface)app/Providers/RepositoryServiceProvider.phpé criado (na primeira execução) ou atualizado com o bindOrderRepositoryInterface::class => OrderRepository::class
O HeroLaraToolkitServiceProvider detecta a presença de App\Providers\RepositoryServiceProvider no boot e o registra automaticamente — não é preciso editar AppServiceProvider nem bootstrap/providers.php.
Executar make:repository Order duas vezes é idempotente: o bind não duplica. Use --force para sobrescrever os arquivos .php.
Validadores
Registrados globalmente pelo Service Provider — basta usar nas regras:
public function rules(): array { return [ 'cpf' => 'required|cpf', 'cnpj' => 'nullable|cnpj', 'telefone' => 'required|cellphone', 'fixo' => 'nullable|phone', 'cep' => 'required|cep', 'passport' => 'nullable|passport', ]; }
ApiControllerTrait + BusinessException
Padroniza respostas JSON de controllers:
use HeroLaraToolkit\Traits\ApiControllerTrait; use HeroLaraToolkit\Exceptions\BusinessException; class OrderController extends Controller { use ApiControllerTrait; public function store(StoreOrderRequest $request): JsonResponse { try { $order = app(CreateService::class)->execute($request->validated()); return $this->returnSuccess($order, 'Pedido criado.'); } catch (Throwable $e) { return $this->returnError('Falha ao criar pedido.', $e); } } }
Para erros de negócio que precisam vazar a mensagem para o caller, lance BusinessException — o trait substitui a mensagem genérica pela do exception automaticamente.
Helpers
FormatHelper::cpf|cnpj|cep|phone|dateToBr|dateToMysql|floatToBr— máscaras e conversões pt-BR ↔ MySQL.DebugHelper::inFile($name, $data)— escreve um JSON embase_path()para debug local. Não comitar chamadas.
CHANGELOG
2.0.0 (breaking)
make:servicemudou de assinatura:make:service Create Order→make:service Create --domain=Order. Scripts/CI precisam ser atualizados ao subir.- Adicionados 10 overrides de comandos nativos (
make:controller,make:request,make:resource,make:policy,make:job,make:command,make:test,make:middleware,make:rule,make:observer) que aceitam--domain=opcional. - Adicionados
make:adapteremake:helper. make:repositoryagora gera interface + bind viaRepositoryServiceProviderdedicado.- Suite de testes Pest + Orchestra Testbench adicionada.
Licença
MIT — veja LICENSE.
hero-seguros/hero-laratoolkit 适用场景与选型建议
hero-seguros/hero-laratoolkit 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.49k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 01 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 hero-seguros/hero-laratoolkit 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 hero-seguros/hero-laratoolkit 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 3.49k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-01-22