PHP.INI
Первым делом, лезем в /etc/php5/fpm/php.ini и раскомментируем строку cgi.fix_pathinfo, задав ей параметр 0 (вместо 1 по умолчанию). Тем самым закроем потенциальную брешь безопасности, дабы php открывал исключительно путь который мы ему зададим, а не пытался импровизировать помогая пользователю.
PHP
PHP является популярным скриптовым язык общего назначения, который особенно подходит для веб-разработки.
Строки в PHP — Heredoc
Heredoc
Третий способ определения строк в PHP — это использование heredoc-синтаксиса: <<<. После этого оператора необходимо указать идентификатор, затем перевод строки. После этого идет сама строка, а потом этот же идентификатор, закрывающий вставку.
Строка должна начинаться с закрывающего идентификатора, т.е. он должен стоять в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания, и не должен начинаться с цифры (знак подчеркивания разрешается).
Читать далее
Магические методы в PHP5
Так получилось что в ООП функции называют — методами а переменные — свойствами. В PHP5 существует несколько полезных методов несущих в себе «магический» функционал о них сейчас и пойдет речь.
Все методы начинающиеся с __ PHP считает «магическими».
__construct() — метод конструктор, если он объявлен в классе то он будет вызываться при каждом создании объекта. Может принимать одно или несколько свойств.
__destruct() — деструктор вызывается при освобождении всех ссылок на объект в котором он находится или по завершению работы скрипта. Не может принимать свойства.
__get() — будет выполнен при чтении данных из недоступных свойств.
__set() — будет выполнен при записи данных в недоступные свойства.
__isset() будет выполнен при использовании isset() или empty() на недоступных свойствах.
__unset() будет выполнен при вызове unset() на недоступном свойстве.
__toString() — позволяет написать реакцию класса при возведении его в строку.
__invoke() — вызывается когда скрипт выполняет объект как функцию.
__clone() — клонирует объект.
Читать далее
Исключения в PHP
Модель исключений (exceptions) в PHP 5 проще, чем в других языках программирования. Исключение можно сгенерировать (как говорят, «выбросить») при помощи оператора throw, и можно перехватить (или, как говорят, «поймать») оператором catch. Код выбрасывающий исключение, должен быть окружен блоком try, для того чтобы можно было перехватить исключение. Каждый блок try должен иметь как минимум один соответствующий блок catch. Так же можно использовать несколько блоков catch, перехватывающих различные классы исключений. Нормальное выполнение (когда не генерируется исключений в блоках try или когда класс выброшенного исключения не совпадает с классами, объявленными в соответствующих блоках catch) будет продолжено за последним блоком catch. Исключения так же могут быть сгенерированны (или перегерерированы — т.е. выброшены снова) оператором throw внутри блока catch.
При генерации исключения, код следующий ниже оператора throw исполнен не будет, а PHP предпримет попытку найти первый блок catch, перехватывающий исключение данного класса. Если исключение не будет перехвачено, PHP выдаст сообщение об ошибке: «Uncaught Exception …» (Неперехваченное исключение), если конечно не был определен обработчик ошибок при помощи функции set_exception_handler().
Читать далее