Как стать автором
Обновить
41.55

PHP *

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

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

Быстрый старт на проекте с Drupal 7 без головной боли: решение проблем и работа без установки зависимостей

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 639
PHP *Drupal *DevOps *
Обзор
Recovery mode

Ускорьте свой старт на проекте с устаревшим Drupal 7:

Быстрый старт без зависимостей и решение проблем. Узнайте, как использовать Drupal 7 dev kit для более эффективной работы в этой старой, но все еще популярной CMS.

Читать
Всего голосов 4: ↑2 и ↓2 0
Комментарии 7

Новости

Оптимизация бэкенда приложения с примерами на Symfony. Часть 1

Время на прочтение 7 мин
Количество просмотров 1.5K
Разработка веб-сайтов *PHP *Symfony *Клиентская оптимизация *SQL *
Из песочницы

Всех приветствую! Я планирую создать цикл статей, демонстрирующий распространенные ошибки, влияющие на производительность приложения со стороны бэкенда, а также методы их поиска и устранения. Для этого, я написал приложение, в котором специально допустил различные ошибки, чтобы по порядку найти и исправить их.

В текущей статье, рассмотрим темы - n+1, пагинация и индексы. Приятного чтения!

Описание приложения

Рассматриваемый проект - это веб-журнал посещений различных мест людьми с возможностью выгрузки и загрузки журнала в формате XML. Пользователь может загрузить журнал посещений в формате XML через форму на странице /upload, и на основе информации из файла будет заполнена база данных. Вся информация о посещениях будет отображаться на главной странице /index. Экспорт из системы осуществляется через команду, которая преобразует информацию из системы в формат XML и выгружает ее в файл (data.xml).

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 3

Работа с размерами изображений с помощью класса Uri в Joomla 4

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 340
CMS *Разработка веб-сайтов *PHP *HTML *Joomla *
Туториал

Парадокс, конечно, но это возможно. Казалось бы, причем тут класс ядра для работы со строками url. Но именно он может помочь нам в Joomla 4. Статья о том, как автоматически определять размеры файлов изображений для атрибутов width и height с помощью ядра Joomla 4 и не грузить сервер.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 1

Сам себе экосистема: Как я адаптировал старый смартфон под современные реалии и написал клиенты нужных мне сервисов

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 10K
Блог компании Timeweb Cloud PHP *Java *Разработка мобильных приложений *Разработка под Android *
Кейс
image


Время неумолимо бежит вперед: выходят новые гаджеты, постепенно заменяя старые, превращая их в тыкву или в лучшем случае, в «тапочек» для звонков. Сейчас смартфоны стали практически одинаковы во всем: дисплей на всю площадь передней панели, почти полное отсутствие аппаратных кнопок, беспроводная зарядка… Это всё, конечно, здорово, но ведь иногда так хочется взять в руки старый, но такой необычный в наше время QWERTY-смартфон и попытаться его использовать как основной, да и цены на них могут приятно удивить: БУ девайс можно купить за несколько сотен рублей (~5-10$). Одна проблема — клиенты приложений на версии Android 1.6-2.0 безбожно устарели и давно не работают. Но иногда желание воскресить старый девайс превыше потребительского качества и тут я пришёл к мысли… а почему бы не написать с нуля свои клиенты популярных приложений? ВК с музыкой, YouTube, трекинг посылок. Так я и сел писать необходимые в повседневной жизни приложения, с нуля, на голом API Android, без каких либо фреймворков (и даже AppCompat). Получилось ли у меня это? Узнаем в статье!
Читать дальше →
Всего голосов 75: ↑74 и ↓1 +73
Комментарии 62

Истории

OpenApiGenerator — или как мы генерируем документацию для 3k сервисов API на PHP без погружения в openapi

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 1.4K
PHP *API *Подготовка технической документации *
Туториал

Вначале мы делали документацию в Word, потом в Google Docs, потом в Confluence, потом была попытка написать openapi-спецификацию для API вручную, но увидев сколько всего там нужно было писать - бросили эту затею.

Нужно было вести документацию в знакомом отрасли формате для растущего (в количестве сервисов) API, и делать это максимально "подручно".

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 3

Учитесь, глупцы

Время на прочтение 7 мин
Количество просмотров 4.8K
Тестирование IT-систем *Системное администрирование *PHP *Разработка под iOS *Искусственный интеллект

Современный мир стремительно меняется и подбрасывает нам всё новые вызовы. Кажется, что ландшафт современного IT изменится кардинально. Не зря же вся мировая AI тусовка написала письмо с просьбой «немедленно приостановить» обучение систем ИИ, «более мощных, чем GPT-4».

Я провел небольшое исследование и спросил всех до кого смог дотянуться следующее:

Я пишу обзорную статью для Хабра об инструментах AI. Интересуют реальные кейсы применения в работе этих инструментов. Если ты использовал\использовала его и есть желание поделится со мной, то прошу это сделать.

Множество людей самых разных профессий поделились своим опытом и экспертизой. Я оставил самые яркие и интересные, надеюсь, вам понравится.

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

