Autoload в Composer

Как реализован автозагрузчик классов в Composer и какие возможности он имеет. Инициализация Composer'a Composer - это менеджер зависимостей для PHP. С помощью этого инструмента вы можете указать все необходимые библиотеки для вашего проекта и он установит их за вас. Рекомендую ознакомиться с отличной документацией, которая доступна здесь. Сперва нам надо инициализировать Composer в нашем демо проекте (в моем случае корневой папкой проекта является ~/projects/demo-autoload-composer), для чего необходимо создать корректный composer.json файл. Это можно сделать с помощью: (далее…)

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

В данной статье я хочу рассказать как обстоит дело с автозагрузкой классов в PHP, а также о распространенных подходах при реализации автозагрузки. Старый добрый PHP В старом PHP коде обычной практикой было использование функций require, require_once, include, include_once для подгрузки файлов, содержащих необходимые классы, к примеру:

  1. <?php
  2.  
  3. require_once 'src/User.php';
  4.  
  5. $user = new User('Victor');
таких require_once в начале файлов скапливалось огромное количество. Плохо ли это? Да. (далее…)

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

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

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

Если вы решили настроить HTTPS на ваших серверах, то думаю вам стоит воспользоваться Certbot, т.к. это простой и быстрый способ получения сертификатов.

Let's Encrypt и Certbot

Let's Encrypt - это бесплатный и автоматизированный (с помощью ACME протокола) центр сертификации, а Certbot - один из многих доступных клиентов, который сильно упрощает жизнь. (далее…)

Nginx: HTTP/2 не работает

Настройка HTTP/2 в Nginx может показаться тривиальной задачей, однако есть ряд потенциальных проблем, с которыми вы можете столкнуться. В данной статье я опишу несколько из тех, с которыми столкнулся лично я при настройке наших серверов.

Настройка HTTP/2 в Nginx

Для включения HTTP/2 в Nginx достаточно добавить пару строк в конфигурацию вашего сервера:
  1. server {
  2. listen 443 ssl http2;
  3. ssl_certificate <ПУТЬ К *.crt ФАЙЛУ>;
  4. ssl_certificate_key <ПУТЬ К *.key ФАЙЛУ>;
  5. #...
  6. }
(далее…)

Как настроить HTTP/2 с Varnish используя Nginx

Все больше и больше компаний начинают использовать HTTP/2 для повышения производительности своих сайтов. Настроить HTTP/2 довольно просто, но что делать, если в вашей инфраструктуре есть Varnish. Т.к. Varnish 4.* не поддерживает SSL, то нам прийдется найти способ заставить все необходимые компоненты работать друг с другом. (далее…)

Автоматизация исправлений ошибок оформления кода с помощью Git и PHP Coding Standards Fixer

Все мы знаем про стандарты оформления кода в PHP сообществе и пытаемся им следовать. Несмотря на это, мы все люди и допускаем ошибки. Это значит, что у нас есть несколько вариантов решения данной проблемы: 1) Править все ошибки стиля вручную. 2) Использовать плагины для IDE или другие инструменты для запуска в терминале. Эти два варианта не те, которые я хотел бы использовать. На самом деле есть еще один вариант - все автоматизировать. Я буду использовать Git и PHP CS Fixer, но несмотря на это принципы очень просты и вы легко сможете применить их к вашему языку программирования и системе контроля версий. Продолжайте читать, чтобы избавиться от рутины и стать более продуктивным разработчиком. (далее…)

Высокоуровневая архитектура платежных систем

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

3 странных факта о PHP, которых вы можете и не знать

Не для кого из веб-разработчиков не секрет, что PHP является простым, гибким и не требовательным языком. Но при работе с этим языком можно столкнуться с неожиданными вещами. В этой статье я представлю «странные факты» и объясню, почему PHP дает такие результаты. (далее…)

Тестируйте шаг за шагом

Я постоянно натыкаюсь на посты в блогах или интересные презентации, которые дают мне пищу для размышлений. В последнее время изо всех сил пытался придумать стратегию, чтобы помочь разработчикам понять, когда им следует приступать к написанию тестов для своих программ. Если вы верите в силу разработки через тестирование (Test-Driven Development, TDD), тогда ответ будет следующим. Вы начинаете писать тесты сразу после старта работы над проектом и так до конца, шаг за шагом. Я верю, что TDD может быть очень мощным средством разработки для создания модулей или компонентов. (далее…)


Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть