Орбита: self-hosted блог с подписками
https://habr.com/ru/articles/813403/
https://habr.com/ru/articles/813403/
Хабр
Орбита: self-hosted блог с подписками
Привет, Хабр! Хочу поделиться своим личным проектом (pet-project) для публикации контента с возможностью монетизации. Да-да, что-то вроде личного Boosty , Patreon или даже OnlyFans . Главное отличие...
❓Как разобраться в сложных логических операциях в PHP?
Многие разработчики считают, что логические операции — это настолько примитивные вещи, что в них можно полностью разобраться за 5 минут. Так ли это на самом деле? Узнайте на открытом практическом уроке от OTUS, где мы обсудим:
1. какое отношение к программированию имеют классические задачи про рыцарей и лжецов;
2. за счёт каких полезных приёмов можно упростить свой код;
3. как с помощью новых знаний «щёлкать» алгоритмические задачи на PHP.
Спикер Дмитрий Кириллов — соучредитель и технический директор 1С-Старт, опытный разработчик.
Встречаемся 14 мая в 20:00 мск в рамках курса «PHP Developer. Professional». Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!
👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://otus.pw/Xcfd/?erid=LjN8KaxH2
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Многие разработчики считают, что логические операции — это настолько примитивные вещи, что в них можно полностью разобраться за 5 минут. Так ли это на самом деле? Узнайте на открытом практическом уроке от OTUS, где мы обсудим:
1. какое отношение к программированию имеют классические задачи про рыцарей и лжецов;
2. за счёт каких полезных приёмов можно упростить свой код;
3. как с помощью новых знаний «щёлкать» алгоритмические задачи на PHP.
Спикер Дмитрий Кириллов — соучредитель и технический директор 1С-Старт, опытный разработчик.
Встречаемся 14 мая в 20:00 мск в рамках курса «PHP Developer. Professional». Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!
👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://otus.pw/Xcfd/?erid=LjN8KaxH2
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
TypeLang Parser
Полезный инструмент для анализа и проверки синтаксиса и преобразования его в AST ноды.
https://github.com/php-type-language/parser
Полезный инструмент для анализа и проверки синтаксиса и преобразования его в AST ноды.
https://github.com/php-type-language/parser
GitHub
GitHub - php-type-language/parser: Library for parsing and validating TypeLang syntax and converting it into AST nodes
Library for parsing and validating TypeLang syntax and converting it into AST nodes - php-type-language/parser
Это самая совершенная модель из всех, намного превосходящая своих предшественников, включая таинственный gpt2-chatbot.
Она появится уже сегодня в виде приложения для пк.
GPT-4 Omni будет понимать эмоции и тон голоса.
https://habr.com/ru/articles/814037/
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Фреймворк Swoole на PHP для начинающих
https://habr.com/ru/companies/otus/articles/812857/
https://habr.com/ru/companies/otus/articles/812857/
Хабр
Фреймворк Swoole на PHP для начинающих
Привет, Хабр! Swoole — высокопроизводительной асинхронный и многопоточный фреймворк для PHP. Он отличается от традиционной модели PHP-FPM, предлагая асинхронный ввод-вывод и корутины, а также...
Создаём плагин авторизации в Joomla 5 по e-mail
https://habr.com/ru/articles/809079/
https://habr.com/ru/articles/809079/
Хабр
Создаём плагин авторизации в Joomla 5 по e-mail
Joomla 5 позволяет пользователям входить в систему только под именем пользователя. Однако многие пользователи для удобства предпочитают входить в систему, используя свой адрес электронной почты. В...
Тестовое задание с Emfy — PHP разработчик
https://habr.com/ru/articles/814377/
https://habr.com/ru/articles/814377/
Хабр
Тестовое задание с Emfy — PHP разработчик
Пролог: Большое спасибо рекрутеру компании Emfy за то, что напомнил мне о моей способности быстро разбираться в незнакомых вещах ❤️ Всем привет! Это мой первый пост, и я хотел бы привнести свой вклад...
ч.16 Сервер для 2D MMO RPG игры (realtime) — MVP готов
https://habr.com/ru/articles/814337/
https://habr.com/ru/articles/814337/
Хабр
ч.16 Сервер для 2D MMO RPG игры (realtime) — MVP готов
С 2021 года я начал делать свою MMO игру обнаружив что нет готовых сервисов ни в России, ни за рубежом. Но сделать игру я мечтал со времен "Бойцовского клуба" и текстового "Амулета дракона", вдобавок...
Недавний релиз Laravel 11.4 ввел фасад Exceptions, упрощающий проверку исключений в обработчике исключений. Теперь вместо withoutExceptionHandling() можно использовать Exceptions::fake(). Это избавляет от необходимости ручного захвата исключений при проверке.
👩💻Функция
🔸Эта полезная функция заменяет после 4 символов и оставляет последние 4 символа в строке на символы «*». Таким образом, конфиденциальная информация остается скрытой, но при этом сохраняется достаточно информации, чтобы использовать ее для нужных действий, например для проверки транзакций.
@phpshka
Str::mask
в Laravel может использоваться для замены конфиденциальной информации, например номера кредитной карты, на символы-заменители. Это позволяет сохранять безопасность конфиденциальных данных клиентов.🔸Эта полезная функция заменяет после 4 символов и оставляет последние 4 символа в строке на символы «*». Таким образом, конфиденциальная информация остается скрытой, но при этом сохраняется достаточно информации, чтобы использовать ее для нужных действий, например для проверки транзакций.
@phpshka
🐘 Тест по навыкам junior и middle PHP-программиста 🐘
Ответьте на 40 вопросов и проверьте, как вы умеете оценивать алгоритмическую сложность кода, работать с ним с точки зрения анализа и на сколько готовы к обучению на курсе — «PHP Developer. Professional».
За 5 месяцев курса вы:
- Досконально изучите инфраструктуру (Docker, виртуальные машины, обеспечение безопасности приложения, Composer и другое)
- Разовьёте и прокачаете взаимодействие PHP с различными типами хранилищ (PostgreSQL, MySQL, NoSQL)
- Освоите не только unit-тестирование, но и покрытие тестами всех слоёв приложения
Время прохождения теста ограниченно 30 минут
👉 ПРОЙТИ ТЕСТ — https://otus.pw/GpDVm/?erid=LjN8KJrm3
💣 Пройдите тест, получите скидку на курс, и записи уроков от преподавателей курса в подарок.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Ответьте на 40 вопросов и проверьте, как вы умеете оценивать алгоритмическую сложность кода, работать с ним с точки зрения анализа и на сколько готовы к обучению на курсе — «PHP Developer. Professional».
За 5 месяцев курса вы:
- Досконально изучите инфраструктуру (Docker, виртуальные машины, обеспечение безопасности приложения, Composer и другое)
- Разовьёте и прокачаете взаимодействие PHP с различными типами хранилищ (PostgreSQL, MySQL, NoSQL)
- Освоите не только unit-тестирование, но и покрытие тестами всех слоёв приложения
Время прохождения теста ограниченно 30 минут
👉 ПРОЙТИ ТЕСТ — https://otus.pw/GpDVm/?erid=LjN8KJrm3
💣 Пройдите тест, получите скидку на курс, и записи уроков от преподавателей курса в подарок.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Как реализовать паттерн проектирования «Адаптер» на PHP, и какие распространенные случаи его использования?
В PHP вы можете реализовать паттерн «Адаптер», чтобы обеспечить работу несовместимых интерфейсов вместе.
В нашем примере:
Adaptee — класс с несовместимым интерфейсом.
Target — интерфейс, ожидаемый клиентом.
Adapter — класс, который адаптирует Adaptee к интерфейсу Target.
Распространенные случаи использования паттерна Адаптер включают:
🟢Интеграция с легаси-кодом: Когда у вас есть старый код с другим интерфейсом, который нужно использовать в новой системе.
🟢Использование сторонних библиотек: Когда вы хотите использовать стороннюю библиотеку, которая не соответствует требуемому интерфейсу.
🟢Мокирование объектов при тестировании: Когда нужно создать мок-объекты, которые реализуют определенный интерфейс для целей тестирования.
🟢Масштабируемость системы: Когда нужно переключаться между различными реализациями функциональности без изменения кода клиента.
#вопросы_с_собеседований
В PHP вы можете реализовать паттерн «Адаптер», чтобы обеспечить работу несовместимых интерфейсов вместе.
В нашем примере:
Adaptee — класс с несовместимым интерфейсом.
Target — интерфейс, ожидаемый клиентом.
Adapter — класс, который адаптирует Adaptee к интерфейсу Target.
Распространенные случаи использования паттерна Адаптер включают:
🟢Интеграция с легаси-кодом: Когда у вас есть старый код с другим интерфейсом, который нужно использовать в новой системе.
🟢Использование сторонних библиотек: Когда вы хотите использовать стороннюю библиотеку, которая не соответствует требуемому интерфейсу.
🟢Мокирование объектов при тестировании: Когда нужно создать мок-объекты, которые реализуют определенный интерфейс для целей тестирования.
🟢Масштабируемость системы: Когда нужно переключаться между различными реализациями функциональности без изменения кода клиента.
#вопросы_с_собеседований
Полезные практики написания поддерживаемого кода на PHP
https://habr.com/ru/articles/814995/
https://habr.com/ru/articles/814995/
Хабр
Полезные практики написания поддерживаемого кода на PHP
Привет, меня зовут Алексей и я должен признаться, я PHP разработчик. Последние несколько лет плотно занимаюсь проектами на symfony и решил поделиться с сообществом практиками, которые стараюсь...
Книга: «Laravel. Полное руководство. 3-е издание»
https://habr.com/ru/companies/piter/articles/814805/
https://habr.com/ru/companies/piter/articles/814805/
Хабр
Книга: «Laravel. Полное руководство. 3-е издание»
Привет, Хаброжители! Что отличает Laravel от других PHP-фреймворков? Скорость и простота. Стремительная разработка приложений, обширная экосистема и набор инструментов Laravel позволяют быстро...
Лучшие практики Laravel для разработчиков в 2024 году
https://habr.com/ru/articles/814843/
https://habr.com/ru/articles/814843/
Хабр
Лучшие практики Laravel для разработчиков в 2024 году
Для чистого, тестируемого и масштабируемого кода в фреймворке Laravel нужно использовать определенные практики. PHP очень гибкий, но любые отклонения усложняют код и снижают скорость обнаружения...
6 главных типов веб-уязвимостей, о которых должен знать каждый бэкендер
https://habr.com/ru/companies/spaceweb/articles/814725/
https://habr.com/ru/companies/spaceweb/articles/814725/
Хабр
6 главных типов веб-уязвимостей, о которых должен знать каждый бэкендер
Привет, Хабр! На связи Виталий Киреев, руководитель R&D SpaceWeb. В статье я расскажу про главные уязвимости Server Side, покажу примеры и объясню, как защищать данные. Принцип отбора...
erid: LjN8K4iQN
🧩 Тест по PHP для работы с Laravel 11🧩
Ответьте на 20 вопросов и проверьте, насколько вы умеете решать задачи по разработке на PHP и на сколько готовы к обучению на курсе — «Framework Laravel».
За 4 месяца курса вы:
- Изучите Laravel и сможете использовать этот фреймворк в проектах
- Сможете тестировать и разворачивать полученный код, обеспечивать безопасность приложения
- Освоите все встроенные инструменты фреймворка
Время прохождения теста ограниченно 30 минут
👉 ПРОЙТИ ТЕСТ -
💣 Пройдете тест, получите спец. цену на курс, и курс по Git в подарок.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🧩 Тест по PHP для работы с Laravel 11🧩
Ответьте на 20 вопросов и проверьте, насколько вы умеете решать задачи по разработке на PHP и на сколько готовы к обучению на курсе — «Framework Laravel».
За 4 месяца курса вы:
- Изучите Laravel и сможете использовать этот фреймворк в проектах
- Сможете тестировать и разворачивать полученный код, обеспечивать безопасность приложения
- Освоите все встроенные инструменты фреймворка
Время прохождения теста ограниченно 30 минут
👉 ПРОЙТИ ТЕСТ -
💣 Пройдете тест, получите спец. цену на курс, и курс по Git в подарок.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Как отладить любую команду Symfony, просто передав '-x'
Подход позволяет запускать любую Symfony команду в режиме отладки, даже если она не принадлежит вашему приложению, например, команды Doctrine или стандартные команды Symfony.
Это более быстрый и удобный способ отладки команд через добавление флага -x или --xdebug при вызове команды. После обнаружения этого флага слушатель событий перезапускает команду с необходимыми переменными среды для работы xDebug, используя функцию passthru().
Структура слушателя событий детально объяснена далее. Он реализует интерфейс ConsoleEvents::COMMAND и прослушивает событие configure для всех команд. Если обнаруживается флаг -x, команда перезапускается с установленными переменными среды для xDebug.
Код слушателя включает проверки типов и корректное перезапускание команды, а также учитывает ситуации, когда команда вызывается через HelpCommand.
Такой подход делает отладку Symfony команд более удобной и быстрой, особенно при работе в командной строке.
Подход позволяет запускать любую Symfony команду в режиме отладки, даже если она не принадлежит вашему приложению, например, команды Doctrine или стандартные команды Symfony.
Это более быстрый и удобный способ отладки команд через добавление флага -x или --xdebug при вызове команды. После обнаружения этого флага слушатель событий перезапускает команду с необходимыми переменными среды для работы xDebug, используя функцию passthru().
Структура слушателя событий детально объяснена далее. Он реализует интерфейс ConsoleEvents::COMMAND и прослушивает событие configure для всех команд. Если обнаруживается флаг -x, команда перезапускается с установленными переменными среды для xDebug.
Код слушателя включает проверки типов и корректное перезапускание команды, а также учитывает ситуации, когда команда вызывается через HelpCommand.
Такой подход делает отладку Symfony команд более удобной и быстрой, особенно при работе в командной строке.
DEV Community
How to debug ANY Symfony command simply passing `-x`
Debugging a Symfony console command requires setting some environment variables (depending on your...
Совет по Laravel 💡
Данные загружаются быстрее, если целевое значение является целым числом.
Используйте
@phpshka
Данные загружаются быстрее, если целевое значение является целым числом.
Используйте
𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄()
вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻()
, чтобы быстрее загружать данные, когда целевое значение является целым числом.@phpshka