Пользовательские настройки в приложениях Symfony с JBtronics/Settings-Bundle
Это руководство по использованию пакета jbtronics/settings-bundle в Symfony для управления настройками приложения. Основная идея заключается в том, что параметры настроек организованы вокруг классов, что обеспечивает типобезопасность и удобство разработки.
Это руководство по использованию пакета jbtronics/settings-bundle в Symfony для управления настройками приложения. Основная идея заключается в том, что параметры настроек организованы вокруг классов, что обеспечивает типобезопасность и удобство разработки.
DEV Community
User-configurable settings in Symfony applications with jbtronics/settings-bundle (Part 1)
Symfony offers vast configuration possibilities using container parameters and environment variables....
❤2
Предупреждение для всех, кто использует PHP
Серьёзная уязвимость была обнаружена в GLIBC, что может привести к вмешательству в PHP-сайты по всему миру. Смотрите это в этом видео.
Серьёзная уязвимость была обнаружена в GLIBC, что может привести к вмешательству в PHP-сайты по всему миру. Смотрите это в этом видео.
YouTube
this is a warning to anyone using php
An 8/10 vulnerability has been found in glibc, that could lead to the compromise of PHP around the world. Check it out in this video.
https://nvd.nist.gov/vuln/detail/CVE-2024-2961
🏫 COURSES 🏫 Learn to code in C at https://lowlevel.academy
🛒 GREAT BOOKS…
https://nvd.nist.gov/vuln/detail/CVE-2024-2961
🏫 COURSES 🏫 Learn to code in C at https://lowlevel.academy
🛒 GREAT BOOKS…
🤔7🥱6🔥2❤1
Руководитель ставит сотруднику KPI, который невозможно выполнить своими силами, но все остальные так работают. Кто прав?
Anonymous Poll
10%
Прав руководитель. Раз работают — значит все возможно
20%
Прав работник, который не хочет брать на себя ответственность
44%
Как всегда — у каждого своя правда
1%
Свой вариант (напишу в комментариях)
25%
Посмотреть результаты
❤2🥱2
PHP в 2024 году
В 2024 году значительно вырос интерес к php и здесь описываются причины этого:
🔸Непрерывная эволюция, даже после ухода из проекта главного разработчика Никиты. Страхи в отношении будущего PHP оказались напрасными, поскольку фонд PHP вырос в устойчивое сообщество, где теперь 10 разработчиков получают оплату за работу над ядром PHP.
🔸FrankenPHP, представляющий собой сервер приложений для PHP, написанный на Go, который значительно повышает производительность существующих PHP-приложений.
🔸Успех Laravel и его экосистемы, в том числе инструмента Laravel Livewire, который позволяет создавать интерактивные приложения без использования JavaScript.
🔸Растущий интерес к PHP со стороны разработчиков из других сообществ, таких как JavaScript, и рост экосистемы благодаря Composer и Packagist, которые достигли отметки в 100 миллиардов загрузок.
В 2024 году значительно вырос интерес к php и здесь описываются причины этого:
🔸Непрерывная эволюция, даже после ухода из проекта главного разработчика Никиты. Страхи в отношении будущего PHP оказались напрасными, поскольку фонд PHP вырос в устойчивое сообщество, где теперь 10 разработчиков получают оплату за работу над ядром PHP.
🔸FrankenPHP, представляющий собой сервер приложений для PHP, написанный на Go, который значительно повышает производительность существующих PHP-приложений.
🔸Успех Laravel и его экосистемы, в том числе инструмента Laravel Livewire, который позволяет создавать интерактивные приложения без использования JavaScript.
🔸Растущий интерес к PHP со стороны разработчиков из других сообществ, таких как JavaScript, и рост экосистемы благодаря Composer и Packagist, которые достигли отметки в 100 миллиардов загрузок.
👍41👏10😁4
Еще один #дайджест новостей по PHP за неделю:
🔎Команда Laravel выпустила v11.5 — улучшение производительности Blade, создание URL-адресов с параметрами запроса и многое другое.
🔎Привязка свойств(Property Hooks) в PHP 8.4 — Property Hooks RFC преодолела важный рубеж, получив подавляющее число голосов «за» — 34, и только 1 голос «против». Это намного выше требуемого большинства в 2/3 голосов, необходимого для принятия решения.
🔎Неделя Symfony #903 (15-21 апреля 2024 г.)
🔎Команда Laravel выпустила v11.5 — улучшение производительности Blade, создание URL-адресов с параметрами запроса и многое другое.
🔎Привязка свойств(Property Hooks) в PHP 8.4 — Property Hooks RFC преодолела важный рубеж, получив подавляющее число голосов «за» — 34, и только 1 голос «против». Это намного выше требуемого большинства в 2/3 голосов, необходимого для принятия решения.
🔎Неделя Symfony #903 (15-21 апреля 2024 г.)
👍7❤1
Мастерство изменения легаси кода
Статья выступает за прагматичный и пошаговый подход к обновлению устаревших проектов, сосредотачиваясь на устойчивом прогрессе и постоянном совершенствовании, а не на быстрых решениях или радикальных изменениях. В ней подчеркиваются следующие ключевые моменты:
🟢Понимание устаревших проектов: Устаревшие проекты — это не только устаревший код, но и окружающая экосистема и сопротивление изменениям внутри команды или организации.
🟢Выявление препятствий: Важно выявить факторы, которые препятствуют прогрессу, такие как изученная беспомощность, страх перед неизвестностью или сопротивление со стороны руководителей команды.
🟢Эффективное измерение прогресса: Простое отчетность по метрикам без действенных выводов может быть контрпродуктивной. Важно сосредоточиться на значимых метриках, которые способствуют реальному прогрессу, а не утонуть в данных.
🟢Смещение фокуса с ошибок на успехи: Постоянное подчеркивание ошибок может привести к культуре стыда, а не к празднованию успехов. Важно сохранять позитивное отношение и сосредотачиваться на прогрессе.
🟢Преодоление паралича выбора: Слишком много вариантов может привести к параличу выбора. Разбиение задач на меньшие, управляемые шаги может помочь преодолеть этот паралич и способствовать прогрессу.
🟢Маленькие шаги: Вместо установления великих целей, которые могут показаться подавляющими, разбиение этапов на небольшие, достижимые задачи более эффективно.
🟢Постоянное совершенствование: Принятие философии непрерывного совершенствования, или кайзен, является ключом к долгосрочному успеху. Прогресс может показаться медленным сначала, но постоянные усилия приносят значительные результаты со временем.
🟢Конкретные стратегии обновления: В статье описаны конкретные стратегии обновления различных аспектов устаревших проектов, таких как уровни PHPStan, наборы Rector, типовые объявления и обнаружение неиспользуемого кода.
Статья выступает за прагматичный и пошаговый подход к обновлению устаревших проектов, сосредотачиваясь на устойчивом прогрессе и постоянном совершенствовании, а не на быстрых решениях или радикальных изменениях. В ней подчеркиваются следующие ключевые моменты:
🟢Понимание устаревших проектов: Устаревшие проекты — это не только устаревший код, но и окружающая экосистема и сопротивление изменениям внутри команды или организации.
🟢Выявление препятствий: Важно выявить факторы, которые препятствуют прогрессу, такие как изученная беспомощность, страх перед неизвестностью или сопротивление со стороны руководителей команды.
🟢Эффективное измерение прогресса: Простое отчетность по метрикам без действенных выводов может быть контрпродуктивной. Важно сосредоточиться на значимых метриках, которые способствуют реальному прогрессу, а не утонуть в данных.
🟢Смещение фокуса с ошибок на успехи: Постоянное подчеркивание ошибок может привести к культуре стыда, а не к празднованию успехов. Важно сохранять позитивное отношение и сосредотачиваться на прогрессе.
🟢Преодоление паралича выбора: Слишком много вариантов может привести к параличу выбора. Разбиение задач на меньшие, управляемые шаги может помочь преодолеть этот паралич и способствовать прогрессу.
🟢Маленькие шаги: Вместо установления великих целей, которые могут показаться подавляющими, разбиение этапов на небольшие, достижимые задачи более эффективно.
🟢Постоянное совершенствование: Принятие философии непрерывного совершенствования, или кайзен, является ключом к долгосрочному успеху. Прогресс может показаться медленным сначала, но постоянные усилия приносят значительные результаты со временем.
🟢Конкретные стратегии обновления: В статье описаны конкретные стратегии обновления различных аспектов устаревших проектов, таких как уровни PHPStan, наборы Rector, типовые объявления и обнаружение неиспользуемого кода.
Tomasvotruba
Master the Change
When we upgrade a new project to the best version possible, the latest PHP and framework versions, it's not only about changing syntax sugar to a more fancy one.
It's about the vast focus shift in project management so far. It's a change to master. I want…
It's about the vast focus shift in project management so far. It's a change to master. I want…
🌚3👏1🎉1
🦾🧠🏋Качаем мозги к лету!
Все качают пресс, а мы — мозги, чтобы получить крутой оффер, уехать на Балии больше не быть онлайн 😎
⚡️ Распродажа Proglib.Academy: с 24 апреля до 5 мая — скидка 40% на все наши курсы!
➡️ Математика для Data Science 29 990 ₽ 17 994 ₽
➡️ Алгоритмы и структуры данных 35 990 ₽ 21 594 ₽
➡️ Основы программирования на Python 19 990 ₽ 11 994 ₽
Почему мы?
⭐️ Курсы разрабатывались при поддержке топовых преподавателей из Яндекса, Сбера, МГУ
⭐️ У нас есть менторы, которые поддерживают студентов на каждом этапе
⭐️ Мы разбираем задачи с реальных собеседований в крупнейшие компании и готовим к поступлению в ШАД
⭐️ Вход с любого уровня: например, на курсе математики сначала освежаем знания из школьной программы
Save the dates!
Все качают пресс, а мы — мозги, чтобы получить крутой оффер, уехать на Бали
Почему мы?
Save the dates!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1
Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз
Последствия использования PostgreSQL в Docker с конфигурацией по умолчанию могут оказаться неожиданными.
Последствия использования PostgreSQL в Docker с конфигурацией по умолчанию могут оказаться неожиданными.
Хабр
Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз
рекомендации explain.tensor.ru У одного из клиентов нашей системы мониторинга PostgreSQL серверов возникла проблема сильного замедления запросов при запуске базы в Docker. В этой статье расскажем о...
😁5👍2🌚1
Анализатор зависимостей Composer
Быстрое обнаружение проблемных зависимостей
💪Обнаруживает неиспользованные, теневые и неуместные зависимости композера
⚡Сканирование 15 000 файлов за 2 секунды
🕸️ Легкий вес: нет зависимостей
🍰 Простой в использовании
✨ Совместим: PHP 7.2 — 8.3
Быстрое обнаружение проблемных зависимостей
💪Обнаруживает неиспользованные, теневые и неуместные зависимости композера
⚡Сканирование 15 000 файлов за 2 секунды
🕸️ Легкий вес: нет зависимостей
🍰 Простой в использовании
✨ Совместим: PHP 7.2 — 8.3
GitHub
GitHub - shipmonk-rnd/composer-dependency-analyser: 🚀 Fast detection of composer dependency issues (unused dependencies, shadow…
🚀 Fast detection of composer dependency issues (unused dependencies, shadow dependencies, misplaced dependencies) - shipmonk-rnd/composer-dependency-analyser
❤6🔥1
Как расшифровать 644 в правах на файл в Linux?
В Linux права доступа к файлам и директориям обычно представлены в восьмеричной системе счисления. Каждый набор из трех цифр представляет собой комбинацию прав доступа для владельца файла, группы и остальных пользователей.
Права доступа к файлу представлены тремя группами: для владельца (user), для группы (group) и для остальных (others). Каждая группа состоит из трех битов, представляющих права на чтение (read), запись (write) и выполнение (execute).
Теперь, чтобы расшифровать число 644:
🔸Первая цифра (6) относится к правам владельца файла.
🔸Вторая цифра (4) относится к правам группы.
🔸 цифра (4) относится к правам остальных пользователей.
Теперь преобразуем эти числа в бинарный вид:
🟢6 = 110 в двоичной системе (rw-)
🟢4 = 100 в двоичной системе (r--)
🟢4 = 100 в двоичной системе (r--)
Таким образом, права доступа для файла 644 в Linux будут следующими:
✔️Владелец файла имеет права на чтение и запись (rw-)
✔️Группа имеет право только на чтение (r--)
✔️Остальные пользователи также имеют право только на чтение (r--)
#вопросы_с_собеседований
В Linux права доступа к файлам и директориям обычно представлены в восьмеричной системе счисления. Каждый набор из трех цифр представляет собой комбинацию прав доступа для владельца файла, группы и остальных пользователей.
Права доступа к файлу представлены тремя группами: для владельца (user), для группы (group) и для остальных (others). Каждая группа состоит из трех битов, представляющих права на чтение (read), запись (write) и выполнение (execute).
Теперь, чтобы расшифровать число 644:
🔸Первая цифра (6) относится к правам владельца файла.
🔸Вторая цифра (4) относится к правам группы.
🔸 цифра (4) относится к правам остальных пользователей.
Теперь преобразуем эти числа в бинарный вид:
🟢6 = 110 в двоичной системе (rw-)
🟢4 = 100 в двоичной системе (r--)
🟢4 = 100 в двоичной системе (r--)
Таким образом, права доступа для файла 644 в Linux будут следующими:
✔️Владелец файла имеет права на чтение и запись (rw-)
✔️Группа имеет право только на чтение (r--)
✔️Остальные пользователи также имеют право только на чтение (r--)
#вопросы_с_собеседований
👍11❤3😁1
Недавний релиз Laravel 11.4 ввел фасад Exceptions, упрощающий проверку исключений в обработчике исключений. Теперь вместо withoutExceptionHandling() можно использовать Exceptions::fake(). Это избавляет от необходимости ручного захвата исключений при проверке.
👍11😁6👾2❤1🎉1
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
🗺️💼 Из Москвы в Дублин: опыт российского разработчика из Amazon
В этой статье я расскажу о культурных и профессиональных отличиях, с которыми мне пришлось столкнуться, переезжая из России в Латвию, а затем и в Ирландию. Надеюсь, мой опыт поможет вам понять, чего можно ожидать от такого серьезного шага.
Читать статью
В этой статье я расскажу о культурных и профессиональных отличиях, с которыми мне пришлось столкнуться, переезжая из России в Латвию, а затем и в Ирландию. Надеюсь, мой опыт поможет вам понять, чего можно ожидать от такого серьезного шага.
Читать статью
👍4😁3🎉2
Улучшите свои запросы в Laravel Eloquent с помощью Tappable Scopes
Статья об использовании «tappable scopes» в Laravel объясняет, как этот паттерн может упростить и абстрагировать сложные запросы. Вместо использования обычных методов областей запросов, автор предлагает использовать «tappable scopes» для более чистого и повторного использования кода.
Первоначально объясняется базовое использование «tappable scopes» на примере опубликованных записей и комментариев. Затем автор демонстрирует, как добавить параметры в «tappable scopes», что делает их более гибкими.
Наконец, представляется более сложный пример, где «tappable scope» используется для запроса последних опубликованных записей с автором и количеством комментариев. Это уменьшает сложность запроса и делает его легко настраиваемым для разных частей приложения.
Статья об использовании «tappable scopes» в Laravel объясняет, как этот паттерн может упростить и абстрагировать сложные запросы. Вместо использования обычных методов областей запросов, автор предлагает использовать «tappable scopes» для более чистого и повторного использования кода.
Первоначально объясняется базовое использование «tappable scopes» на примере опубликованных записей и комментариев. Затем автор демонстрирует, как добавить параметры в «tappable scopes», что делает их более гибкими.
Наконец, представляется более сложный пример, где «tappable scope» используется для запроса последних опубликованных записей с автором и количеством комментариев. Это уменьшает сложность запроса и делает его легко настраиваемым для разных частей приложения.
DEV Community
Elevate Your Laravel Eloquent Queries with Tappable Scopes
In this article, I want to go over how to use tappable scopes in Laravel. I’ve used similar patterns...
🥱10❤4🤔2👍1
💬 Куда вы предпочитаете обращаться за подсказками, если нужно сделать что-то новое?
❤️ — YouTube-туториалы
👍 — документация
#интерактив
❤️ — YouTube-туториалы
👍 — документация
#интерактив
👍117❤12
10 лучших фреймворков для тестирования на 2024 год
Это обширный обзор различных PHP-фреймворков для тестирования, их преимуществ и сферы применения. Подчеркивается важность выбора фреймворка на основе требований проекта и выделяет десять популярных PHP-фреймворков для тестирования, включая как популярные PHPUnit, Codeception, Selenium, так и менее популярные, но заслуживающие внимания.
Фреймворки оцениваются на основе таких факторов, как удобство использования, поддержка структуры кода, эффективность тестирования, избежание дублирования кода и анализ покрытия тестами.
Это обширный обзор различных PHP-фреймворков для тестирования, их преимуществ и сферы применения. Подчеркивается важность выбора фреймворка на основе требований проекта и выделяет десять популярных PHP-фреймворков для тестирования, включая как популярные PHPUnit, Codeception, Selenium, так и менее популярные, но заслуживающие внимания.
Фреймворки оцениваются на основе таких факторов, как удобство использования, поддержка структуры кода, эффективность тестирования, избежание дублирования кода и анализ покрытия тестами.
DEV Community
Top 10 PHP Testing Frameworks for 2024
A framework is a collection or set of tools and processes that work together to support testing and...
😁3👍1🔥1🥱1
Какова цель сервис провайдеров в Ларавеле?
В Laravel, сервис-провайдеры отвечают за загрузку различных аспектов приложения, таких как регистрация маршрутов, регистрация слушателей событий и регистрация миграций базы данных.
Сервис-провайдеры определяются в каталоге app/Providers и регистрируются в файле config/app.php.
Это пример сервис-провайдера, который регистрирует маршрут
#вопросы_с_собеседований
В Laravel, сервис-провайдеры отвечают за загрузку различных аспектов приложения, таких как регистрация маршрутов, регистрация слушателей событий и регистрация миграций базы данных.
Сервис-провайдеры определяются в каталоге app/Providers и регистрируются в файле config/app.php.
Это пример сервис-провайдера, который регистрирует маршрут
#вопросы_с_собеседований
🌚11👍7🥱3
Переосмысление моков: DIY подход против фреймворков на примере PHP и TypeScript
Здесь обсуждается выбор между использованием собственных моков и моков, созданных с помощью фреймворков при тестировании программного обеспечения. Моки необходимы для обеспечения надежности кода, но их неправильное использование может усложнить тестовые наборы.
Также рассматриваются различные типы тестовых двойников и обсуждаются преимущества и недостатки двух методов мокирования. Авторы рекомендуют использовать собственные моки для повышения устойчивости и простоты тестирования в долгосрочной перспективе.
Здесь обсуждается выбор между использованием собственных моков и моков, созданных с помощью фреймворков при тестировании программного обеспечения. Моки необходимы для обеспечения надежности кода, но их неправильное использование может усложнить тестовые наборы.
Также рассматриваются различные типы тестовых двойников и обсуждаются преимущества и недостатки двух методов мокирования. Авторы рекомендуют использовать собственные моки для повышения устойчивости и простоты тестирования в долгосрочной перспективе.
Kamil Ruczyński
Rethinking Mocking - DIY Approach vs. Frameworks on examples in PHP and Typescript
In the landscape of software testing, the choice between a do-it-yourself (DIY) approach to mocking or utilizing mocking frameworks is a pivotal decision for programmers. While mocking is indispensable for code reliability, its overuse or incorrect implementation…
❤5👍2🤔2🔥1
👩💻Функция Str::mask в Laravel может использоваться для замены конфиденциальной информации, например номера кредитной карты, на символы-заменители. Это позволяет сохранять безопасность конфиденциальных данных клиентов.
🔸Эта функция заменяет после 4 символов и оставляет последние 4 символа в строке на символы «*». Таким образом, конфиденциальная информация остается скрытой, но при этом сохраняется достаточно информации, чтобы использовать ее для нужных действий, например для проверки транзакций.
🔸Эта функция заменяет после 4 символов и оставляет последние 4 символа в строке на символы «*». Таким образом, конфиденциальная информация остается скрытой, но при этом сохраняется достаточно информации, чтобы использовать ее для нужных действий, например для проверки транзакций.
🔥16👍4❤1