Читать далее
Всего голосов 18: ↑11 и ↓7 +4
Комментарии 39

Я пробовал GitHub Copilot, и я в восторге

Время на прочтение 10 мин
Количество просмотров 16K
Блог компании OTUS PHP *
Перевод

GitHub Copilot позиционирует себя как «ваш помощник по написанию кода на базе ИИ». Copilot выводит машинное обучение на совершенно новый уровень — он интегрируется с IDE по вашему выбору (ну, если конечно вы выберете что-нибудь из Jetbrains, VS Code или Neovim) и предоставляет в ваше распоряжение мощную систему AI-driven кода, обученную на миллиардах строк опенсорсных проектов на GitHub на дюжине с лишним языков.

Речь идет не о более умной аналитической версии существующего функционала автодополнения (auto-complete) ваших IDE. Copilot способен на интеллектуальное контекстно-зависимое дополнение всего: от отдельных строчек кода до целых функций как на основе кода, который вы только что написали, так и по комментариям на английском языке, описывающим то, что вы хотите получить.

Читать далее
Всего голосов 14: ↑10 и ↓4 +6
Комментарии 16

Как с помощью AI-интеграций повысить популярность проекта

Время на прочтение 8 мин
Количество просмотров 2.2K
PHP *Python *Обработка изображений *Искусственный интеллект
Из песочницы

Рассказываем о том, как внедряли новомодные AI-инструменты в проект. Как это повлияло на его популярность и что за этим последовало — читайте в статье.

Технические особенности проекта: фреймворк — Laravel, БД — PostgreSQL, кэш/очереди — Redis, архитектура — основной кластер DigitalOcean Kubernetes и графический кластер GKE.

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Комментарии 7

Когда переподключения ускоряют работу по сети. Разбираемся с быстродействием TCP-сокетов

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 7.7K
PHP *C++ *Системное программирование *Сетевые технологии *
Кейс

При написании предыдущей статьи я наткнулся на странный эффект с производительностью TCP-сокетов. При попытке отправить пачку запросов через сокет оказалось, что выгоднее заново устанавливать TCP-соединение после каждого запроса, а не переиспользовать его. Исследованию причин этого эффекта (а заодно и поиску способов от него избавиться) и посвящена эта статья.

Читать далее
Всего голосов 34: ↑30 и ↓4 +26
Комментарии 15

Пишем свой мессенджер на PHP

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 2.5K
Мессенджеры *PHP *JavaScript *HTML *
Туториал
Из песочницы

Пишем свой Мессенджер на PHP через WebSocket. Так и для Начинающих так и далёких от IT людей.

Тут вы узнайте как установить PHP, WebSocket и в чём его различие с AJAX (http) запросами как написать сервер и клиент Мессенджера полностью.

Читать далее
Всего голосов 12: ↑4 и ↓8 -4
Комментарии 11

Делаем донаты для telegram бота, через интеграцию ЮKassa для самозанятых

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 1.8K
PHP *Laravel *Биллинговые системы *Монетизация веб-сервисов *Управление e-commerce *
Туториал

В статье-инструкции расскажу, как начал монетизировать telegram бота, который присылает уведомления о необходимости продлить домен, тем самым делает напоминание, чтобы пользователь продлил домен во время и не потерял его. За 2 часа, добавил кнопку доната и настроил интеграцию с ЮKassa. Через 1 день уже начал принимать донаты.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 7

ЦУЦ — или как свести 15 тысяч товаров от разных поставщиков на коленке

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 1.7K
PHP *XML *Интернет-маркетинг *Поисковая оптимизация *Финансы в IT
Из песочницы

По мере роста бизнеса и расширения ассортимента товаров, компания столкнулась с проблемой остатков товаров и актуальными ценами. Если в начале моей работы, количество товара на сайте было в районе 3 тысяч, то на текущий момент позиций более 15 тысяч. Обновлять руками такое количество позиций нереально. С чего я начал работу по автоматизации цен и с какими трудностями столкнулся читайте в моей публикации.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 8

Как и зачем тестировать код на бэкенде: рекомендации для новичков

Время на прочтение 13 мин
Количество просмотров 7.1K
Блог компании AvitoTech PHP *Тестирование веб-сервисов *

Расскажем, как автоматизировать тесты так, чтобы не тратить на них кучу времени, быстрее находить баги и не повторять их. А ещё поделимся секретом идеального теста. Спойлер: его не существует, но решение есть.

Также разберём базу: виды тестов, их отличия друг от друга, плюсы и минусы. Если вы только начинаете разбираться в тестировании, вам это точно пригодится.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 5

Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 9.7K
Блог компании Конференции Олега Бунина (Онтико) Блог компании Skyeng PHP *Symfony *

Привет! В статье поделюсь, как инструмент автоматического рефакторинга Rector помогает обуздать легаси и автоматизировать обновление PHP проектов и пакетов, чтобы процесс проходил эффективнее и малой кровью. 

Статья написана на основе доклада с PHP Russia 2022.

Читать далее
Всего голосов 54: ↑54 и ↓0 +54
Комментарии 13

