Лучшие практики для главного файла плагина

После жаркой дискуссии о том, как должен выглядеть главный файл плагина, внутри твита от Mark Jaquith, я решил написать свой вариант. С большинством пунктов я согласен, но об этом позже. Gonna write a blog post about how to structure WordPress plugins in 2020. Brain-dumped these notes. What else should I cover? pic.twitter.com/zMWkljEzlH — Mark Jaquith …

ПодробнееЛучшие практики для главного файла плагина

Структура твоей психики или кукуха едет не спеша

Периодические срачи в ламповом чате WP Ukraine, натолкнули меня на мысль, что пора немного потратить времени, один раз описать самые популярные беды с башкой, и потом на эти материалы кидать линки, а не просто 100500й раз писать одно и то же самое. На календаре 9й месяц 2020 года, но многие жители постсовка, имеют представление о …

ПодробнееСтруктура твоей психики или кукуха едет не спеша

Состоянии гонки(Race condition) на примере счетчика

Состояние гонки или опасность гонки — это состояние электроники, программного обеспечения или другой системы, в котором основное поведение системы зависит от последовательности или времени других неконтролируемых событий. Это становится ошибкой, когда одно или несколько возможных вариантов поведения нежелательны. Wikipedia Простыми словами, когда мы делаем одновременно несколько запросов и записываем в один источник, будь-то файл или …

ПодробнееСостоянии гонки(Race condition) на примере счетчика

UI тесты для WordPress (Codeception + WP Browser)

UI (E2E, GUI) тесты полностью эмулируют поведение пользователей в браузере. Данные тесты относятся к приемочному(acceptance) виду тестирования. Пишется пошаговый тест, как пользователь должен себя вести в вашем приложении: на какую страницу приложения он зайдет, какую информацию заполнит, какую кнопку нажмет и т.д. Чаще всего такие тесты пишут тестировщики, но иногда и разработчики в зависимости от …

ПодробнееUI тесты для WordPress (Codeception + WP Browser)

Функциональные тесты для WordPress (Codeception + WP Browser)

Функциональные(Приемочные, Acceptance) тесты полностью эмулируют поведение пользователей в браузере. Пишется пошаговый тест, как пользователь должен себя вести в вашем приложении: на какую страницу приложения он зайдет, какую информацию заполнит, какую кнопку нажмет и т.д. Чаще всего такие тесты пишут тестировщики, но иногда и разработчики в зависимости от требований компании. В дальнейшем эти тесты можно и …

ПодробнееФункциональные тесты для WordPress (Codeception + WP Browser)

Объекты передаются по ссылке или нет?

Пятиминутка PHP · Объекты по ссылке или по значению? Часто можно услышать фразу, что в PHP «объекты всегда передаются по ссылке». На самом деле всё немного сложнее. https://www.php.net/manual/ru/language.oop5.references.php Как выглядит работа с ссылками в PHP? Для этого используется специальный синтаксис – перед именем переменной или параметра функции ставится символ амперсанда (&). В том случае, когда …

ПодробнееОбъекты передаются по ссылке или нет?

declare(strict_types=1)

Пятиминутка PHP · declare(strict_types=1) В прошлом выпуске Пятиминутки PHP я рассказал, как обновлял кодовую базу с помощью утилиты Rector. Одно из направлений – простановка типов. Типы в свойствах классов, типы в параметрах функций, типы возвращаемых значений. Но на этом я не остановился. Следующий шаг – проставить declare(strict_types=1)! Весь новый код, который я пишу по умолчанию …

Подробнееdeclare(strict_types=1)

Как преобразовать Telegram канал в RSS поток

Открыл для себя простой способ показать последние записи из Telegram канала на своём сайте под управлением WordPress. Вам не понадобятся навыки программирования, 100500 ботов, регистрация или отправка смс. Всё работает просто и быстро. Берём ссылку: https://rsshub.app/telegram/channel/wordpress_digest И меняем в ней wordpress_digest на ярлык/слаг вашего канала в ТГ. Всё. Для показа данных из этого RSS потока …

ПодробнееКак преобразовать Telegram канал в RSS поток

Rector

Пятиминутка PHP · Rector Rector – это утилита для обновления кодовой базы PHP проекта под современные стандарты. И речь идёт не о PSR-12, а о более интересных преобразованиях, сейчас расскажу! Представьте, что мы хотим добавить больше типизации в код, например, проставить типы возвращаемых из функций значений. Если код написан более-менее прямолинейно и без лишней магии, …

ПодробнееRector

Замена конструкций exit/die в unit-тестах

Если в коде вы используете die/exit то PHPUnit прекратит свою работу в этот момент. Для этого нам нужно заменить конструкцию exit/die. Но это сделать сложно т.к. Functions Mocker с этим не справляется. Пример: class Duck { public function last_words() { die( ‘I’ll be back’ ); } } Меняем класс следующий образом: class Duck { public …

ПодробнееЗамена конструкций exit/die в unit-тестах

Unit tests matter или Roadmap для Unit тестов на WordPress

Теоретические основы тестирования Зачем необходимо тестирование? Какие виды тестирования бывают? Чем юнит-тестирование отличается от других видов тестирования? Кто и как должен тестировать продукт? Библиотеки для тестирования PHPUnit Базовые команды Фикстуры (Fixtures) Бутстрап (bootstrap.php) Утверждения (Asserts) Создания конфигов (phpunit.xml) Code coverage Mockery Стабы/Моки/Шпионы Частичные моки Моки для типов данных Абстрактные классы Hard dependencies Тестирования WordPress: Brain …

ПодробнееUnit tests matter или Roadmap для Unit тестов на WordPress

PhpStorm на macOS Metal

Пятиминутка PHP · PhpStorm на macOS Metal Расскажу про тикет JBR-745 о поддержке Metal в JetBrains Runtime, он же проект Lanai или JEP-382. Станут ли IDE от JetBrains отрисовываться со скоростью 300К FPS? Видео, как я запускаю PhpStorm на Metal: https://youtu.be/T0CShIFwyRw Ссылки по теме: https://youtrack.jetbrains.com/issue/JBR-745 https://en.wikipedia.org/wiki/Metal_(API) https://wiki.openjdk.java.net/display/lanai https://openjdk.java.net/jeps/382 https://www.jetbrains.com/help/idea/switching-boot-jdk.html https://www.infoworld.com/article/3408638/macos-targeted-for-new-java-graphics-pipeline.html Источник: 5minphp.ru  

Как использовать hCaptcha на чистом PHP

Хотите интегрировать hCaptcha на ваш сайт при помощи PHP? Нет ничего проще. Это займёт всего несколько секунд. Содержание Скрыть 1. Шаг 1: Зарегистрируйтесь на hCaptcha.com 2. Шаг 2: Добавьте hCaptcha в шаблон вашего сайта 3. Шаг 3: Проверьте результат на бэкенде 4. FAQ Шаг 1: Зарегистрируйтесь на hCaptcha.com На этом шаге вам понядобится получить «site …

ПодробнееКак использовать hCaptcha на чистом PHP

Ставим правильные ссылки на Viber

Поставить ссылку на Viber на первый взгдяд весьма простая задача. Содержание Скрыть 1. Открыть чат на ПК 2. Добавить абонента на мобильном 3. Ссылка на группу 4. На платформе IOS 4.1. Звонок 4.2. Список чатов 5. На платформе Android 6. Для бот платформы 6.1. Личное сообщение 6.2. Ссылка на информацонный экран 7. Ссылки Но не …

ПодробнееСтавим правильные ссылки на Viber