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

PHP *

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

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

Неортодоксальный Eloquent. Часть 1

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

Eloquent - это мощный и умный инструмент, нравящийся многим своими возможностями. Он позволяет с лёгкостью выполнять операции с базами данных, сохраняя при этом простоту использования. Реализуя паттерн Active Record (AR), описанный Фаулером в книге "PoEAA", является одним из лучших реализаций на сегодняшний день.

В этой статье я хотел бы рассказать о нескольких советах и рекомендациях, о которых узнал экспериментальным путём. Например, Вы когда-нибудь задумывались о том, чтобы тем или иным образом разделить жадные загрузки? Нет? Тогда, я уверен, Вы узнаете как минимум что-то новое, так что обязательно дочитайте до конца!

Как и все существующие инструменты, у Eloquent имеются свои нюансы. Как ответственные разработчики, мы всегда должны помнить о том, на что соглашаемся. Если Вы хотите узнать больше об AR и философии её разработки, очень рекомендую статью Шона МакКула.

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

Новости

Advanced Custom Fields: Полное руководство

Уровень сложности Простой
Время на прочтение 21 мин
Количество просмотров 1.1K
Обзор
Перевод

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

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

Подключение Twig шаблонов в WordPress: Как избежать конфликтов

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 468
Туториал
Перевод

Twig доступен в виде Composer пакета, но WordPress не имеет встроенного менеджера зависимостей. Его прямое использование может привести к проблемам; узнайте, как безопасно интегрировать его.

Читать далее
Рейтинг 0
Комментарии 0

Как я использую WordPress для создания Телеграм-ботов

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

Не мало людей удивятся «А что так можно было?». Да – хорошие боты можно писать на PHP. Да – WordPress хорошо подходит в качестве фреймворка. Далее поделюсь своим опытом. Речь пойдет о веб-хуках из Телеграм.

Погодите хейтить за нагрузку и тяжесть.

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

Истории

Вы вообще нормальн… нормализованный??

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 3.7K
Ретроспектива

Сказ о том, нормализация данных завела производительность many-to-many в postgres в тупик, как это зло было повержено, и как тут нам помог Clickhouse.

Порой бывают ситуации, когда стоит посмотреть на задачу будто с нуля и отбросить предыдущий опыт и best practices. Подумать на несколько шагов вперёд. И лучше до того, когда уже вышли из SLA или нахватали негатива от клиентов или бизнеса. Об одной такой задаче и стандартном решении, которое пришлось больно редизайнить, хочется и поделиться с сообществом в этой статье.

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

Первый взгляд на MoonShine

Время на прочтение 3 мин
Количество просмотров 2.5K
Обзор

Меня зовут Данил Щуцкий, я автор проекта CutCode. В этой статье я хотел рассказать вам о MoonShine — панели для администрирования для ваших проектов на Laravel.

Над MoonShine я работаю с участниками комьюнити CutCode. Это open‑source проект, основная задача которого — сделать админ‑панель максимально простую (для начинающих разработчиков) и в тоже время функциональную и кастомизируемую (для опытных).

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

В качестве стека был выбран TAL (Tailwindcss, Alpine.js, Laravel), на мой взгляд и функционально и перспективно.

На момент написания статьи актуальная версия MoonShine 1.62. Для работы MoonShine необходимо:

php >= 8.0

laravel >= 9.0

Для комфортного применения MoonShine написана документация, а также снят подробный видеогайд.

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

PHP и Laravel дайджест новостей за август 2023 года

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

Текстовая версия дайджеста новостей PHP и Laravel за август 2023 от Сергея Пантелеева и Данила Щуцкого

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

Организация кода в Laravel. Личный опыт

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

Hola Amigos! На связи Евгений Шмулевский, PHP-разработчик в Amiga. Начал заниматься программированием с 2001 года, привет Basic и Express/Turbo Pascal. Веб-разработкой — с 2011 года, а профессионально в вебе с 2013 года. Работал продолжительное время с Битрикс, а с 2018 начал осваивать Laravel. 

