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

Laravel Livewire — сетевая игра (часть 5)

В этом выпуске обдумаем стратегию аутентификации и поработаем над ссетевой игрой между двумя реальными игроками (раньше играть можно было только против компьютера), добавим режим наблюдателя, потренируемся в отладке с помощью Xdebug и используем функциональность lazy и poll в Livewire. Исходный код проекта: https://github.com/pqr/laravel-livewire-rock-paper-scissors Плейлист со всеми сериями: https://www.youtube.com/playlist?list=PLvP6XNj3GUhB4idkTp1KPBki3-070Ymcq Источник: 5minphp.ru  

Чудо Mockery для заглушек в unit тестах

Потрясающая библиотека Mockery, которая сделает вашу жизнь лучше во время написания тестов. Она помогает создавать быстрее и проще стабы и моки и так же используется в большинстве тестовых фрейморков. И что самое приятное, библиотека очень простая. Его основная цель состоит в том, чтобы предложить тестовую двойную инфраструктуру с лаконичным API, способным четко определять все возможные …

ПодробнееЧудо Mockery для заглушек в unit тестах

Laravel Livewire — SPA & Turbolinks (часть 4)

Продолжаем работу над игрой «Камень, ножницы, бумага». В этом эпизоде добавим игровое лобби, таким образом приложение будет состоять из двух экранов: лобби и непосредсвенно игра. Обработку роутов приложения сделаем с помощью Livewire, такм образом переходы между экранами будут осуществляться в без перезагрузки страницы в стиле Signle Page Application. Также научимся сохранять состояние игры в базу …

ПодробнееLaravel Livewire — SPA & Turbolinks (часть 4)