PHP Flashcards
Установка времени cookie, удаление cookie
setcookie(‘some_key’, ‘some_value’, time() + 60 * 60 * 24 * 365); // принято раскладывать на составляющие для удобства чтения.
setcookie(‘some_key’, ‘some_value’, time()); // установка времени окончания жизни “печеньки” в текущий момент и соответственно она удаляется.
unset($_COOKIE[‘some_key’]); // доп к предыдущей, для того, чтобы изменения действовали уже в текущем сценарии.
Магические константы пути к скрипту и папке, его содержащей
__FILE__
__DIR__
Подняться на папку выше (относительные пути)
Та же нотация, что и в HTML:
‘../some_file.txt’
Доступ к свойствам и методам через их имена в переменных
$propname = ‘surname’;
$user->$propName;
$user->{$props[0]};
$user->{$methods[0]}(); // Если метод, то () снаружи
$user->{$props[‘prop1’]};
$user->{$prop->value};
$user->{getProp()};
Вызов метода сразу после создания объекта
(new City(‘Тихорецк’, 43234, 1874))->getInfo();
Как организовать цепочку вызовов методов объекта
$arr->add(1)->add(2)->push([3, 4])->getSum();
Нужно чтобы методы add() и push() возвращали ссылку на текущий объект:
return $this;
Вызов родительского конструктора
parent::__construct(#АРГУМЕНТЫ#);
Константы и переменные в интерфейсах
Интерфейсы не могут содержать свойства классов, но могут содержать константы. Константы интерфейсов работают точно так же, как и константы классов, за исключением того, что они не могут быть переопределены наследующим классом или интерфейсом.
FrontController и PageController
Один входной файл для всех адресов - такой подход имеет название FrontController в противовес подходу, когда каждый адрес (на самом деле маршрут, но об этом чуть позже) фактически отображался на конкретный файл файловой системы. Такой подход называется PageController.