Принцип Инверсии Управления – Голливудский Принцип

Среди программистов (включая и меня, так что здесь я публично признаю свою вину) бытует мнение о том, что Инверсия Управления (IoC) является не более, чем синонимом для старого принципа Внедрения Зависимости (DI). Существует простая причина для такой точки зрения: идея Принципа Внедрения зависимостей состоит в реализации классов, чьи элементы обеспечиваются […]

Принцип открытости / закрытости (open closed solid)

Должен признаться, когда впервые увидел академическое определение принципа открытости/закрытости, его смысл был для меня удивительно ясен. Я отбросил из определения весь технический жаргон, и принцип читался как заклинание, которое мы слышали раньше много раз: «Не ломай ядро». Ну, правда, здесь существует некоторая двусмысленность высказывания, так как есть по крайней мере […]

PHPOffice

Команда энтузиастов, под брендом PHPOffice ведёт разработку библиотек для чтения и генерации офисных файлов. На данный момент доступны библиотеки для следующих форматов: Word (word2007, odt, pdf, rtf, html) Excel (excel2007, excel5, csv, pdf, html) Power point (powerpoint2007, odp, serialized) Visio (msvision2007, msvisio2013) Project (msprojectexchange, gantproject)

Почему некоторые PHP-разработчики предпочитают статические API?

В мире существуют две разновидности PHP-разработчиков. Одни предпочитают статические методы, потому что с ними легко работать, другие же, напротив, считают статические методы — зло и не используют их в своей практике. В этой статье попробую, используя опыт работы с несколькими фреймворками, объяснить, почему некоторые разработчики игнорируют лучшие практики и используют […]

Ответ на «микрооптимизацию в PHP»

На прошлой неделе я прочитал пост, рекомендованный мне в PHP Weekly. Он назывался Микрооптимизация в PHP. Я повелся, ведь всегда стремлюсь быть лучшим PHP разработчиком. Пост начинается с общих рекомендаций, которые, по сути, являются даже не микро-, а микро-микрооптимизацией. Продолжая читать, я приходил к выводу, что описанное в тексте и вовсе имеет мало […]

Правильный взгляд на временные зоны в PHP

Это небольшая статья о том, как работать с временными зонами при хранении значений даты / времени в базе данных. Базы данных или язык программирования, который вы решите использовать, решающего значения не имеет, так как описываемые в статье явления универсальны. Свои действия я буду показывать на примере использования связки MySQL и […]

Composer: Управление версиями

Если вы не знаете, что такое Composer, немедленно переходите на сайт Composer и начинайте изучать. Я знаю многих людей, которые сталкиваются с ограничениями, связанными с использованием Composer-зависимостей. Надеюсь, этот пост поможет пролить свет на то, почему некоторые моменты при работе с версиями являются нежелательными и как их избежать. Я начну свой пост […]

Управление событиями в Laravel

В этой статье мы попробуем разобраться как запускать события и как их обрабатывать. Напомню, что событие — это своего рода сообщение, возникающее в определенный момент времени. Некоторые события уже определены в Laravel, но в основном эта задача ложится на плечи разработчика. И так, у нас есть сообщение. Оно, как правило, […]

События в Laravel. Введение

Любое серъезное приложение имеет механизм событий. Они позволяют взаимодействовать различным функциональным частям приложения друг с другом. И Laravel не исключение. Начать изучение можно с официальной документации (на русском языке). Несмотря на довольно подробное описание, у начинающих знакомится с Laravel возникает большое количество вопросов. Это потому, что этот материал хоть и не сложный, […]

Ускоряем Composer

Пакетный менеджер Composer при выполнении команды install или update обращается к файлу composer.json и последовательно обрабатывает указанные в нём пакеты. Если пакетов много, то эта процедура займёт довольно продолжительное время. Проблему могло бы решить распараллеливание процессов. И как раз для решения данной задачи чуть больше года назад был создан плагин Prestissimo. Он позволяет ускорить загрузку пакетов на […]