Обновить
128K+

PHP *

Скриптовый язык общего назначения

20,36
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Выбор фреймворка и переход на Laravel в рамках создания собственной СДО (часть 4)

Время на прочтение11 мин
Охват и читатели5.8K

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

Возник вопрос перехода на PHP фреймворк (бэкенд) и библиотеку/фреймворк JS (фронтенд). О переходе на ReactJS в следующей части.

Так как ранее я изобретал велосипед в виде создания собственного фреймворка, то изначально хотел перейти на микрофреймворк SlimPhp 4, который основан на рекомендациях (стандартах) PSR-7 (Request и Response), PSR-15 (Middleware), PSR-11 (Dependency Container/Injection) и т.д. Из коробки фреймворк содержит собственную реализацию указанных стандартов, которые можно заменить на свои или реализации других фреймворков.

Читать далее

Дайджест Joomla за 2-е полугодие 2021

Время на прочтение13 мин
Охват и читатели4.2K

Все главные новости из мира Joomla за лето и осень 2021 года, в одной статье.

Традиционно наш дайджест обозревает новости, расширения, шаблоны и статьи из мира Joomla. Прошлый выпуск вы можете прочитать здесь.

В этом выпуске: главные новости, обзор электронной коммерции, СЕО-продвижение Joomla, статьи о Joomla, материалы для Joomla-разработчиков, обзор расширений и шаблонов, ресурсы русскоязычного Joomla-сообщества.

Читать далее

Уязвимость и баги, стоящие денег клиентам. Разбираем модуль от CS Coding для CMS CS Cart

Время на прочтение8 мин
Охват и читатели3.2K

На написание данной статьи меня вдохновила уязвимость в модуле "Авторизации по телефону", который разрабатывается и поддерживается CS Coding.

Читать далее

Архитектурное тестирование

Время на прочтение4 мин
Охват и читатели10K

О том зачем тестировать архитектуру приложения. Что можно "покрыть" такими тестами. Какие инструменты для этого существуют. А так же о перспективах данного направления.

Читать далее

Меняем стек с PHP на Golang, или Разработка под Kubernetes

Время на прочтение12 мин
Охват и читатели15K

Привет, Хабр!

На связи Паша Емельянов, тимлид в AGIMA. В этой статье расскажу, как на одном из проектов мы переписывали старый функционал, разработанный когда-то на PHP, на Golang, с какими проблемами столкнулись и как их решали. Статья будет интересна и начинающим, и миддлам, а еще системным архитекторам, т. к. здесь затронем как инфраструктурные вопросы, так и вопросы реализации конкретного сервиса под потребности бизнес-заказчика.

Читать далее

Выявление технических методов повышения уникальности текста с помощью PHP (в рамках создания собственной СДО). Часть 3

Время на прочтение8 мин
Охват и читатели2.9K

В процессе своей профессиональной деятельности мне приходится достаточно много работать с текстовыми документами, подготавливаемыми другими лицами. Одной из задач проверки качества документов является определение степени уникальности текста. Конечно, можно проверять каждый документ в сервисе проверки заимствований (к, примеру в «Антиплагиат-ВУЗ», к которому есть официальный безлимитный доступ), а для автоматизации этого процесса можно использовать API. Однако, на этапе предварительной проверки, это немного избыточно.

Цель статьи: показать один из способов реализации автоматического выявления наличия «подозрительных» символов, форматирования и иного вмешательства в документ формата docx.

В рамках разработки СДО, о которой можно прочитать здесь, был создан функционал, позволяющий предварительно проверять загружаемые пользователями документы перед их загрузкой в «Антиплагиат-ВУЗ» (и не только), а также проверки содержания.

Читать далее

Создаём игру на KPHP с помощью FFI и SDL

Время на прочтение16 мин
Охват и читатели7.4K

KPHP теперь поддерживает механизм Foreign Function Interface (FFI). Мы с Владом решили продемонстрировать его возможности и за сутки написали первую в мире графическую игру на KPHP.