Читать далее
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 23

Интернет из PHP

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 13K
Аналитика
Перевод

PHP большой. Тролли могут заявлять о его почти уверенной «смерти» до тех пор, пока рак на горе не свистнет, но факт в том, что в Интернет работает на PHP. Доказательства ошеломляющие. Далее следует слабо организованная коллекция именно этих доказательств.

Каковы ваши доказательства?
Всего голосов 38: ↑31 и ↓7 +24
Комментарии 64

Технология передачи данных в секретный контур

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

Что такое секретный контур?

Это компьютер, который отделён от сети через "диод" (устройство однонаправленной передачи данных). Из него ничего не может выходить, а входить может только по одному каналу, с одного разрешённого IP, по определённым, строго перечисленным портам.
Разрешённым является IP диода, который связан с секретным контуром отдельной сетью, поднятой для этой пары серверов.

Зачем он такой нужен? Для чего делают секретный контур?

Обычно, это копия рабочей среды, на которую, помимо общего, помещают также секретные данные, работа с которыми строго отслеживается протоколами и специальными процедурами. За добавление и изменение секретных данных отвечают отдельные люди. Секретные данные ни при каких обстоятельствах не должны покидать компьютер, кроме как в обработанном виде и на бумажном носителе. Опять же с соблюдением всех процедур.

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

Пользовательские (кастомные) уровни доступа к функционалу на примере CMS Bitrix

Время на прочтение 9 мин
Количество просмотров 1.2K
Туториал

Привет, Хабр! Меня зовут Макс Баюров, я PHP-разработчик в компании AGIMA. Мне хотелось бы поделиться с вами опытом расширения уровней доступа к функционалу сайта. Если вам еще не приходилось с этим сталкиваться или этот процесс вызывает трудности, сейчас всё расскажу.

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

Уменьшаем количество багов в коде расширяя возможности статического PHP анализатора Psalm

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

Не буду вам рассказывать о всех прелестях использования статических анализаторов, на мой взгляд это очевидно. А я расскажу о том как можно расширить их функциональность под ваши нужды, на примере Psalm.
Поделюсь трудностями с которыми я столкнулся, что бы вы не наступали на те же грабли что и я.

А в конце интересный опрос про использование статических анализаторов.

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

Использование конечных автоматов с несколькими активными состояниями для автоматизации бизнес-процессов

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

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

Бизнес процессы, описывающие производственную деятельность принято представлять в формате BPMN, а системы, автоматизирующие бизнес-процессы, часто создают с использованием ИТ-платформ типа Camunda. Camunda выступает в роли BPMN-движка.

Camunda довольно специфический продукт, требующий привлечения специалистов соответствующей квалификации. Можно предложить подход к автоматизации бизнес-процессов, не требующий специальной подготовки аналитиков и разработчиков.

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

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

Yandex Scale
Дата 25 – 26 сентября
Время 17:00 – 18:00
Место Москва Онлайн
Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Business&IT Day: Retail CPG
Дата 28 сентября
Время 09:50 – 14:00
Место Онлайн
XIX конференция разработчиков свободных программ «Базальт СПО»
Дата 29 сентября – 1 октября
Время 10:00 – 19:00
Место Переславль-Залесский Онлайн
Kokoc Hackathon
Дата 29 сентября – 1 октября
Время 19:00 – 21:00
Место Онлайн
Ruby Russia 2023 Online
Дата 30 сентября
Время 11:00 – 21:00
Место Онлайн
PG Boot Camp Russia 2023
Дата 5 октября
Время 10:00 – 17:00
Место Москва Онлайн
Joker
Дата 9 – 14 октября
Время 16:00 – 19:30
Место Санкт-Петербург Онлайн
Russia Risk Conference 2023 — 19-я конференция по риск-менеджменту
Дата 25 – 26 октября
Время 10:00 – 19:00
Место Москва Онлайн

PHPize.online: ещё одна онлайн площадка для работы с PHP с шахматами и библиотекаршами. (SQL и ChatGPT)

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

