Если вы владелец сайта и думаете, что на нём нет ошибок, то вы ошибаетесь. Если вы программист и думаете, что некоторые ошибки можно не обрабатывать, то вы тоже ошибаетесь. В обоих случаях речь идёт о Енотисах (E_NOTICE). Далее вы узнаете, почему им нужно уделять внимание и как сделать удобный инструмент для хранения и обработки ошибок.
PHP *
Скриптовый язык общего назначения
Новости
Асинхронность, конкурентность, параллельность, многопоточность — разбираемся «по понятиям» :)
Эта статья представляет собой краткий (шутка!) конспект одноименного (почти) вебинара, недавно проведенного автором.
Цель и вебинара и статьи - дать начинающим представление о тех понятиях, которые вынесены в заголовок, чтобы помочь из избежать повсеместной путаницы, сопровождающей эти темы.
Ну и немного раскрыть глаза на то, что, оказывается в PHP есть и асинхронность, и многопоточность, и в общем-то не нужно ждать мифической версии PHP 10, чтобы начать их использовать уже прямо сейчас!
Уменьшение трафика за счёт сжатия изображений. На примере Laravel
Как уменьшить трафик к вашему сайту в 200 раз? Возможно ли это?
В этой статье рассмотрено динамическое создание превьюшек для графических файлов и последующее сохранение результатов такого преобразования для последующего более быстрого доступа к ним.
Пример реализации на Laravel, его плюсы, минусы и возможные пути развития.
Тестирование в 1C Bitrix
Говоря о разработке сайтов с использованием CMS 1C Bitrix вопрос покрытия тестами поднимается редко. Главная причина в том, что большинство проектов обходится штатным функционалом, который предоставляется системой - его сложно (да и, в общем-то, незачем) тестировать.
Но со временем проект разрастается, появляется необходимость интеграции со сторонними сервисами и службами (платежные системы, API служб доставки и другие), либо же разрабатывается все более и более специализированный функционал. И чем дальше, тем больше объем кода, контроль за которым лежит уже на разработчике.
Это и является предпосылкой для внедрения в CMS механизма тестирования.
Надежный способ сокрытия ссылок сайта от поисковых роботов
В статье наглядно показано, каким образом скрыть внешнюю ссылку сайта от поисковых систем без вреда для ссылочной массы. Также Вы сможете облегчить этот процесс с применением php, если у Вас имеется много подобных ссылок.
Как мы перевели операторов на единую платформу и стали закрывать по 240 тысяч задач в месяц
Так масштабировался сервис с марта 2020. Каждый цвет — группа операторов.
В Skyeng есть несколько отделов, которые сопровождают учеников. Например, отделы, отвечающие за входящую телефонную линию и техподдержку в чате на сайте. Есть группа Awake, работающая с учениками, которые брали перерыв в обучении. Есть группа Quality Control — она проверяет кейсы качества: например, что-то случилось на уроке и ученик оставил жалобу.
Путь обработки задачи для групп операторов одинаковый: взять задачу, выполнить, закрыть. Интерфейс взятия новой задачи идентичен: одна кнопка и большая автоматизация под капотом.
Но так было не всегда. Расскажу, как мы прошли путь от «завязанности» на ручном перетаскивании карточек задач и ручном выставлении приоритетов до единого сервиса, который экономит ресурсы операторов и разработки.
О жизни с внешними сервисами
Для работы с обращениями мы использовали такие системы как Usedesk, Omnidesk и Google Sheets. Это накладывало ограничения:
- Операторам и менеджерам приходилось вручную создавать задачи. Такая рутина забирала много времени. Ошибиться проще простого.
SingleA: доменный SSO своими руками
SingleA — это набор Symfony бандлов, которые позволяют развернуть свой PHP’шный SSO, реализующий фреймворк SingleAuth. Тот, в свою очередь, позволяет пользователям веб-приложений, живущих на общем домене (2 уровня и выше) перестать повторно ходить на SSO после того, как они один раз уже залогинились (даже ради простого редиректа).
Всё это призвано кардинально изменить подход к разработке проектов на базе SOA и микросервисов, упростив получение пользовательских данных на стороне приложений без утомительных интеграций.
От микросервисов к монолиту — маршрут построен
Привет, Хабр! Меня зовут Артём Шубский, я техлид в компании AGIMA. Заметили, что на Хабре и на конференциях часто рассказывают, как перешли с монолита на микросервисы. Мы тоже всем сердцем любим микросервисы, но в этой статье я расскажу об обратном примере: как и почему на одном из проектов шли от микросервисов к монолиту. Это поучительная история о том, почему не страшно поменять архитектуру, даже когда кажется, что поздно.
Totum — open source, self hosted база данных для непрограммистов
Инструмент для цифровизации бизнеса в момент, когда он вырос из XLS-таблиц
Универсальный UI, логика на основе простых кодов, автоматические действия, права доступа, логирование, API и куча всего остального 👍
На вашем сервере, легко изучаемая и масштабируемая вместе с ростом бизнеса 🎉
Вместо целой команды проект могут вести 1-2 специалиста ✌️
Минимальные требования к стартовой квалификации специалиста — вы можете научить разрабатывать на Totum вашего сисадмина, тестировщика, продакта, проджекта, инженера, юриста или финансиста. Или научиться сами.
Лицензия: MIT (бесплатно)
Распределенные Workflow на PHP. Часть 1
Мы занимаемся разработкой огромного количества сложного ПО для автоматизации и энтерпрайза и Workflow для нас — это большая и больная проблема. Если для вас тоже — я расскажу, как писать и оркестрировать очень сложные процессы на масштабах, и как убедиться, что они не падают. А также как делать таймеры на 30 дней внутри процессов. И самое главное, как всё это пилить на PHP.
Меня зовут Антон Титов. Я более 17 лет занимаюсь коммерческой разработкой. Являюсь соавтором Spiral Framework, RoadRunner и Cycle ORM. Основной стек: PHP и Golang. Разговор пойдет про нашу разработку Temporal PHP SDK, которая и помогает решать все вышеперечисленные сложные задачи.
Настройка Xdebug 3 на внешнем сервере в Docker-контейнере через SSH-туннель
В нашей организации используется такой подход к разработке - на локальной машине (Windows 11) установлен PhpStorm и находится репозиторий с кодом. В PhpStorm настроена автоматическая выгрузка изменений на dev-стенд (внешний сервер), где и исполняется код. На dev-стенде: Ubuntu 20 и Docker (swarm mode).
Общий принцип настройки Xdebug таков:
Простая аутентификация на PHP
Многие новички до сих пор попадают в тупик при написании простейшей аутентификации в PHP. На Тостере с завидной регулярностью попадаются вопросы о том, как сравнить сохраненный пароль с паролем полученным из формы логина. Здесь будет краткая статья-туториал на эту тему.
Disclaimer: статья рассчитана на совершенных новичков. Умудрённые опытом разработчики ничего нового здесь не найдут, но могут указать на возможные недочёты =).
Как ускорить работу на macos в Docker окружении с помощью Mutagen
Если вы работали на macos в docker окружении, то наверняка сталкивались с проблемой в производительности, например, при работе над php проектом, операции с файловой системой (обновление пакетов composer, ребилд контейнеров symfony, etc.) занимают просто неадекватное количество времени. Об особенностях работы docker'а на macos написано уже множество статей, а также workaround'ов как заставить его работать быстрее. В этой небольшой статье покажу как в решении этой проблемы Mutagen помог мне с php проектом и быть может поможет вам.
Функциональные тесты на проекте: жизнь до и после (на примерах)
Наша команда отвечает в Skyeng за личный кабинет и CJM пользователя до оплаты. Изначально проект был написан на Symfony 4.4 и представлял собой набор слабо связанных компонентов, которые были ответственны за правила работы для фронтенда.
Например, можно было получить или сохранить данные из базы и построить правильный редирект в зависимости от состояния пользователя при входе на главную страницу. Состояние определяется действиями студента: только что зарегистрировался, записался на вводный урок, оплатил занятия и так далее.
У нас были лишь юнит-тесты: каждый покрывал логику одного класса. Все тесты вместе давали покрытие основной логики кода и гарантию, что все работает правильно. Но 100% покрытие кода тесты не обеспечивали. И сейчас не обеспечивают.
Код был сравнительно простой, простые были и тесты. В то время мы еще полностью не управляли CJM пользователя. Но когда это понадобилось, существовавших юнит-тестов оказалось недостаточно.
И мы обратились к функциональным.
Как ускорить выборку в 1с Битрикс в 20 раз
Как ускорить 1С БИТРИКС и снизить кол-во запросов к БД используя ядро D7.
Пример выборки элементов IBlock с пользовательскими свойствами в один запрос.
PHP Дайджест № 222/3 (26 марта – 25 апреля 2022)
Дисклеймер: Нет, это не дайджест авторства Романа Пронского. К сожалению, у меня нет достоверной информации - будет ли выходить его дайджест далее.
Однако я взял на себя смелость временно продолжить дело Романа и написать новый дайджест за тот месяц, что прошел с выхода последнего.
Если Роман сможет и захочет далее продолжать свой дайджест - он сам решит, как использовать мой текст: взять в свой проект, как его часть или нет. На всякий случай я ставлю нумерацию дайджеста через дробь. Однако не претендуя при этом на продолжение оригинального проекта.
Сравнение сервисов фильтрации нецензурной лексики
Недавно понадобилось мне подключить мой проект (сайт на WordPress, Телеграм-канал, ВК группу) к фильтру матов и озадачился я предложениями, которые выдает интернет. Поэтому решил проанализировать те, что смог найти и составить личный список, который, надеюсь поможет коммунити Хабра.
Новости Yii 2022, выпуск 1
Всем привет!
Мы думали, что 2021 был тяжёлым годом из-за COVID. Текущий 2022 очень неприятно удивил.
Начался он с потери важного члена сообщества и отличного человека, Юлии "Insolita". Продолжился тем, что Россия начала полновесную военную операцию в Украине.
Что же мы имеем на данный момент?
Как мы 40% RAM освободили
О том, как мы столкнулись с огромными проблемами легаси сервиса фильтрации каталога и срочно начали думать, как это исправить переписать. О том, что у нас вышло с помощью redis, rabbit, bitrix - в статье.
Не сажайте сотрудника для медиамониторингов вручную
Я покажу, как можно решить проблему несложным скриптом на PHP автоматизировать составление отчетов о публикациях в интернете и перепечатках оригинальных статей. Этот опыт может пригодиться в реализации многих задач, связанных с парсингом выдачи поисковика.
Вклад авторов
-
pronskiy 10649.4 -
SamDark 1439.8 -
AloneCoder 987.8 -
youROCK 823.0 -
AntonShevchuk 815.0 -
spasibo_kep 731.0 -
AlexLeonov 590.0 -
zapimir 559.0 -
alexzfort 558.0 -
olegbunin 557.0