Игру делали с использованием библиотеки SDL:


  • работали со звуком,
  • обрабатывали события клавиатуры,
  • рисовали шрифты, спрайты, UI.

API и семантика нашего FFI идентичны PHP. Поэтому созданная игра запустится и на KPHP, и на PHP.


Если вам интересны детали реализации, заглядывайте под кат!


Читать дальше →

Jivosite больше не снизит Google Speed

Время на прочтение4 мин
Охват и читатели6K

Передо мной возникла одна задачка - повысить Google Speed на одном из интернет-ресурсов.

Задачка ещё та, учитывая то, что большинство пунктов выполнена, но при этом просадка капитальная. А всё из-за чего? Куча метрик, яндекс информеры (оцени Я.Маркет, рейтинг Я.Маркет) и... Jivosite.

Читать далее

Часть. 2. Создание аналога Moodle. Реализация API для прототипа SPA. Межсайтовые запросы. Первые проблемы архитектуры

Время на прочтение12 мин
Охват и читатели2.9K

В первой части я рассказал про то, почему я пришел к необходимости создания собственной СДО. Итак, на текущий момент имеем: сайт, работающий на самописном PHP frameworke, отдельные скрипты JS, подключаемые на определённых страницах с соответствующим типом задания (тест, квест). Тип задания и необходимость загрузки скриптов определяется выполнением кода PHP на конкретной странице. JS работает локально (база данных используется только PHP).

Появилась задача взаимодействия JS с базой данных для расширения функционала интерактивных возможностей СДО. Так как ранее я работал с PHP, было принято решение передавать сведения, полученных PHP из базы данных в JS. Для хранения массивов в SQL сначала я использовал сериализацию и base64, но быстро отказался от такого подхода ввиду сложности понимания структуры данных, хранящихся в базе.

Читать далее

Аналог Moodle или как преподаватель-юрист создавал собственную систему дистанционного обучения. Часть 1. Начало

Время на прочтение7 мин
Охват и читатели6.3K

Дисклеймер: система дистанционного обучения (СДО) в настоящее время введена в эксплуатацию (продакшн), апробирована, протестирована и успешно работает. Система бесплатна, имеет открытый исходный код и выложена в репозитории GitHub. С точки зрения стека технологий она построена на фреймворке Laravel 8.0 (PHP 7.4) с использованием библиотек и иных пакетов (программ): React (redux+router), SocketIo, Docker, NodeJs, Rest API, WebRTC, Leaflet и т.д.

В серии статей я расскажу, как устроена система, через что пришлось пройти при ее разработке и какие проблемы пришлось решать.

Читать далее

Подключение и Настройка ElasticSearch + MySql + Yii2

Время на прочтение18 мин
Охват и читатели24K

Если вдруг поиск на вашем проекте начал тормозить, то самое время присмотреться к поисковым движкам.

Сегодня я расскажу как установить и настроить поисковой движок ElasticSearch на сервере под управлением Ubuntu и сделать авто импорт данных из MySql, а также мы настроим взаимодействие Yii с движком ES.

Читать далее

Оптимистическая блокировка коллекций Агрегата при использовании Doctrine

Время на прочтение9 мин
Охват и читатели6.8K

Проектирование своего проекта по DDD последнее время становится всё более популярным. Сейчас не будем углубляться в данную методологию с её принципами, плюсами и минусами. Я хочу рассказать с какой проблемой столкнулась наша команда при использовании данной методологии на PHP, а именно внедрении Data Mapper’а Doctrine ORM.

Чтобы более понятно донести нашу проблему я буду использовать известный всем Агрегат Заказа (Order) и позиции заказа (OrderLine), которые являются коллекциями Dortrine ORM. Так же сильно упростим данный агрегат, чтобы фокусироваться на самой проблеме. И так начинаем!

Для начала мы создадим наш агрегат заказа.

Читать далее

Regex for lazy developers

Время на прочтение9 мин
Охват и читатели25K

Регулярные выражения для ленивых людей?!

