W Symfony, gdy uruchomimy polecenie, jeśli pojawi się jakikolwiek komunikat lub ostrzeżenie, Symfony wyświetli dużą czerwoną wiadomość i zamknie cały program.Jak zapobiegać opuszczaniu przez Symfony całego programu w momencie otrzymania ostrzeżenia lub powiadomienia
Chcę, aby błąd został wysłany do dziennika, ale nie chcę, aby cały program został zamknięty. Czy ktoś może mi powiedzieć, jak to osiągnąć. dzięki.
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class NotQuitWithWarningOrNoticeCommand extends ContainerAwareCommand
{
protected function configure()
{
$this
->setName('try:nored')
->setDescription('Avoid to show big red message')
->addArgument('type');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$type = $input->getArgument('type');
if ($type == 'warning' || !$type) {
trigger_error("a warning", E_USER_WARNING);
}
if ($type == 'notice' || !$type) {
trigger_error("a notice", E_USER_NOTICE);
}
echo "Hi there!\n";
}
}
(kod jest tu po prostu do odtworzenia problemu. Pierwsze ostrzeżenie lub zawiadomienie jest mój scenariusz.)
Użyj monologu i nie wyzwalaj błędów. –
, ale czasami funkcje php i biblioteki innych producentów wywołują błędy. – user3541554
To dobrze, jak to jest. Błędy i ostrzeżenia to błędny kod/użycie i powinieneś je naprawić –