Как в PHP узнать строку, на которой прервалось исполнение
При работе со старым кодом иногда очень сложно найти место, на котором прервалось исполнение. Конструкции типу die, exit и т.д. - очень плохая практика, но много легаси кода (и не только - я ничего плохого не говорю о Wordpress, так что молчу) ими злоупотребляют. Одна из самых больших проблем подобных конструкций - то, что их сложно найти и отладить. (Используйте exception!)
Но когда все же стоит задача найти место, где прерывается исполнение кода, можно воспользоваться следующим сниппетом:
Новое в PHP 7: оператор объединения со значением NULL
Не слишком броское имя для оператора, но раз уж php 7 принес нам удобный оператор объединения со значением NULL (англ. null coalesce operator), покажем пример.
У php 5 уже есть тернарный оператор, который проверяет выражение и потом возвращает второй элемент, если оно истинно и третий если ложно:
echo $count ? $count : 10; // выводит 10
Использование php-генераторов
Несмотря на то, что php-генераторы доступны с php 5.5.0, они все еще почти не используются. Более того, большинство разработчиков, которых я знаю, понимают, как работают генераторы, но не видят, когда они могут быть полезны в реальной жизни.
Да, генераторы определенно смотрятся хорошо, но знаете... Я не понимаю, где они могут быть полезными для меня, разве что для расчета последовательности Фибоначчи.
И они не ошибаются, ведь даже примеры в php-документации слишком упрощены. Они только объясняют, как эффективно реализовать range или итерировать по строкам файла.
Но даже с этих простых пример мы можем понять ключевые преимущества использования генераторов: они просто упрощают итераторы.
Итерация по периоду времени в php
Неоднократно приходилось работать на php со списком дат (по дням, к примеру) если есть начало и конец периода ($dateStart, $dateEnd). Например, для того, чтобы синхронизировать с бекендом рабочие/выходные дни для DatePicker из jQueryUi. Или, если нужно выводить отчеты по дням.
Предлагаю несколько вариантов решения этой задачи, как наиболее очевидным способом, так и более изящным (как мне показалось).
Использование Composer
Composer - менеджер зависимостей, или, лучше сказать, пакетов для php.
Официальная страница: https://getcomposer.org/
Позволяет следит за компонентами, которые используются в php-приложении, устанавливать их, обновлять и т.д.
Работа с базами данных в php. Модуль PDO
В предыдущей заметке мы ознакомились с устаревшим модулем mysql. Здесь мы приведем пример работы с более современным.
Работа с базами данных в php. Модуль MySQL
Если раньше (до php 5.0) можно было использовать более-менее тривиальный способ работы с базами данных в php (через модуль MySQL), то с новыми версиями php приходится переходить к новым модулям, таким как mysqli или pdo. Модуль MySQL deprecated в php 5.5.x и вскоре будет полностью исключен.
В этой заметке напомним, как использовать модуль MySQL, но использовать современные интерфейсы для работы (см. следующие заметки). Для минимального использования модуля MySQL обязательно нужно помнить всего лишь несколько функций (естественно, их намного больше, здесь представлен только необходимый минимум).