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

PHP *

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

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

Гайд по деплою web-приложений для новичков. Часть 1. Shared-хостинг

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров8K

В web-разработке процесс деплоя играет важную роль. Это ответственный момент (даже торжественный), когда все усилия, потраченные на написание и тестирование кода, воплощаются в "живое" приложение, доступное пользователям. Ведь для этого приложение и делается, чтобы им кто-то пользовался. Каждый разработчик, независимо от уровня и специализации, регулярно сталкивается с задачей деплоя. Это статья рассчитана на новичков, которые учатся разворачивать приложения на сервере и хотят узнать различные варианты, сравнить их и выбрать подходящий.

В этой статье пошагово разберем самый простой вариант - деплой приложения на хостинг.

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

Новости

Пакет для инвалидации КЭШа на PHP

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.3K

Общественному вниманию представляется пакет на PHP для КЭШирования данных. Поддерживается два режима работы:

Кэширование до наступления события (события изменения)

Кэширование на заданно время (или навсегда) Для оптимизации работы поддерживается работа с группировкой чтения элементов КЭШ-а одного класса.

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

Пример своего транспорта для Symfony Messenger

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров651

В процессе изучения Symfony Messenger мной было создано два самодостаточных примера, демонстрирующих его работу (описаны в отдельных статьях).

В каждом из этих учебных примеров в качестве транспорта сообщений для простоты была выбрана БД SQLite.
Готовой реализации транспорта именно для SQLite я не нашёл и пришлось её использовать через DBAL Doctrine.

И всё бы ничего, но внутренний перфекционист :-) нашёптывал, что использование целой Доктрины лишь для того, чтобы работать с одной-единственной таблицей с очередями сообщений — это явный перебор…

Бороться с затерроризировавшим меня внутренним перфекционистом ;-) я не стал и, решив поглубже разобраться с устройством транспорта сообщений в Symfony Messenger, создал такой транспорт для SQLite сам, с использованием PDO.
А заодно потестировал производительность самопального решения и решения на Doctrine (на HDD и на RAM drive).

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

CVE-2024-4577: Не может быть, PHP опять под атакой

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

Orange Tsai недавно запостил про «Одну из уязвимостей PHP, которая влияет на XAMPP, развернутый с настройками по умолчанию», и нам было интересно рассказать немного об этом. XAMPP - очень популярный способ администраторов и разработчиков развернуть Apache, PHP и множество других инструментов, и любая ошибка, которая может быть RCE в установке этого набора по умолчанию, звучит очень заманчиво.

Где нашлась очередная уязвимость PHP? Читайте далее.

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

Все тесты — это юнит тесты :o

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.8K

Немного веселья на серьезную тему правильного нейминга тестов и 100500 их типов и видов.

Обязательно дочитай до конца, иначе пропустишь невероятно мудрый посыл ;)

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

Использование Temporal для эффективного управления жизненным циклом документов

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров873

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

В этом посте мы рассмотрим, как можно использовать Temporal Workflows для разработки структуры для эффективного управления жизненным циклом документов. Мы сосредоточимся на использовании Temporal для обработки событий workflow, связанных с изменениями документов, не перегружая систему ненужными процессами и ручными шагами. Мы предоставим примеры кода на PHP, но вы можете адаптировать их к любому из поддерживаемых языков Temporal.

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

WordPress Interactivity API: Подробное объяснение

Уровень сложностиСредний
Время на прочтение32 мин
Количество просмотров2K

WordPress Interactivity - это относительно новый API, который позволяет создавать декларативный фронтенд в WordPress нативно. Декларативный? Да, да, он использует тот же принцип, что React и Vue. Только тут под капотом Preact и собственные директивы. И конечно куда же без SSR, который здесь идет из коробки. Звучит интересно? Давайте разбираться вместе.

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

Пример использования Workerman и Symfony Messenger

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.1K

