Генератор паролей на JavaScript

Чтобы закрепить пройденный на курсере курс по AngularJS, я переписал свой старый генератор паролей OktoPass заново: переверстал страницу с Bootstrap, избавился от jQuery и переделал сам механизм генерации паролей. Ссылка на сервис: password.axisful.info

Это было занятно, у меня получилось веб-приложение со стильной шёрсткой и адаптивной вёрсткой, а в процессе я написал пару велосипедов для серверного микро-движка и фронтенда, вроде поддержки переводов и работы с URL.

Далее я опишу некоторые ключевые моменты, на которых работает OktoPass.

Подробнее →

Обновление системы онлайн-оплаты курсов для альплагеря Туюк-Су

Обновил модуль, который разрабатывал для alplager.kz: по чертежам Кирилла Белоцерковского (инструктор лагеря и администратор сайта) переделал список программ и форму бронирования, добавил подробный просмотр и ещё больше разных улучшений в бэкенд и под капот системы. Теперь программы красиво выводятся плиткой, по ним есть удобная навигация и возможность сразу забронировать место в лагере на смену, которая понравилась. Кирилл подробно написал об этом на сайте.

В этой статье я опишу интересные моменты в разработке плагина под WordPress, который интегрирован с системой оплаты processing.kz. Плагин (далее — модуль) управляет сменами и заявками на бронирование мест в лагере, рассылает письма, архивирует прошедшие смены и старые заявки, и помогает автоматизировать работу инструкторов лагеря с регистрацией участников и онлайн-оплатой.
В статье будут примеры с разбором URL-тегов, шорткодами и тестированием проекта с PHPUnit.

Подробнее →

WordPress: тестирование плагинов с PHPUnit и WP_UnitTestCase

Uehara Konen, Hatō zu 3

Статья описывает отладку плагинов в тестовом окружении WordPress Testing Framework. Это значит, что в тестах можно будет пользоваться API WordPress, переключать роли пользователей сайта, автоматически создавать категории, посты, тэги, комментарии, вложения и тому подобное.

Последний раз проверено с PHP ^7.2, PHPUnit ^6.5, WordPress 4.9.8

Подробнее →

Установка PHPUnit и Selenium

Настройка тестов

Статья описывает настройку окружения для функциональных тестов на PHP.
Например, такой типичный тест может:

  • Открыть URL http://example.org/mypage в браузере
  • Проверить, что на странице 20 картинок
  • Нажать на вторую ссылку в навигации
  • Проверить, что на новой странице также 20 картинок
  • Закрыть браузер

А также произвести сложные выборки из DOM, вставить в поля формы текст и перейти по истории назад и вперёд.

Подробнее →

PHP: Почему использовать `and` и `or` вместо || и && — плохо

Последнее обновление статьи — 15 декабря 2018

Микрозаметка на тему из области «вопросы на собеседовании».

Как-то я в PHP начал писать and и or вместо && и ||, потому что мне так нравится делать на питоне, и, как я думал, это улучшает читабельность кода. Однажды я столкнулся с неожиданным эффектом:

Подробнее →

Symfony: фильтр связанных полей в формах

Symfony: опция query_builder для форм

Задача: вывести в форме только те связанные объекты OneToOne/OneToMany, которые ещё не были связаны с сущностями данного типа.
Например: при создании нового счёта вывести только те заказы, которые ещё не прикреплены ни к каким счетам (связь один-к-одному: счёт может относиться только к одному заказу). А при редактировании счета выводить все незанятые заказы, плюс тот, к которому счёт уже прикреплён.

Я взял код из рабочего проекта, немного упростил его и переименовал сущности. Подробнее (и понятнее) ниже.

Подробнее →

PHPUnit + Symfony: ошибка Resetting the container is not allowed when a scope is active

Возникает в функциональных тестах PHPUnit с использованием клиента, открывающего указанные URL-адреса.

1) MyBundle\Tests\Controller\ControllerTest::testRoute
Symfony\Component\DependencyInjection\Exception\LogicException: Resetting the container is not allowed when a scope is active.

Подробнее →

Удобная IDE для PHP и Symfony

Пересел с NetBeans на PhpStorm — как будто открыл фотошоп после пеинта. До этого я больше пяти лет работал в NetBeans, а ещё раньше на Eclipse и вообще на целом зоопарке разных редакторов для веб-разработки.

Удобство во всём: быстро работает, великолепное автодополнение: есть плагины для Symfony, WordPress и для всех современных фреймворков. Куча полезных инструментов, вроде простого рефакторинга кода и автогенерации геттеров/сеттеров/конструкторов, тестов PhpUnit, сервисов-контроллеров Symfony и так далее.

Подробнее →

Отладка отправки почты на локальном сервере

Для того, чтобы перехватывать почтовую рассылку с локального веб-сервера, понадобится установить пакет mailcatcher.
MailCatcher — это простой SMTP-сервер, который отображает отправленные на него письма в веб-интерфейсе.

Я настраиваю веб-сервер для PHP, на официальном сайте описана настройка и под другие платформы.

Подробнее →

WordPress: ошибки в NextGEN-галереях

На работающем wordpress-сайте вдруг сломались галереи NextGEN, который стал выдавать вместо нормальной вёрстки ошибку:

Включенный в wp-config.php режим отладки (WP_DEBUG=true) показал стопку уведомлений (ошибки php уровня E_NOTICE) на странице настроек плагина в админке.

Сама форма выглядела сломанной, отсутствовали заголовки разделов и все настройки были сброшены. При попытке заполнить и сохранить поля получал белый экран с ошибкой save() on null.
Подробнее →