Просмотрел дебагером, исключение генерируется, попадает в блок 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;
}
function files_connection( $paths = [] ) {
$bad_files = []; // задаём массив для некорректных файлов
foreach ( $paths as $path_file ) {
$file_name = end( explode( '/', $path_file ) );
if ( !file_exists( __DIR__ . $path_file ) ) {
$bad_files[] = [$path_file, $file_name]; // складываем в массив некорректные файлы
} else {
include_once( __DIR__ . $path_file );
}
}
// если нашли некорректные файлы
if (count($bad_files) > 0){
// показываем некорректные файлы
foreach ($bad_files as $file) {
echo "
<div class=\"alert_danger_file_connection\">
<h1>Ошибка при подключении файла!</h1>
<p>Не удалось подключить файл: <mark>{$file[0]}</mark></p>
<p>Проверьте наличие файла по указанному пути: <mark>{$file[1]}</mark></p>
</div>
";
}
exit();
}
}
add_filter( 'nav_menu_css_class', function ( $classes, $item, $args, $depth ) {
if ( $args->theme_location === 'header-blog' ) {
if (in_array('menu-item-has-children', $classes)) {
$classes = [ 'nav-item', 'dropdown' ];
} else {
$classes = [ 'nav-item' ];
}
} else {
$classes = [];
}
return $classes;
}, 10, 4 );
Подскажите пожалуйста, как реализовать такую штуку?