Regex – это модуль вашего языка программирования который позволяет работать со сложными и большими строками просто! Давайте разбираться в них вместе. Приятного прочтения ;)

Читать далее

Ближайшие события

Использование PHP для системного администрирования

Время на прочтение9 мин
Охват и читатели8.2K

Практическая значимость PHP для веб-разработки, впечатляет с точки зрения эффективности и универсальности. Большинство системных администраторов этим ограничиваются. Как и язык С#, PHP может быть мощным инструментом для системного администратора, несмотря на то, что PHP является по своей природе языком для веб-разработки.

Самым главным преимуществом PHP для системного администрирования является его кроссплатформенность. В отличие от таких традиционных инструментов, как bash для Linux или bat-файлы и скрипты Visual Basic для Windows, PHP скрипты легко переносятся из одной операционной системы в другую. Все, что необходимо это совместимость с интерпретатором PHP и установка необходимых модулей.

Читать далее

PHP Дайджест № 215 (1 – 15 ноября 2021)

Время на прочтение4 мин
Охват и читатели11K
Картинка: Gabriel Nunes.

Подборка свежих новостей и материалов из мира PHP.
В выпуске: последний релиз кандидат PHP 8.1 перед финальным релизом, бенчмарки PHP 8.1; в PHP 8.2 планируется задепрекейтить динамические свойства — добро или зло?; про перенос багов с bugs.php.net на GitHub; немного обновлен PSR-16.
Также в выпуске полезные статьи, видео и другие новости сообщества.

Приятного чтения!
Читать дальше →

Сравнение php-fpm, nginx-unit и laravel-octane

Время на прочтение12 мин
Охват и читатели30K

Сравнение производительности php-fpm, nginx-unit и laravel-octane - что выбрать для разработки микросервисов.

Читать далее

Tier-1 компании на рынке PHP в РФ

Время на прочтение6 мин
Охват и читатели13K

В компьютерных играх и киберспорте есть такое понятие, как качество предмета или игрока (команды), которое принято называть английским словом Tier (Ярус). И подразумевается, что две вещи (два игрока), имеющие разный Tier будут существенно отличаться в своих характеристиках по шкале (хуже - лучше).

Хотя шкала иногда идет снизу вверх, а иногда сверху вниз. Я буду придерживаться правила, что чем ниже цифра, тем компания является лучше. И мы ведем отчет с 1, ибо в компьютерных играх никто не считает с нуля. 

Понятие Tier-1 компания - подразумевается, что это одна из лучших компаний на рынке, которая по ряду важных характеристик является лучше, чем любая компания уровня Tier-2.

Читать далее

Перевод аудио-сообщений в текст в telegram при помощи Wit

Время на прочтение4 мин
Охват и читатели8K

Я абсолютно уверен что скоро в telegram - перевод аудио-сообщений в текст будет функцией по-умолчанию, ну а пока хотел бы показать простенький пример как реализовать такой функционал в telegram-боте (которых уже сотни, но почему бы не посмотреть как это работает на примере).

Читать далее

Поход выходного дня, митапы в баре и 30 тысяч на блины. Истории городских PHP-чатов

Время на прочтение17 мин
Охват и читатели3.9K

В крупных городах можно найти десятки ИТ-сообществ. Ребята собираются на митапы, делают трансляции, запускают чаты. А кто-то занимается этим много лет. Но зачем? Спросила у организаторов PHP-сообществ из 9 городов. Заодно узнала истории комьюнити, фейлы и советы — с чего начать, если хочешь запустить ИТ-сообщество, и как поддерживать во времена онлайна.

Читать далее

Отправка offline-конверсий в Campaign Manager 360 (DoubleClick)

Время на прочтение4 мин
Охват и читатели1.1K

Была поставлена задача сделать отправку офлайн-конверсий в Google Campaign Manager 360 (далее GCM). Тот что DoubleClick. Думал, что может быть проще, чем дернуть пару методов API от Google. Работа растянулась на 3 недели. Хочу поделиться опытом, вдруг кому пригодится.

Читать далее