История началась чуть больше двух лет назад. В силу обстоятельств я на две недели остался заперт дома и проводил большую часть времения в компании ноутбука. Чтобы отвлечься рефрешил странички StackOverflow и Тостера в поиске интересных вопросов где бы пригодились мои знания. Ккак знают завсегдатаи этих сайтов у вопрошающих требуют "покажи свой код" да и при ответе считается хорошим тоном публикация работающего ответа. В случае PHP или SQL все просто вот https://dbfiddle.uk вот https://onlinephp.io все просто и понятно - написал код лил запрос опубликовал ссылку и готово.

Оказалась что есть большая категория на стыке PHP и MySQL. Как быть хотелось бы и в этом случае опубликовать ссылку на то и другое и желательно на одном сайте. Вечер был убит на поиски достойного кандидата - безрезультатно.

Следующий день - все по написанному:
- Отрицание - не может быть что никто такого еще не сделал
- Гнев, Торг, Депрессия - пропущу
- Принятие - похоже придется делать самому

Планирование:
- фронт: тяп ляп HTML/CSS пару строк Javascript, даже JQuery не понадобился :)

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

PHP Fibers: практический пример

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

В PHP 8.1 Fibers появился как новая функция языка. Я часто вижу, что многие люди называют fibers (волокна) threads (потоками), что неверно и, я думаю, дает некоторым людям представление о том, что PHP теперь каким-то образом стал многопоточным. Возможно люди имеют неправильное представление о том, что такое fibers (и, возможно, что такое асинхронное программирование), и я надеюсь, что смогу помочь исправить ситуацию, предоставив практический пример того, как их можно использовать.

Читать далее
Всего голосов 30: ↑28 и ↓2 +26
Комментарии 13

Как мы планировали повысить версию PHP за месяц, а потратили на это год

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

Как и множество больших сервисов, Яндекс Еда основана на микросервисной архитектуре. В общей сложности у нас чуть больше 200 микросервисов. Но есть один сервис, который совсем не микро – легаси-монолит.

Он написан на PHP 7.2 разработчиками разного уровня и в разное время. Мы подумали, что так больше нельзя, и решили навести порядок. В ходе разбирательств выяснилось, что версия языка, на котором всё написано, устарела и уже не поддерживается, что ведёт к рискам безопасности. Делать нечего — мы приняли решение обновиться до 8-й версии.

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

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

«Успейте за 5 месяцев создать систему онлайн обучения», — говорили они, «Успеем к 1 сентября», — сказали мы

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 2.2K
Ретроспектива

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

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

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

EasyAdmin и Mercure: реальный юзкейс

Время на прочтение 8 мин
Количество просмотров 1.6K
Перевод

EasyAdmin — один из самых популярных генераторов административных панелей, доступных для Symfony-приложений. Поскольку для аутентификации пользователей он использует стандартный компонент безопасности Symfony, он позволяет входить в систему и изменять данные множеству пользователей одновременно. Но есть одна проблема…

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

Symfony Json RPC API Bundle — простое API со всем необходимым

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

Как легко и быстро развернуть API на фреймворке Symfony с уже встроенной валидацией и авторизацией по токену?

Можно воспользоваться бандлом для Symfony 6+

Посмотреть на packagist

Посмотреть на gitflick

Читать далее
Рейтинг 0
Комментарии 11

Как мы поднимаем dev-стэнд(ы) и гоняем полноценные тесты api на каждый коммит

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

Мы в API отказались от большого количества unit-тестов в пользу большого количества интеграционных/системных, чтобы тестировать меньшим количеством кода большее количество функций, а также наблюдать за взаимодействием разных частей системы.

На самом деле мы просто решили писать тесты не на отдельные классы/методы, а на интерфейс api, которым пользуются клиенты - на сервисы этого API. Тестируя их, мы убиваем двух зайцев: проверяем логику работы сервисов api + форматирование результата.

А такое тестирование сопряжено с несколькими проблемами.

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

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

Работа

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