Mám niekoľko služieb Lumen, ktoré majú vo vnútri systému rovnaký kód render()
funkcia v rámci AppExceptionsHandler.php
trieda. Chcem presunúť tento kód do samostatného balíka, ktorý môžu obsahovať všetky služby. Podarilo sa mi to dosiahnuť tým, že súbor Handler.php rozšíril súbor LaravelLumenExceptionsHandler.php
triedy, v zásade vkladám moju triedu medzi predvolený súbor rámcov a popisovač, ktorý používatelia upravujú.
Zmena:
class Handler extends LaravelLumenExceptionsHandler {...}
Ak chcete:
Moja trieda
use LaravelLumenExceptionsHandler;
class MyHandler extends Handler {...}
Rámcová trieda
use ServiceHelpersExceptionsMyHandler;
class Handler extends MyHandler {...}
Avšak narazil som na problém LaravelLumenExceptionsHandler
neexistuje, keď jednotka testuje môj súbor v rámci balíka. Potrebujem niekoľko illuminate/...
balíčky v mojom skladateľskom súbore, ale vyzerá to, že súbor, ktorý sa snažím rozšíriť, je v rámčeku Laravel alebo Lumen a musím vyžadovať laravel/lumen
balík, o ktorom si nemyslím, že je vhodný.
Momentálne potrebujem nasledujúce:
"illuminate/support": "^5.5",
"illuminate/http": "^5.5",
"illuminate/validation": "^5.5",
Chyba, ktorú dostávam, je:
[SymfonyComponentDebugExceptionFatalErrorException]
Class "LaravelLumenExceptionsHandler" not found
odpovede:
1 pre odpoveď č. 1Z technického hľadiska závisí váš balík laravel/lumen-framework
inštalácia, pretože rozširuje triedu z tohto balíka. Z tohto dôvodu mať laravel/lumen-framework
ako závislosť vášho balíka je vhodná; váš balík závisí od jeho inštalácie.