Недавно мной был создан самодостаточный пример совместной работы компонентов Symfony Messenger и Symfony Console, подробно описанный в статье https://habr.com/ru/articles/817425/.

Для демонстрации работы этого примера нужно вручную запустить несколько консолей (терминалов), а потом в каждой вручную запустить Worker.

Мой внутренний перфекционист :-) сильно против этого возражал и говорил «а вот бы все эти консоли-терминалы запускались одной командой, в нужном количестве, сразу с Worker’ами, а если какой Worker упадёт, то заново запускались в нужном количестве».

Возражать своему внутреннему перфекционисту я не стал и создал ещё один пример работы Symfony Messenger, который запускается Worker’ами из PHP фреймворка Workerman. При этом Symfony Console вообще не используется.

Пример: Workerman и Symfony Messenger
Всего голосов 3: ↑3 и ↓0+4
Комментарии4

Путь к DRY валидации в Laravel

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

Как-то услышал один чудак, что можно уменьшить количество дублей при написании правил валидации с помощью великого знания - DRY, и решил он отправиться на поиски...

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

Простой пример использования Symfony Messenger

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3K

Пришёл и мой черёд асинхронно и многопоточно средствами PHP кое-что пообрабатывать… И я, естественно, вспомнил про компонент Messenger фреймворка Symfony.

Ранее я никогда Symfony Messenger не использовал.
Чтобы понять, как с ним работать, я пытался найти какой-то простой, законченный и самодостаточный пример, понятный даже чайнику, но мне это не удалось...

Всё, что находилось, было либо слишком сложным, либо это были какие-то отдельные куски кода, понятные только тем, кто уже работал с Symfony Messenger. К тому же всё, что находилось, в основном было "заточено" либо под Redis, либо под RabbitMQ. установка которых как-то немного перебор для учебного примера…

В-общем, я создал и выложил на GitHub такой простой, законченный и самодостаточный пример работы Symfony Messenger совместно с Symfony Console.

Посмотреть пример работы Symfony Messenger
Всего голосов 8: ↑8 и ↓0+12
Комментарии0

Глубокое погружение в дочерние шаблоны Joomla

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров820

Вы когда-нибудь вносили изменения в файлы шаблонов только для того, чтобы обнаружить, что все, что вы изменили, исчезло при следующем обновлении? Тогда у нас для вас хорошие новости: начиная с Joomla 4.1 эта проблема решена. Благодаря возможности создавать дочерние шаблоны, добавленные в ядро, вы можете вносить изменения, которые сохранятся в системе без риска потери данных. В этой статье объясняется, как это работает.

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

Полезные практики написания поддерживаемого кода на PHP

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.7K

Привет, меня зовут Алексей и я должен признаться, я PHP разработчик. Последние несколько лет плотно занимаюсь проектамиь на symfony и решил поделиться с сообществом практиками, которые стараюсь соблюдать при работе.

Многие из них довольно спорные, для дискуссии добро пожаловать в комментарии.

Читать далее
Всего голосов 13: ↑10 и ↓3+14
Комментарии59

Книга: «Laravel. Полное руководство. 3-е издание»

Время на прочтение19 мин
Количество просмотров5.7K
image Привет, Хаброжители!

Что отличает Laravel от других PHP-фреймворков? Скорость и простота. Стремительная разработка приложений, обширная экосистема и набор инструментов Laravel позволяют быстро создавать сайты и приложения, отличающиеся чистым удобочитаемым кодом. Третье издание, обновленное с учетом Laravel 10, — это практическое руководство по использованию одного из самых популярных на сегодняшний день веб-фреймворков.

Мэтт Стаффер, известный преподаватель и ведущий разработчик, представляет полный обзор фреймворка и конкретные примеры работы с ним. Опытным PHP-разработчикам книга поможет быстро разобраться с темой, чтобы реализовать проект на Laravel. В обновленном руководстве рассматриваются в том числе совершенно новые инструменты аутентификации и разработки пользовательских интерфейсов, а также ряд сторонних инструментов, появившихся после выхода в свет второго издания.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+20
Комментарии1

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

