Просмотрел дебагером, исключение генерируется, попадает в блок catch и скрипт продолжает работать (хотя его работа должна прерываться). Не подскажите из-за чего такая штука может происходить?
<?php
public function sending(string $event, EmailAddress $recipient, array $tpl = array()): void
{
try {
$this->mailer->addAddress($recipient->email, $recipient->name);
$this->mailer->Subject = $subject;
$this->mailer->Body = $body;
$this->mailer->isHTML(true);
if (!$this->mailer->send()) {
throw new EmailSendingFailed("Couldn't send email. Invalid sender address '{$recipient->email}'.");
}
return ['status' => 'success'];
$this->mailer->ClearAddresses();
} catch (Exception $e) {
return ['status' => 'error', 'error_message' => $e->getMessage();];
}
}
$e->getMessage();
$e->getMessage();
echo $e->getMessage();
bool allNotChecked
со значением true, затем в первом цикле поверяйте состояние элементов, если какой-то из них выбран, то присваивайте переменной false. После цикла - второе условие, если allNotChecked останется true, то выдавайте ошибку. Поняли? function files_connection( $paths = [] ) {
var_dump($paths);
$allFilesAvailable = true; // вот здесь вы отслеживаете наличие всех файлов
foreach ( $paths as $path_file ) {
$file_name = end( explode( '/', $path_file ) );
if ( !file_exists( __DIR__ . $path_file ) ) {
$allFilesAvailable = false; // если хотя-бы одного нет - дальше этого скрипта дело не пойдет
echo "
<div class=\"alert_danger_file_connection\">
<h1>Ошибка при подключении файла!</h1>
<p>Не удалось подключить файл: <mark>{$path_file}</mark></p>
<p>Проверьте наличие файла по указанному пути: <mark>{$file_name}</mark></p>
</div>
";
} else {
if( $allFilesAvailable)
include_once( __DIR__ . $path_file );
}
}
if(!$allFilesAvailable)// УПС!
exit;
}