iporto/laravel-error-helper
Composer 安装命令:
composer require iporto/laravel-error-helper
包简介
Um helper para gerenciar erros 500 personalizados no Laravel com suporte a dados adicionais
README 文档
README
Um helper simples para gerenciar erros 500 personalizados no Laravel com suporte a dados adicionais, desenvolvido pela iPORTO.
Instalação
Você pode instalar o pacote via composer:
composer require iporto/laravel-error-helper
O pacote é automaticamente registrado usando o auto-discovery do Laravel.
Publicar views de exemplo
O pacote inclui templates de erro prontos para uso. Para publicá-los:
php artisan vendor:publish --tag=laravel-error-helper-views
Isso irá publicar:
resources/views/errors/500.blade.php- Template com Tailwind CSS (requer layout app)resources/views/errors/basic-500.blade.php- Template independente sem dependências
Uso
Este pacote permite que você apresente páginas de erro 500 com dados personalizados, perfeito para exibir detalhes de erro estruturados.
use IPorto\LaravelErrorHelper\Facades\Error; // Exibir erro simples Error::abort('Erro ao processar a solicitação'); // Exibir erro com dados adicionais Error::abort('Erro ao processar o pagamento', [ 'errors' => [ 'code' => 'PAYMENT_FAILED', 'reason' => 'Fundos insuficientes' ], 'trace' => [ 'Tentativa 1 falhou', 'Tentativa 2 falhou' ], 'exception' => [ 'type' => 'PaymentGatewayException' ] ]); // Alternativamente, você pode usar a classe ErrorHelper diretamente use IPorto\LaravelErrorHelper\ErrorHelper; ErrorHelper::abort('Mensagem de erro', $dadosAdicionais);
Configuração do Handler
Para usar este pacote, você precisa atualizar o Handler de exceções do seu aplicativo. Adicione o seguinte código ao seu App\Exceptions\Handler.php:
<?php namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Throwable; use IPorto\LaravelErrorHelper\CustomErrorException; class Handler extends ExceptionHandler { // Outras configurações existentes... public function render($request, Throwable $e) { if ($e instanceof CustomErrorException) { return response()->view('errors.500', [ 'exception' => $e, 'extra' => $e->getExtraData(), 'request' => $request ], 500); } return parent::render($request, $e); } }
Se você preferir usar o template básico sem dependências:
public function render($request, Throwable $e) { if ($e instanceof CustomErrorException) { return response()->view('errors.basic-500', [ 'exception' => $e, 'extra' => $e->getExtraData(), 'request' => $request ], 500); } return parent::render($request, $e); }
Exemplo de implementação
Aqui está um exemplo completo de como você pode usar o pacote em seu controller:
<?php namespace App\Http\Controllers; use IPorto\LaravelErrorHelper\Facades\Error; use Exception; class PaymentController extends Controller { public function processPayment() { try { // Simula uma tentativa de pagamento... // throw new Exception("Gateway de pagamento indisponível"); return redirect()->route('success'); } catch (Exception $e) { // Usar o ErrorHelper para exibir erro personalizado Error::abort('Falha ao processar pagamento', [ 'errors' => [ 'code' => 'PAYMENT_PROCESSOR_ERROR', 'message' => $e->getMessage() ], 'exception' => [ 'class' => get_class($e), 'code' => $e->getCode() ], 'trace' => [ 'request_id' => request()->header('X-Request-ID'), 'timestamp' => now()->toIso8601String() ] ]); } } }
Personalização
Você pode personalizar completamente a visualização dos erros editando os arquivos publicados em resources/views/errors/.
Licença
Este pacote é open-source sob a licença MIT.
iporto/laravel-error-helper 适用场景与选型建议
iporto/laravel-error-helper 是一款 基于 Blade 开发的 Composer 扩展包,目前已累计 213 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 04 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 iporto/laravel-error-helper 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 iporto/laravel-error-helper 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 213
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-04-11