Как разминировать свой код на PHP (и не только)?

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 2.9K
Блог компании Конференции Олега Бунина (Онтико) Блог компании Angara Security Информационная безопасность *PHP *

«Мины» в исходном коде — это не только уязвимости, но и прочие дефекты безопасности, которые так или иначе ухудшают качество софта. Какими путями «минируется» ваш код и какие типы «мин» наиболее актуальные? Поговорим об этом в контексте веб-программирования и PHP.

О «минах» в коде расскажет Илья Поляков, руководитель отдела анализа кода Angara Security. Илья поделится какими инструментами разминировать код и какие уязвимости и дефекты безопасности можно найти максимально быстро и дешево.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 4

«Давайте перепишем всё с нуля». Почему такой подход интереснее программистам, а не бизнесу

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 7.5K
PHP *Проектирование и рефакторинг *Управление разработкой *

Привет! Меня зовут Дмитрий Панькин, я основатель компании, которая создает сложные ИТ-продукты для клиентов: сайты маркетплейсов, B2B-порталы, личные кабинеты, приложения, кастомные CRM- и ERP-системы.

Очень частый запрос от наших заказчиков — переписать существующую в их компании ИТ-систему, потому что она устарела. В этом случае есть два пути: написать ее с нуля или модернизировать то, что есть. Обычно программисты советуют выкинуть весь старый код и написать всё по-новому, но это может стать критической ошибкой для бизнеса.

В этой статье я расскажу, почему чаще всего не стоит строить ИТ-систему с нуля и лучше поэтапно модернизировать то, что есть. А также объясню, из-за чего большинство разработчиков будут доказывать вам обратное 😈

Надеюсь, мой гайд поможет менеджерам и руководителям компаний понять, что делать с проектом, который нужно обновить.

Читать далее
Всего голосов 22: ↑16 и ↓6 +10
Комментарии 22

Компилируем быстрые консольные .exe приложения на PHP 8.1 в 2023 году, а почему бы и нет? (upd)

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 4.4K
Блог компании Timeweb Cloud PHP *C++ *Разработка под Windows *
Туториал
С каждым релизом PHP становится всё быстрее, а при включении JIT (Just-In-Time) компиляции, достигает почти отметок того же C.

image

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

Однако времена меняются, и люди начали осознавать свои ошибки, переходя, скажем, на ООП.

Чтобы поностальгировать и продемонстрировать нового Франкенштейна, мы соберем полноценное консольное exe-приложение на PHP.
Читать дальше →
Всего голосов 35: ↑31 и ↓4 +27
Комментарии 16

Статический анализ. PHPStan

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 2.2K
PHP *

Цель статьи - помочь разработчикам которые много слышали про статический анализ, но пока что так и не поняли что это такое и с чем его едят.

Статический анализ

Анализ программного обеспечения, производимый без реального выполнения исследуемых программ, процесс выявления ошибок и недочетов в исходном коде программ. Список языков для которых существуют статические анализаторы кода достаточно велик - Си, Си++, C#, Java, Ada, Fortran, Perl, Ruby и т.д.  Компиляторы различных языков программирования во время своей работы так же запускают статические анализаторы (как правило усеченные версии) которые находят ошибки. Т.о. использование статичского анализа, в поисках ошибок, приравнивает (а может даже и превосходит, все зависит от используемого анализатора и стиле написания приложения) PHP к компилируемым языкам программирования.

Сообщество PHP прикладывает значительные усилия в сторону развития статического анализа, так типы mixed и never были добавлены для лучшего анализа программами статического анализа.

Необходимость статического анализа

Статический анализ позволяет найти уйму различных проблем в коде, начиная от неправильного использования конструкций языка, заканчивая опечатками.  При проведении code review позволяет сосредоточиться на просмотре реализации логики программы, а не на поиске синтаксических ошибок, опечаток, ошибок в данных, мертвый код и т.п.

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 8

DTO в языке PHP: примеры для начинающих

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 6.5K
PHP *
Туториал

DISCLAIMER


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

DTO (Data Transfer Object) — это шаблон проектирования, который используется для передачи данных между слоями приложения. DTO представляет собой объект, который содержит данные, необходимые для выполнения операции или запроса в приложении.
Читать дальше →
Всего голосов 14: ↑5 и ↓9 -4
Комментарии 36

Проектируем реактивное — Message-Driven системы на PHP

Время на прочтение 19 мин
Количество просмотров 2.9K
Блог компании OTUS PHP *Laravel *
Перевод

Цель этой статьи — показать не только зачем, но и как мы можем создавать приложения на PHP, которые будут устойчивыми, масштабируемыми и податливыми для  изменений. Статья концентрируется на разработке  бизнес-ориентированных приложений, в которых можно четко выделить бизнес-логику, процессы и потоки работ (workflows). Это квинтэссенция моего опыта, накопленного за годы работы над бизнес-ориентированным программным обеспечением в целом и в процессе создания фреймворка для обмена сообщениями Ecotone в частности.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 8

Вклад авторов

Работа

PHP программист
145 вакансий