hero-seguros/hero-laratoolkit 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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 com ApiControllerTrait, Services com execute(), 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, ApiControllerTrait e BusinessException como 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:

  1. app/Contracts/Repositories/OrderRepositoryInterface.php
  2. app/Repositories/OrderRepository.php (estende AbstractRepository, implementa a interface)
  3. app/Providers/RepositoryServiceProvider.php é criado (na primeira execução) ou atualizado com o bind OrderRepositoryInterface::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 em base_path() para debug local. Não comitar chamadas.

CHANGELOG

2.0.0 (breaking)

  • make:service mudou de assinatura: make:service Create Ordermake: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:adapter e make:helper.
  • make:repository agora gera interface + bind via RepositoryServiceProvider dedicado.
  • 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 我们能提供哪些服务?
定制开发 / 二次开发

基于 hero-seguros/hero-laratoolkit 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 3.49k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-01-22