Как на PHP получить построчную разницу между двумя файлами или строками

Довольно часть встречается задача: взять два файла или строки, сравнить их построчно и отобразить разницу. И конечно же это можно решить стандартными средствами PHP! Для PHP создано расширение xdiff, которое позволяет создавать и накатывать патч-файлы, содержащие различия между различными версиями файлов или документов. В основе этого расширения лежит библиотека libxdiff.

Как в PHP определить путь к классу по его неймспейсу?

Достаточно нетривиальная задача: как в рантайме определить путь к файлу с классом? Может пригодиться при работе со всяким легаси-кодом, чтобы проверить, например, актуальность файла. Делается это элементарно: $reflector = new \ReflectionClass(Constants::class); $filename = $reflector->getFileName(); Наслаждайтесь!

Service Container and Dependency Injection in Symfony framework

Иногда одна единственная идея способна изменить все представление о программировании. Для меня одной из такой идей была идея сервис-контейнера. Это как золотой грааль). Вообще-то, идея не сугубо Symfony framework, это просто один из удачных паттернов проектирования приложений, часто используемый в Symfony. В двух словах и на пальцах: сервис-ориентированая архитектура позволяет регистрировать класс (сервис), […]

Коллекция полезных Bundle для Symfony

Помимо стандартного набора поставки Symfony, существует множество бандлов (Bundle) от сторонних разработчиков, которые очень упрощают жизнь при разработке приложения (действительно, зачем изобретать велосипед, если есть готовое решение). Не будем разворачивать спор по поводу нередкого присутствия в бандлах функционала, который никогда не будет использован в вашем приложении — скорость разработки покроет эти достаточно […]

PHP Symfony Framework: первые шаги

Как и Вы мне скорее захотелось посмотреть как работает Symfony обратившись к ней в браузере. Но, прежде чем продолжить, тем кто не знает, хочу напомнить, что Symfony изначально умеет работать как минимум в двух окружениях (режимах): dev — краткое назчание от Developer, используется для информирования разработчика о багах, аннотациях, использовании памяти и […]

Как на PHP определить пол по имени

Задача определения пола по имени человека на PHP решается скучно, не интересно и не спортивно. Конечно, можно было бы подключить машинное обучение, несколько недель собирать обучающую выборку и тренировать нейросеть. Но такое решение окажется слишком дорогим и ни один адекватный заказчик такое оплачивать не согласится.  Как это не удивительно, но […]

PHP функция перевода в транслит transliterator_transliterate()

Функция перевода русского текста в транслит используется практически в каждом web-проекте. Например, это применяется для ЧПУ, генерации логина или никнейма по имени пользователя или даже для определения пола по имени! И чаще всего внутри себя представляет что-то типа: $s = strtr($s, array(‘а’=>’a’,’б’=>’b’,’в’=>’v’,’г’=>’g’,’д’=>’d’,’е’=>’e’,’ё’=>’e’,’ж’=>’j’,’з’=>’z’,’и’=>’i’,’й’=>’y’,’к’=>’k’,’л’=>’l’,’м’=>’m’,’н’=>’n’,’о’=>’o’,’п’=>’p’,’р’=>’r’,’с’=>’s’,’т’=>’t’,’у’=>’u’,’ф’=>’f’,’х’=>’h’,’ц’=>’c’,’ч’=>’ch’,’ш’=>’sh’,’щ’=>’shch’,’ы’=>’y’,’э’=>’e’,’ю’=>’yu’,’я’=>’ya’,’ъ’=>»,’ь’=>»)); Так вот, никогда так не делайте! Потому что […]

Makefile для сборки PHP проектов с использованием Composer, Docker и Git

Наверняка многие слышали, а возможно даже и пользовались командой make в Linux. Чаще всего это выглядит как такая последовательность команд: make && make install && make clean Как правило это нужно для сборки из исходников программ написанных на Си или Си++. Однако, кто сказал, что с помощью Makefile (так называется конфигурационный […]

Как установить Maven

Как установить Maven на Windows? Maven реализован на языке Java, поэтому первым делом нужно установить Java JDK. Как и многие другие Java-программы, Maven не имеет специальной программы для инсталляции, его нужно просто «скачать и распаковать». Скачать с официального сайта, берите самую последнюю версию, на выбор в формате .tar.gz или .zip (если […]