Объясните Path Traversal в PHP
Path traversal (траверсирование путей) — это уязвимость безопасности, которая возникает, когда приложение позволяет пользователям указывать пути к файлам и не выполняет должную очистку пользовательского ввода. Это может позволить злоумышленникам получить доступ к файлам и директориям, находящимся вне предусмотренной директории. В PHP эта уязвимость может возникнуть, когда пути к файлам конструируются с использованием пользовательского ввода без надлежащей валидации или очистки.
Как работает Path Traversal
Пользовательский ввод: Приложение принимает пользовательский ввод для путей к файлам, например, через параметр GET или POST.
Неправильная очистка: Приложение неправильно очищает или валидирует ввод.
Траверсирование директорий: Злоумышленник может манипулировать вводом для навигации по файловой системе с помощью последовательностей вроде ../ (точка-точка-слэш) для перемещения вверх по структуре директорий.
Несанкционированный доступ к файлам: Злоумышленник получает доступ к файлам и директориям за пределами предусмотренного диапазона, который может включать конфиденциальную информацию, например, конфигурационные файлы, файлы с паролями или другие конфиденциальные данные.
Меры по предотвращению уязвимостей Path Traversal
Чтобы предотвратить уязвимости path traversal в PHP, следует:
🟢Очистка пользовательского ввода: Использовать функции, которые валидируют и очищают имена файлов.
🟢Использование абсолютных путей: Преобразовывать пути в абсолютные и проверять, что они находятся в ожидаемой директории.
🟢Ограничение доступа к файлам: Использовать подход белого списка, чтобы разрешить доступ только к определенным
#вопросы_с_собеседований
Path traversal (траверсирование путей) — это уязвимость безопасности, которая возникает, когда приложение позволяет пользователям указывать пути к файлам и не выполняет должную очистку пользовательского ввода. Это может позволить злоумышленникам получить доступ к файлам и директориям, находящимся вне предусмотренной директории. В PHP эта уязвимость может возникнуть, когда пути к файлам конструируются с использованием пользовательского ввода без надлежащей валидации или очистки.
Как работает Path Traversal
Пользовательский ввод: Приложение принимает пользовательский ввод для путей к файлам, например, через параметр GET или POST.
Неправильная очистка: Приложение неправильно очищает или валидирует ввод.
Траверсирование директорий: Злоумышленник может манипулировать вводом для навигации по файловой системе с помощью последовательностей вроде ../ (точка-точка-слэш) для перемещения вверх по структуре директорий.
Несанкционированный доступ к файлам: Злоумышленник получает доступ к файлам и директориям за пределами предусмотренного диапазона, который может включать конфиденциальную информацию, например, конфигурационные файлы, файлы с паролями или другие конфиденциальные данные.
Меры по предотвращению уязвимостей Path Traversal
Чтобы предотвратить уязвимости path traversal в PHP, следует:
🟢Очистка пользовательского ввода: Использовать функции, которые валидируют и очищают имена файлов.
🟢Использование абсолютных путей: Преобразовывать пути в абсолютные и проверять, что они находятся в ожидаемой директории.
🟢Ограничение доступа к файлам: Использовать подход белого списка, чтобы разрешить доступ только к определенным
#вопросы_с_собеседований
Как проверить размер базы данных и таблиц MySQL
Здесь рассматривается, как проверить размер баз данных, таблиц и индексов в MySQL с помощью SQL-команд, что полезно для эффективного управления ресурсами сервера и планирования расширений или оптимизаций.
Проверка использования дискового пространства MySQL
Для общего понимания, сколько места занимает директория MySQL, используйте команду Linux:
du -sh /var/lib/mysql
Эта команда показывает, сколько дискового пространства занимает директория данных MySQL, обычно расположенная в '/var/lib/mysql'.
Также, уже с помощью SQL-запросов, можно проверить следующие данные:
✔️Размер конкретной базы данных
✔️Размер всех баз данных
✔️Размер конкретной таблицы
✔️Размеры всех таблиц из всех баз данных
✔️Размер индексов
Эти команды полезны для мониторинга роста базы данных, планирования резервного копирования и оптимизации производительности.
Здесь рассматривается, как проверить размер баз данных, таблиц и индексов в MySQL с помощью SQL-команд, что полезно для эффективного управления ресурсами сервера и планирования расширений или оптимизаций.
Проверка использования дискового пространства MySQL
Для общего понимания, сколько места занимает директория MySQL, используйте команду Linux:
du -sh /var/lib/mysql
Эта команда показывает, сколько дискового пространства занимает директория данных MySQL, обычно расположенная в '/var/lib/mysql'.
Также, уже с помощью SQL-запросов, можно проверить следующие данные:
✔️Размер конкретной базы данных
✔️Размер всех баз данных
✔️Размер конкретной таблицы
✔️Размеры всех таблиц из всех баз данных
✔️Размер индексов
Эти команды полезны для мониторинга роста базы данных, планирования резервного копирования и оптимизации производительности.
Подписывайтесь на наш новый канал про нейросети для создания изображений, там есть:
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳 Что ж, давайте об актуальном: а вы используете Docker в рабочих проектах?
👍 — использую
👾 — нет
#интерактив
👍 — использую
👾 — нет
#интерактив
Новое в Symfony 7.1
В Symfony 7.1 представлено два интересных нововведения: компонент TypeInfo и атрибут MapUploadedFile. Давайте рассмотрим их подробнее.
TypeInfo Component
TypeInfo — это новый компонент, который предоставляет расширенные возможности для работы с типами данных в PHP. Основные возможности компонента включают:
🟢Более точная информация о типах данных: TypeInfo предоставляет методы для получения детальной информации о типах данных, включая их подтипы, nullable и union типы.
🟢Улучшенное сравнение типов: Компонент позволяет сравнивать типы данных с учетом всех возможных вариантов, что упрощает написание более точных и надежных проверок типов.
🟢Поддержка параметров и возвратов типов функций: TypeInfo позволяет легко получить информацию о типах параметров и возвратных типов функций и методов, что особенно полезно при работе с рефлексией и генерацией кода.
MapUploadedFile Attribute
MapUploadedFile — это новый атрибут, который упрощает работу с загруженными файлами в Symfony. Этот атрибут автоматически преобразует объекты UploadedFile в нужный вам формат.
Основные возможности включают:
🔸Автоматическое маппирование: Атрибут автоматически маппирует загруженные файлы в параметры вашего контроллера, что упрощает работу с файлами.
🔸Поддержка валидации: MapUploadedFile поддерживает встроенную валидацию загруженных файлов, что обеспечивает дополнительную безопасность и надежность.
🔸Интеграция с другими компонентами Symfony: Атрибут легко интегрируется с другими компонентами и сервисами Symfony, что упрощает его использование в рамках всего приложения.
В Symfony 7.1 представлено два интересных нововведения: компонент TypeInfo и атрибут MapUploadedFile. Давайте рассмотрим их подробнее.
TypeInfo Component
TypeInfo — это новый компонент, который предоставляет расширенные возможности для работы с типами данных в PHP. Основные возможности компонента включают:
🟢Более точная информация о типах данных: TypeInfo предоставляет методы для получения детальной информации о типах данных, включая их подтипы, nullable и union типы.
🟢Улучшенное сравнение типов: Компонент позволяет сравнивать типы данных с учетом всех возможных вариантов, что упрощает написание более точных и надежных проверок типов.
🟢Поддержка параметров и возвратов типов функций: TypeInfo позволяет легко получить информацию о типах параметров и возвратных типов функций и методов, что особенно полезно при работе с рефлексией и генерацией кода.
MapUploadedFile Attribute
MapUploadedFile — это новый атрибут, который упрощает работу с загруженными файлами в Symfony. Этот атрибут автоматически преобразует объекты UploadedFile в нужный вам формат.
Основные возможности включают:
🔸Автоматическое маппирование: Атрибут автоматически маппирует загруженные файлы в параметры вашего контроллера, что упрощает работу с файлами.
🔸Поддержка валидации: MapUploadedFile поддерживает встроенную валидацию загруженных файлов, что обеспечивает дополнительную безопасность и надежность.
🔸Интеграция с другими компонентами Symfony: Атрибут легко интегрируется с другими компонентами и сервисами Symfony, что упрощает его использование в рамках всего приложения.
🐍🆕 Змея сбросила старую кожу: что нового в Python 3.13
🐍🔀 Под капотом asyncio: принципы работы и ключевые концепции
🗝️ 40 незаменимых API для разработчиков
🖥️🔤 Транскрибация видео и создание субтитров с помощью Whisper, FFmpeg и Python
📊 Где изучать Data Science в 2024 году?
🌐 Scrapy VS Crawlee: сравнение фреймворков для веб-скрапинга
❤️ Активация с первого взгляда: как влюбить пользователя в продукт
💻🚀🏰 Как мы создали ИИ-стартап на хакатоне выходного дня в Германии
🐍🌳 Реализация алгоритма Укконена на Python
📈 Стать аналитиком Big Data: пошаговое руководство 2024
💻🚀💊 «Доктор Хаус»: ИИ-диагност в вашем телефоне. Передаём стартап в хорошие руки
📖 ТОП-10 книг о том, как правильно построить карьеру в IT
🤯 Как простая задачка поставила в тупик программистов (и как они из него выбрались)
🐳✈️ Docker ушёл из РФ! Инструкция по восстановлению доступа
💸📊 На сколько просели зарплаты в ИТ в 2024 году?
⭐🎤 Как не облажаться с докладом на IT-конференции
🏃 Самоучитель по Go для начинающих. Часть 12. Обобщенное программирование. Дженерики
🎭 7 типов программистов, которых вы встретите на собеседовании
☕🔍 Тестирование в Java: лучшие практики, инструменты и рекомендации для разработчиков
👁️💼 Открытые и скрытые вакансии в IT: как найти работу мечты
🅾️ Что такое «О» большое: объясняем на простых примерах
🤖💼 55 промтов для ChatGPT, которые помогут подготовиться к собеседованию
🐍💪 ТОП-5 вопросов повышенной сложности на собеседовании по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Оптимизация PHP-приложений для повышения производительности
В статье рассматривается процесс оптимизации легаси PHP-приложения, работающего на значительно превышающей по размеру серверной инфраструктуре.
В статье рассматривается процесс оптимизации легаси PHP-приложения, работающего на значительно превышающей по размеру серверной инфраструктуре.
mateusguimaraes.com
Optimizing PHP applications for performance — Mateus Guimarães
A quick guide on how to set up OPCache and fine-tune PHP-FPM.
Proglib запускает канал Азбука айтишника
Подписывайтесь на наш новый канал про айти для неайтишников — для совсем новичков и тех, кто постоянно взаимодействует с айтишниками.
У нас есть рубрики:
⭐ База — в ней рассказываем про термины из IT простым языком
⭐ Проект — объясняем, из чего состоят айтишные проекты и сколько они могут стоить
⭐ Психология айтишника — тут говорим про софт-скиллы, особенности работы и взаимодействия
👉Подписывайтесь!
Подписывайтесь на наш новый канал про айти для неайтишников — для совсем новичков и тех, кто постоянно взаимодействует с айтишниками.
У нас есть рубрики:
👉Подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Пакет для инвалидации КЭШа на PHP
Здесь описывается система кеширования данных в PHP с использованием классов и алгоритмов для эффективного управления и обновления кеша. Рассматриваются два основных сценария: кеширование до события изменения (event-based caching) и кеширование на время (lifetime-based caching). Приводится подробный алгоритм и блок-схема для реализации кеширования до события изменения, а также рассматривается проблема дочерних вызовов, когда изменение одного элемента кеша должно обновлять все зависимые от него элементы.
Здесь описывается система кеширования данных в PHP с использованием классов и алгоритмов для эффективного управления и обновления кеша. Рассматриваются два основных сценария: кеширование до события изменения (event-based caching) и кеширование на время (lifetime-based caching). Приводится подробный алгоритм и блок-схема для реализации кеширования до события изменения, а также рассматривается проблема дочерних вызовов, когда изменение одного элемента кеша должно обновлять все зависимые от него элементы.
Хабр
Пакет для инвалидации КЭШа на PHP
Простой случай сохранения до события изменения (Event) Алгоритм сохранения до события очень простой и понятный. Нет смысла приводить код в силу его простоты, ограничимся блок-схемой. У нас два метода...
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Как использовать Eager loading в Laravel?
Eager loading в Laravel — это способ предварительной загрузки связанных моделей, чтобы уменьшить количество запросов к базе данных и повысить производительность приложения. При использовании ленивой загрузки (lazy loading) связанные данные загружаются только тогда, когда к ним обращаются, что может привести к множественным запросам к базе данных (проблема N+1 запросов). В то время как eager loading загружает все необходимые данные заранее, используя объединение (join) или отдельные запросы с использованием ключевого слова with.
Eager loading помогает значительно снизить нагрузку на базу данных и ускорить работу приложения за счет уменьшения количества выполняемых запросов.
#вопросы_с_собеседований
Eager loading в Laravel — это способ предварительной загрузки связанных моделей, чтобы уменьшить количество запросов к базе данных и повысить производительность приложения. При использовании ленивой загрузки (lazy loading) связанные данные загружаются только тогда, когда к ним обращаются, что может привести к множественным запросам к базе данных (проблема N+1 запросов). В то время как eager loading загружает все необходимые данные заранее, используя объединение (join) или отдельные запросы с использованием ключевого слова with.
Eager loading помогает значительно снизить нагрузку на базу данных и ускорить работу приложения за счет уменьшения количества выполняемых запросов.
#вопросы_с_собеседований
Новое в Symfony 7.1
Улучшения в WebProfiler
WebProfiler — это инструмент, который помогает разработчикам анализировать и отлаживать свои приложения. В Symfony 7.1 WebProfiler получил несколько значительных улучшений:
Более удобный интерфейс:
🔸Улучшен дизайн панели инструментов для упрощения навигации и доступа к нужной информации.
🔸Визуальные улучшения делают профайлер более приятным и интуитивно понятным в использовании.
Новые панели и метрики:
🔸Добавлены новые панели, которые показывают более детальную информацию о запросах, ответах, маршрутизации и прочих аспектах работы приложения.
🔸Метрики и графики теперь отображаются более наглядно, что помогает быстро находить и исправлять проблемы производительности.
Гибкая настройка:
🔸Возможность настройки панелей и отображаемых данных под конкретные нужды проекта.
Улучшенный аутентификатор с токенами доступа
В Symfony 7.1 представлено улучшение в системе аутентификации с использованием токенов доступа. Основные изменения:
Поддержка различных стратегий аутентификации: Новый аутентификатор позволяет легко интегрировать и комбинировать различные методы проверки подлинности (например, OAuth, JWT и другие).
Улучшенная безопасность: Усилены механизмы проверки подлинности и защиты от атак, связанных с использованием токенов. Возможность более гибкой настройки политик обновления и истечения токенов.
Удобство использования: Улучшена документация и примеры использования, что позволяет быстрее и проще внедрять аутентификацию на основе токенов в проекты.
Маршрутизация с параметрами
Одной из интересных новинок в Symfony 7.1 является улучшенная работа с параметрами маршрутов. Теперь параметры маршрутов могут быть более гибко управляемыми и настроенными:
✅Связанные параметры:
Возможность сопоставлять параметры маршрутов с конкретными аргументами контроллеров, что упрощает управление и обработку данных.
✅Улучшенная валидация:
Добавлена возможность более гибкой валидации параметров маршрутов прямо в конфигурации маршрутов.
✅Оптимизация производительности:
Улучшены внутренние механизмы маршрутизации для повышения производительности обработки запросов.
Улучшения в WebProfiler
WebProfiler — это инструмент, который помогает разработчикам анализировать и отлаживать свои приложения. В Symfony 7.1 WebProfiler получил несколько значительных улучшений:
Более удобный интерфейс:
🔸Улучшен дизайн панели инструментов для упрощения навигации и доступа к нужной информации.
🔸Визуальные улучшения делают профайлер более приятным и интуитивно понятным в использовании.
Новые панели и метрики:
🔸Добавлены новые панели, которые показывают более детальную информацию о запросах, ответах, маршрутизации и прочих аспектах работы приложения.
🔸Метрики и графики теперь отображаются более наглядно, что помогает быстро находить и исправлять проблемы производительности.
Гибкая настройка:
🔸Возможность настройки панелей и отображаемых данных под конкретные нужды проекта.
Улучшенный аутентификатор с токенами доступа
В Symfony 7.1 представлено улучшение в системе аутентификации с использованием токенов доступа. Основные изменения:
Поддержка различных стратегий аутентификации: Новый аутентификатор позволяет легко интегрировать и комбинировать различные методы проверки подлинности (например, OAuth, JWT и другие).
Улучшенная безопасность: Усилены механизмы проверки подлинности и защиты от атак, связанных с использованием токенов. Возможность более гибкой настройки политик обновления и истечения токенов.
Удобство использования: Улучшена документация и примеры использования, что позволяет быстрее и проще внедрять аутентификацию на основе токенов в проекты.
Маршрутизация с параметрами
Одной из интересных новинок в Symfony 7.1 является улучшенная работа с параметрами маршрутов. Теперь параметры маршрутов могут быть более гибко управляемыми и настроенными:
✅Связанные параметры:
Возможность сопоставлять параметры маршрутов с конкретными аргументами контроллеров, что упрощает управление и обработку данных.
✅Улучшенная валидация:
Добавлена возможность более гибкой валидации параметров маршрутов прямо в конфигурации маршрутов.
✅Оптимизация производительности:
Улучшены внутренние механизмы маршрутизации для повышения производительности обработки запросов.
«Как мы повысили продуктивность написания админ-панелей, используя Filament»
Здесь показан реальный опыт разработки админ-панелей (CMS) с использованием Filament — чрезвычайно мощной библиотеки Fullstack-компонентов, основанной на фреймворке Laravel и технологии Livewire.
Laravel используется в качестве основного фреймворка для разработки бэкенда всех проектов, и однажды возник вопрос: какое решение для админ-панелей выбрать? Выбор пал на Filament — тогда еще сырой, маленькой, почти незадокументированной open-source админке.
Как показало время, выбор оказался правильным.
Важно подметить, что выбор делался достаточно долго, особенно между Filament и другой, на первый взгляд, более популярной среди русскоязычного сообщества Laravel, библиотекой — Orchid (отечественная админ-панель с философией DIY).
Работа над несколькими проектами на Orchid велась параллельно с проектами на Filament, и в итоге выбор был сделан в пользу последнего. В этой статье будут изложены причины, по которым Filament считается лучшим выбором для разработки CMS.
Здесь показан реальный опыт разработки админ-панелей (CMS) с использованием Filament — чрезвычайно мощной библиотеки Fullstack-компонентов, основанной на фреймворке Laravel и технологии Livewire.
Laravel используется в качестве основного фреймворка для разработки бэкенда всех проектов, и однажды возник вопрос: какое решение для админ-панелей выбрать? Выбор пал на Filament — тогда еще сырой, маленькой, почти незадокументированной open-source админке.
Как показало время, выбор оказался правильным.
Важно подметить, что выбор делался достаточно долго, особенно между Filament и другой, на первый взгляд, более популярной среди русскоязычного сообщества Laravel, библиотекой — Orchid (отечественная админ-панель с философией DIY).
Работа над несколькими проектами на Orchid велась параллельно с проектами на Filament, и в итоге выбор был сделан в пользу последнего. В этой статье будут изложены причины, по которым Filament считается лучшим выбором для разработки CMS.
Хабр
Как мы повысили продуктивность написания админ-панелей, используя Filament
Сегодня мы хотим поделиться нашим опытом разработки админ-панелей (CMS) с использованием Filament — чрезвычайно мощной библиотеки Fullstack-компонентов, основанной на фреймворке Laravel и технологии...
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
«Primitive Obsession» (Примитивная Одержимость)
Автор делится мнением, почему лучше использовать объекты ValueObject вместо bool, int, string, float, array.
Автор делится мнением, почему лучше использовать объекты ValueObject вместо bool, int, string, float, array.
Andrew Cairns
Primitive Obsession
Discover Primitive Obsession in code: recognize symptoms, understand implications, and learn effective fixes with value objects.
HTML Embed Code: