TransportException
и InvalidArgumentException
. TransportException
само письмо может быть отправлено, просто это не получилось сделать вот прямо сейчас. А в случае InvalidArgumentException
видимо что-то не так в нашем коде и попытка отправить это же письмо ещё раз, очевидно, будет провальной.try {
// пытаемся отправить письмо
} catch (TransportException $e) {
// откладываем отправку письма на попозже
} catch (InvalidArgumentException $e) {
// что-то не так, пишем в логи и прерываем попытки выслать письмо
}
Давайте вспомним спецификацию HTML по поводу тега
<a>
:и описание из MDN:
Ключевым элементом здесь является то, что атрибут
href
является URL, см. RFC 3986.В вашем случае синтаксис значения атрибута
href
не является URL и не используется для навигации, т.е. нарушает саму суть использованного тега<a>
.Ваш пример в п.2 буквально вынуждает все сервера в интернете обрабатывать подобный синтаксис с тем, чтобы он отражал изменение состояния форм. Т.е. вы создаёте расширение базового и очень общего протокола для решения какой-то микроскопической частной задачи, что просто недопустимо.
В разделе II (про _before и _after) вы сами себе противоречите:
и затем в примере:
В общем, подводя итог, вы создаёте новый синтаксис там, где его стоит вводить крайне осторожно, потому что URL - основная схема формирования навигации в интернете. Для того чтобы это заработало нужно чтобы весь интернет во всём своём многообразии принял и поддержал это изменение. Но поскольку оно вводится для решения частного случая (интернет - это далеко не только HTTP протокол и тем более далеко не только HTML) - это предложение безусловно обречено на провал.