Оптимизация скорости загрузки PHP классов через Composer

Разработчики composer продолжают оптимизировать его слабое место — автозугрузчик классов. В статье перевод из документации про три уровня оптимизации для ускорения работы приложения. По умолчанию, загрузчик composer выполняется относительно быстро. Однако, согласно стандартам PSR-4 и PSR-0 необходимо проверять наличие файла в файловой системе перед его использованием. Это немного замедляет работу, […]

Работа с build arguments в docker-compose и Dockerfile

Как только вы сталкиваетесь с разворачиванием одного проекта на несколько окружений, моментально возникает необходимость использовать аргументы для сборки docker-контейнеров. Например, для разработки и тестирования нужно использовать одни лицензионные ключи, а для продакшена — другие. К счастью, сообщество Докера это предусмотрела и существует удобное решение этого вопроса.

Как в PHP composer подменить пакет на свой репозиторий

По сути это продолжение статьи как сделать git fork из github в bitbucket, т.к. одно из другого крайне бессмысленно. Допустим, есть какая-то хорошая публичная библиотека на github, нов ней есть фатальный недостаток, который автор библитеки не хочет, не может и не будет исправлять. При этом архитектура библиотеки такова, что нельзя […]

Как сделать git fork из github в bitbucket

Довольно частая задача — сделать форк какой-либо библиотеки с github и разместить её в приватном репозитории в bitbucket, gitlab или ещё где. Чаще всего это нужно в тех ситуациях, когда нужно самостоятельно внести правки в исходную библиотеку, но по каким-то причинам в основной  публичный репозиторий это попасть не должно. Собственно, […]

Создание консольной команды CLI в Symfony 3.4

В отличии от Laravel, в Symfony создание консольных команд доведено до абсурда. Чтобы создать заготовку команды нужно выполнить: php bin/console generate:command MyBundle command:name Где нужно указать имя бандла в котором будет создана команда и имя команды, по которому она будет вызываться. Если запустить generate:command без аргументов, то в интерактивном режиме будут […]

Как улучшить поиск в интернет магазине с помощью Elasticsearch

Если Вы до сих пор используете MySQL или другую реляционную базу данных для поиска на своем интернет магазине, то Вам определенно стоит прочитать эту статью. В ней я расскажу что такое Elasticsearch и каким образом он может повысить лояльность пользователей и потенциально увеличить продажи. Заинтригованы? Тогда продолжаем. Данная статья не […]

Autoload в Composer

Как реализован автозагрузчик классов в Composer и какие возможности он имеет. Инициализация Composer’a Composer — это менеджер зависимостей для PHP. С помощью этого инструмента вы можете указать все необходимые библиотеки для вашего проекта и он установит их за вас. Рекомендую ознакомиться с отличной документацией, которая доступна здесь. Сперва нам надо инициализировать Composer в […]

Механизм автозагрузки классов в PHP

В данной статье я хочу рассказать как обстоит дело с автозагрузкой классов в PHP, а также о распространенных подходах при реализации автозагрузки. Старый добрый PHP В старом PHP коде обычной практикой было использование функций require, require_once, include, include_once для подгрузки файлов, содержащих необходимые классы, к примеру: <?php   require_once ‘src/User.php’;   […]

Docker установка и настройка

При разработке используется множество технологий. К примеру данный блог использует php(Symfony 2), mongodb, elastic, nginx это основные но также используется nodejs к примеру для минификации css, js. При разработке приходится настраивать все технологии как показано в статье. Но что делать если проектов несколько или они используют разные технологии, например другой проект […]

Как настроить SSL используя Certbot и Let’s Encrypt

Если вы решили настроить HTTPS на ваших серверах, то думаю вам стоит воспользоваться Certbot, т.к. это простой и быстрый способ получения сертификатов. Let’s Encrypt и Certbot Let’s Encrypt — это бесплатный и автоматизированный (с помощью ACME протокола) центр сертификации, а Certbot — один из многих доступных клиентов, который сильно упрощает жизнь.