#10. 3 php Генерация пользовательских ошибок. Функции trigger_error() и errror_log()

Вывод сообщения об ошибке в окно браузера (trigger_error())

Сгенерировать ошибку и вывести сообщение о ней в окно браузера можно с помощью функции

bool trigger_error(string $error_msg, int $error_type = E_USER_NOTICE)

Первым аргументом является текст сообщения об ошибке, а вторым — её тип. Данная функция позволяет сгенерировать ошибки только пользовательских типов:

#10. 2 php Перехват ошибок. Регистрация пользовательского обработчика ошибок set_error_handler()

Регистрация нового обработчика ошибок

Функция

string set_error_handler(string $funcName [, int $errorTypes])

позволяет зарегистрировать собственный обработчик ошибок, который будет вызван вместо стандартного обработчика в случае возникновения ошибок заданных в параметре $errorTypes типов (по умолчанию E_ALL).

#10. 1 php Типы ошибок. Параметры контроля и протоколирования ошибок (error_reporting, display_errors, log_errors, error_log)

Классификация ошибок

По степени "серьезности":

  • фатальные, то есть такие, автоматическое восстановление после которых невозможно. Сюда относится, например, обращение к несуществующему файлу. Если работа программы должна быть продолжена, то ситуация возникновения такой ошибки должна быть обработана программистом, то есть должен быть написан код восстановления, явно указывающий, что делать дальше в таком случае. Для перехвата фатальных ошибок, начиная с PHP7, используется механизм исключений (exceptions), описанный далее в этой главе.

symfony cookies Куки заголовки, как посмореть что отдает движок/сервер

Проблема

Можно перехватить ответ как при его модификации и отладчиком посмотреть что там, но как раз в этом случае заголовков и не видно

#9.3 php Вложенные пространства имен. Импортирование элементов (use) и задание псевдонимов

Вложенные пространства имен

Используя слеши (\), пространство имен можно определить с произвольным количеством вложенных подпространств на различных уровнях вложенности. Например,

#9.2 php Использование пространств имен. Абсолютные и относительные имена

Квалифицированное имя элемента (функции, класса и т.д) пространства имен состоит из префикса, определяющего пространство имен, слеша (\) и имени элемента:

namespace\element_name

Для обращения к любым элементам некоторого пространства имен всегда может использоваться его квалифицированное имя, начинающееся с ведущего слеша (\). Такое имя называется абсолютным. Например, абсолютное имя функции speak() пространства cat:

#9.1 php Пространства имен (namespace). Объявление нового пространства имен. Что это такое?

Объявление нового пространства имен

Для объявления нового пространства имен (доступно, начиная с PHP 5.3) используется ключевое слово namespace, после которого следует имя пространства

Стажировка по Программированию: PHP, Symfony, React.js, Docker

Ищем стажера/ученика программиста:
* Стэк: PHP (Symfony, Docker), React.js (TypeScript) (можно отдельно бэк или фронт, но предпочтение универсальному подходу)
* Стипендия: первый месяц 100р./час , далее: 200-250р./час
* Длительность__: 3-6 месяцев` (при желании возможно длительное сотрудничество)
* Нагрузка: 20 часов в неделю (напр. 3 часа в день)

#7.20 php trait ООП Трейты (Примеси). Оператор разрешения конфликтов имен в трейтах insteadof

Как и интерфейсы, трейты компенсируют недостотатки отсутствия множественного наследования классов в PHP. Обычно они содержат общие фрагменты кода для классов — например, реализующих одни и те же интерфейсы похожим или одинаковым образом.

Трейты объявляются при помощи ключевого слова trait, после которого следует имя трейта и его содержимое в фигурных скобках:

#7.21 php ООП Оператор проверки типа instanceof

Оператор проверки типа проверяет соместимость класса объекта, стоящего слева от instanceof с классом или интерфейсом, стоящим справа:

$Obj instanceof Class

В самом простом случае оператор instanceof позволяет проверить, является ли объект экземпляром некоторого класса, например,

<?php
class A
{
}

class B
{
}

$a = new A;
var_dump($a instanceof A);
var_dump($a instanceof B);

Результат:
bool(true)
bool(false)

Pages

Subscribe to fkn+antitotal RSS