Довольно часть встречается задача: взять два файла или строки, сравнить их построчно и отобразить разницу. И конечно же это можно решить стандартными средствами PHP! Для PHP создано расширение xdiff, которое позволяет создавать и накатывать патч-файлы, содержащие различия между различными версиями файлов или документов. В основе этого расширения лежит библиотека libxdiff.
Рубрика: Трудовыебудни
Как в PHP определить путь к классу по его неймспейсу?
Достаточно нетривиальная задача: как в рантайме определить путь к файлу с классом? Может пригодиться при работе со всяким легаси-кодом, чтобы проверить, например, актуальность файла. Делается это элементарно: $reflector = new \ReflectionClass(Constants::class); $filename = $reflector->getFileName(); Наслаждайтесь!
Как на 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 (так называется конфигурационный […]
Как создать свой собственный генератор для Swagger Codegen
Swagger Codegen это проект с открытым исходным кодом, с помощью которого можно генерировать клиентские и серверные библиотеки на основе swagger-файлов. По сути разработчик один единственный раз описывает спецификацию своего (или даже чужого) API и одной командой генерирует серверный и клиентский код для любого поддерживаемого языка, экономя человеко-месяцы на разработку.
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
Что делать, если, например, при сборке Java-проекта с помощью Maven вылеза подобная ошибка: [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
Стоит ли читать бумажные книги о программировании в 2018 году?
Стоит ли вообще покупать и читать книги о программировании в 2018 году, ведь всё можно найти в интернете. Это правда, в интернете можно найти ответы на большинство вопросов. Однако, информация в интернете может появляться не своевременно по той причине, что зачастую она основана как раз на материалах из книг. Т.е. […]
Аналог функции file_put_contents в go lang
Нельзя просто так взять и записать текст в файл на языке Go Lang. Для этого нужно произвести достаточно большую последовательность действий, которые так и просятся быть вынесенными в отдельную функцию:
Как в Go Lang объявить мультилайн строку
Так случилось, что в Go Land не всё можно делать по аналогии с другими языками программирования. Например, нельзя просто так взять и объявить переменную типа string на нескольких строках кода таким образом: text := «123 456 678» Такой код просто не скомпилируется, а вы получите ошибку: newline in string syntax […]