Перейти до основного вмісту

Події та винятки

Використовуйте події життєвого циклу для інтеграції із застосунком, а типи винятків — для відновлення на межі, яка здатна обробити помилку.

Події життєвого циклу

ПодіяПублічні даніМомент надсилання
FeedStartingEventfeed, targetПісля попередньої перевірки сховища й шляху, до визначення конвертера та підготовки файлів.
FeedFinishedEventfeed, target, path, pathsПісля успішної публікації всіх згенерованих файлів.

$target містить ключ цілі для цільового генерування та null для звичайного фіду. FeedFinishedEvent::$paths містить усі опубліковані шляхи в належному порядку. $path збережено для сумісності, і він завжди містить перший шлях.

Помилки введення та пошуку

ВинятокЗначення
InvalidFeedArgumentExceptionІдентифікатор фіду в консолі недійсний.
FeedNotFoundExceptionРеєстрації із запитаним ідентифікатором фіду не існує.
InvalidExpressionExceptionВираз розкладу недійсний.
UnknownFeedClassExceptionНалаштований клас фіду неможливо визначити.
UnexpectedClassExceptionВизначений клас не відповідає очікуваному контракту.

Для вибору цілі використовуються винятки SPL. Якщо передано --target, feed:generate викидає InvalidArgumentException, коли не вказано ідентифікатор реєстрації фіду, ключ цілі порожній чи вибраний фід не реалізує HasFeedTargets. Якщо findTarget() повертає null, викидається UnexpectedValueException.

Помилки серіалізації та сховища

ВинятокЗначення
InvalidCsvRowExceptionРядок CSV не відповідає встановленій схемі стовпців.
InvalidCsvValueExceptionПоле CSV неможливо серіалізувати як скалярне значення.
InvalidXmlCDataExceptionЗначення CDATA недійсне.
InvalidXmlFragmentExceptionНеоброблений фрагмент XML недійсний.
UnsupportedStorageDiskExceptionВибраний диск Laravel не визначається як FilesystemAdapter.
OpenFeedExceptionРесурс чернетки виведення неможливо відкрити.
WriteFeedExceptionПовне виведення неможливо записати.
CloseFeedExceptionРесурс виведення неможливо закрити.
ResourceMetaExceptionПотрібні метадані потоку недоступні.
FeedGenerationExceptionГенерування певного класу фіду завершилося помилкою.

FeedGenerationException::getFeed() повертає клас фіду. getFeedTarget() повертає ключ цілі для цільового генерування та null для звичайного фіду. Початкова помилка залишається доступною через getPrevious().

Перехоплюйте винятки лише там, де застосунок може додати відновлення або зрозумілий користувачу контекст. Дозвольте Laravel повідомляти про невідновні помилки генерування.

Дивіться також