Конференция HR API 2024
Дата14 – 15 июня
Время10:00 – 18:00
Место
Санкт-ПетербургОнлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Лучшие практики Laravel для разработчиков в 2024 году

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров5.8K

Для чистого, тестируемого и масштабируемого кода в фреймворке Laravel стоит применять необходимые практики. Особенно это важно с учетом гибкости PHP, ведь любые отклонения могут привести к усложненному коду, а скорость обнаружения ошибок гораздо снизится. 

Разбираемся, как помогает Laravel, и называем нужные практики для создания приложений.

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

6 главных типов веб-уязвимостей, о которых должен знать каждый бэкендер

Время на прочтение6 мин
Количество просмотров6.4K

Привет, Хабр! На связи Виталий Киреев, руководитель R&D SpaceWeb. Это первая часть статьи про веб-безопасность — здесь я расскажу про главные уязвимости Server Side, покажу примеры и объясню, как защищать данные. 

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

Как я решился писать свою текстовую MMORPG игру с открытым миром и фронтом Telegram в 2024 году

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров291

В одно мгновение мир, который мы знали, рухнул, оставив после себя только воспоминания о былой цивилизации. Теперь, в 2050 году, перед выжившими стоит задача не только сохранить себя, но и восстановить утраченное, шаг за шагом возвращаясь к технологическому прогрессу. Как?

Это история одной текстовой игры написанной программистом любителем с довольно сложными механиками и функционалом...

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

Тестовое задание с Emfy — PHP разработчик

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров16K

Пролог: Большое спасибо рекрутеру компании Emfy за то, что напомнил мне о моей способности быстро разбираться в незнакомых вещах ❤️

Всем привет! Это мой первый пост, и я хотел бы привнести свой вклад в сообщество, обсуждая интересные проекты и задачи с собеседований от руководителей различных компаний.

Начну, пожалуй, с того, что я PHP-разработчик, и мне нравится программировать. К сожалению, я упустил в своё время основные моменты при обучении и порой просто не обращал внимание на то, что мне не нравилось. Только совсем недавно, две недели назад, я начал изучать ООП.

Сегодня я хочу поделиться тестовым заданием, которое мне предоставила компания Emfy. Они занимаются внедрением интеграций, взаимодействуя с amoCRM. Стоит отметить, что я никогда раньше не сталкивался с API amoCRM, из-за чего возникли проблемы с усвоением новой информации по API, так как она обширна.

Читать далее
Всего голосов 21: ↑9 и ↓120
Комментарии12

Чистый код: 10 советов хорошего нейминга

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

В этой статье мы затронем один из самых простых, но в то же время наиболее важных навыков в программировании. Ведь именно грамотное именование кода позволяет говорить о его качестве.

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

Ведь читаемость это фундамент, без которого ничего не получится.

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

ч.16 Сервер для 2D MMO RPG игры (realtime) — MVP готов

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

С 2021 года я начал делать свою MMO игру обнаружив что нет готовых сервисов ни в России, ни за рубежом. Но сделать игру я мечтал со времен «Бойцовского клуба» и текстового «Амулета дракона», вдобавок уже был неплохим программистом.

Так и родилась идея написать свое решение Авторитарного сервера для 2D Mmo RPG игр и, как говорил Илон Маск, «Батут работает».

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

Фреймворк Swoole на PHP для начинающих

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.6K

Swoole — высокопроизводительной асинхронный и многопоточный фреймворк для PHP. Он отличается от традиционной модели PHP-FPM, предлагая асинхронный ввод-вывод и корутины, а также возможность работать с веб-сокетами и различными сетевыми протоколами непосредственно в PHP.

Читать далее
Всего голосов 17: ↑11 и ↓6+9
Комментарии5
1
23 ...