Создание одностраничного приложения с помощью HTMX и Symfony
Данная статья представляет собой учебное пособие или руководство по использованию библиотеки htmx в сочетании с Symfony для создания веб-приложения с улучшенным UX.
Здесь рассматриваются различные аспекты разработки, включая навигацию, отправку форм, отображение данных, динамический поиск и аутентификацию.
Данная статья представляет собой учебное пособие или руководство по использованию библиотеки htmx в сочетании с Symfony для создания веб-приложения с улучшенным UX.
Здесь рассматриваются различные аспекты разработки, включая навигацию, отправку форм, отображение данных, динамический поиск и аутентификацию.
JoliCode
Making a Single-Page Application with HTMX and Symfony
With the plethora of Javascript frameworks available today, web pages became smoother and smoother in terms of User Experience, a field Symfony has been trying to improve too with initiatives
❤6🔥2
Разработка расширения для PHP на C++. Хуки встроенных функций и методов
В этой статье показано, как создать расширение для PHP на C++ на примере разработки функциональности, позволяющей перехватывать вызовы встроенных функций и методов классов в php.
Здесь подробно рассмотрен процесс создания расширения для PHP на C++. Начиная с настройки среды разработки и создания проекта, до шагов по реализации хуков и выполнения callback-функций. Затронуты все основные ключевые моменты, от встраивания хуков во встроенные PHP-функции до подмены целевых функций и обработки аргументов, исключений и результатов.
В этой статье показано, как создать расширение для PHP на C++ на примере разработки функциональности, позволяющей перехватывать вызовы встроенных функций и методов классов в php.
Здесь подробно рассмотрен процесс создания расширения для PHP на C++. Начиная с настройки среды разработки и создания проекта, до шагов по реализации хуков и выполнения callback-функций. Затронуты все основные ключевые моменты, от встраивания хуков во встроенные PHP-функции до подмены целевых функций и обработки аргументов, исключений и результатов.
Хабр
Разработка расширения для PHP на C++. Хуки встроенных функций и методов
Разработка расширения для PHP на C++. Хуки встроенных функций и методов. PHP - это мощный и широко используемый язык программирования для веб-разработки. Однако иногда требуется расширение...
👍15🔥4⚡1❤1
Что такое sensitive данные? Как хранятся в базе? Как отражаются в логах?
Sensitive данные (чувствительные данные) — это информация, которая является приватной, конфиденциальной или важной для безопасности организации или пользователя. К таким данным относятся, например, пароли, номера кредитных карт, персональные идентификационные номера и т.д.
Хранение sensitive данных в базе данных требует особых мер безопасности, чтобы предотвратить несанкционированный доступ. Важной практикой является хеширование паролей. При регистрации пользователя пароль хешируется — процесс преобразования пароля в непонятный для чтения вид. Затем хеш сохраняется в базе данных. При входе в систему, введенный пароль также хешируется, и соответствующий хеш сравнивается с сохраненным в базе данных.
Sensitive данные не должны непосредственно отражаться в логах. Вместо этого должна быть сохранена информация о том, что операция на sensitive данных была выполнена. Например, вместо того, чтобы сохранять сам пароль в логах, можно сохранить запись вроде «пользователь X изменил свой пароль». Это делается для предотвращения утечки конфиденциальной информации в случае несанкционированного доступа к логам.
#вопросы_с_собеседований
Sensitive данные (чувствительные данные) — это информация, которая является приватной, конфиденциальной или важной для безопасности организации или пользователя. К таким данным относятся, например, пароли, номера кредитных карт, персональные идентификационные номера и т.д.
Хранение sensitive данных в базе данных требует особых мер безопасности, чтобы предотвратить несанкционированный доступ. Важной практикой является хеширование паролей. При регистрации пользователя пароль хешируется — процесс преобразования пароля в непонятный для чтения вид. Затем хеш сохраняется в базе данных. При входе в систему, введенный пароль также хешируется, и соответствующий хеш сравнивается с сохраненным в базе данных.
Sensitive данные не должны непосредственно отражаться в логах. Вместо этого должна быть сохранена информация о том, что операция на sensitive данных была выполнена. Например, вместо того, чтобы сохранять сам пароль в логах, можно сохранить запись вроде «пользователь X изменил свой пароль». Это делается для предотвращения утечки конфиденциальной информации в случае несанкционированного доступа к логам.
#вопросы_с_собеседований
❤10🥱5😁4👍1
Автономный взлом веб-приложений PHP на уровне байт-кода
Автор описывает новый алгоритм под названием «алгоритм обратного следования» («follow-back algorithm»), который он разработал для автоматического обнаружения уязвимостей в PHP-коде на уровне байткода. Алгоритм направлен на преодоление ограничений статического анализа, основанного на AST или поиске по регулярным выражениям, внедряя в себя анализ потока данных.
Алгоритм включает в себя выявление источников (пользовательских вводов) и стоков (потенциально уязвимых функций или инструкций) в инструкциях байткода PHP. Инструкции байткода PHP представляют собой инструкции трехадресного кода, генерируемые интерпретатором, и он работает на этом уровне для получения детализированной информации о том, как данные перемещаются в программе.
«Алгоритм обратного следования» в основном отслеживает обратный путь от потенциальной стоковой инструкции к входному источнику, рекурсивно выявляя инструкции, которые определяют или создают переменные, используемые в предыдущих инструкциях. Ручное пошаговое описание алгоритма включает в себя следование инструкциям байткода шаг за шагом, начиная с стоковой инструкции (например, ECHO) и отслеживания пути обратно к пользовательскому входному источнику (например, FETCH_DIM_R или FETCH_R).
Автор признает некоторые ограничения алгоритма, такие как переменные, определенные в вызовах функций, и переменные, переданные в качестве аргументов в вызовы функций. Он предлагает потенциальные решения, включая запись и проверку переменных, определенных в вызовах функций.
Кроме того, представлена информация о распространенных уязвимостях PHP, связанных с пользовательским вводом, упоминает использование алгоритма обратного следования на конкретных веб-приложениях, разработанных для тестирования безопасности.
Автор описывает новый алгоритм под названием «алгоритм обратного следования» («follow-back algorithm»), который он разработал для автоматического обнаружения уязвимостей в PHP-коде на уровне байткода. Алгоритм направлен на преодоление ограничений статического анализа, основанного на AST или поиске по регулярным выражениям, внедряя в себя анализ потока данных.
Алгоритм включает в себя выявление источников (пользовательских вводов) и стоков (потенциально уязвимых функций или инструкций) в инструкциях байткода PHP. Инструкции байткода PHP представляют собой инструкции трехадресного кода, генерируемые интерпретатором, и он работает на этом уровне для получения детализированной информации о том, как данные перемещаются в программе.
«Алгоритм обратного следования» в основном отслеживает обратный путь от потенциальной стоковой инструкции к входному источнику, рекурсивно выявляя инструкции, которые определяют или создают переменные, используемые в предыдущих инструкциях. Ручное пошаговое описание алгоритма включает в себя следование инструкциям байткода шаг за шагом, начиная с стоковой инструкции (например, ECHO) и отслеживания пути обратно к пользовательскому входному источнику (например, FETCH_DIM_R или FETCH_R).
Автор признает некоторые ограничения алгоритма, такие как переменные, определенные в вызовах функций, и переменные, переданные в качестве аргументов в вызовы функций. Он предлагает потенциальные решения, включая запись и проверку переменных, определенных в вызовах функций.
Кроме того, представлена информация о распространенных уязвимостях PHP, связанных с пользовательским вводом, упоминает использование алгоритма обратного следования на конкретных веб-приложениях, разработанных для тестирования безопасности.
finixbit.github.io
Finixbit - site/blog
👍7❤3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
🗄 ACID в контексте транзакции базы данных: наглядная демонстрация от ByteByteGo (Alex Xu)
🔹 Atomicity (атомарность) гарантирует, что каждая транзакция будет выполнена полностью или не будет выполнена совсем. Не допускаются промежуточные состояния.
🔹 Consistency (согласованность). Благодаря тому, что транзакция не допускает промежуточных результатов, БД остается консистентной. Есть такое определение транзакции: «Упорядоченное множество операций, переводящих базу данных из одного согласованного состояния в другое». То есть до выполнения операции и после БД остается консистентной (согласованной).
🔹 Isolation (изолированность). Во время выполнения транзакции параллельные транзакции не должны оказывать влияния на ее результат.
🔹 Durability (надежность). Если пользователь получил подтверждение от системы о выполнении транзакции, он может быть уверен, что сделанные им изменения не будут отменены из-за какого-либо сбоя.
#вопросы_с_собесов
🔹 Atomicity (атомарность) гарантирует, что каждая транзакция будет выполнена полностью или не будет выполнена совсем. Не допускаются промежуточные состояния.
🔹 Consistency (согласованность). Благодаря тому, что транзакция не допускает промежуточных результатов, БД остается консистентной. Есть такое определение транзакции: «Упорядоченное множество операций, переводящих базу данных из одного согласованного состояния в другое». То есть до выполнения операции и после БД остается консистентной (согласованной).
🔹 Isolation (изолированность). Во время выполнения транзакции параллельные транзакции не должны оказывать влияния на ее результат.
🔹 Durability (надежность). Если пользователь получил подтверждение от системы о выполнении транзакции, он может быть уверен, что сделанные им изменения не будут отменены из-за какого-либо сбоя.
#вопросы_с_собесов
👍14🔥2😁2❤1🥱1
🚀Мотивацией работы с обширным базовым набором PHPStan в существующих проектах, особенно когда есть ограничения бюджета, является постепенное улучшение качества кода путем внедрения статического анализа в рабочий процесс.
🔄Процесс включает в себя настройку phpstan-baseline-analysis для отслеживания распределения ошибок в проекте и прогресса. Сгенерированные числа затем используются для создания отчетов о тенденциях для команды разработки.
🛠️Важность фильтрации базовых ошибок для сосредоточенной работы над конкретными областями улучшения заключается в том, что с phpstan-baseline-analysis версии 0.12.4 инструмент позволяет фильтровать ошибки по классам. Это позволяет разработчикам ориентироваться на определенные типы ошибок, такие как те, которые связаны с недопустимыми PHPDoc. Вводится инструмент phpstan-baseline-filter для облегчения этого процесса. Он может исключать или включать определенные классы ошибок из базового набора, что позволяет разработчикам решать проблемы поэтапно. Примеры использования инструмента phpstan-baseline-filter, включая команды для исключения или включения определенных классов ошибок показаны далее. Доступные ключи фильтра включают Classes-Cognitive-Complexity, Deprecations, Invalid-Phpdocs, Unknown-Types, Anonymous-Variables и Unused-Symbols . Предлагается использовать этот подход для установления приоритетов и решения проблем в зависимости от фокуса команды и потребностей проекта.
🔄Процесс включает в себя настройку phpstan-baseline-analysis для отслеживания распределения ошибок в проекте и прогресса. Сгенерированные числа затем используются для создания отчетов о тенденциях для команды разработки.
🛠️Важность фильтрации базовых ошибок для сосредоточенной работы над конкретными областями улучшения заключается в том, что с phpstan-baseline-analysis версии 0.12.4 инструмент позволяет фильтровать ошибки по классам. Это позволяет разработчикам ориентироваться на определенные типы ошибок, такие как те, которые связаны с недопустимыми PHPDoc. Вводится инструмент phpstan-baseline-filter для облегчения этого процесса. Он может исключать или включать определенные классы ошибок из базового набора, что позволяет разработчикам решать проблемы поэтапно. Примеры использования инструмента phpstan-baseline-filter, включая команды для исключения или включения определенных классов ошибок показаны далее. Доступные ключи фильтра включают Classes-Cognitive-Complexity, Deprecations, Invalid-Phpdocs, Unknown-Types, Anonymous-Variables и Unused-Symbols . Предлагается использовать этот подход для установления приоритетов и решения проблем в зависимости от фокуса команды и потребностей проекта.
My developer experience
PHPStan baseline filter
Having a week off from my primary job, means more time for my opensource projects :-).
👍4❤1
🧠Чему вы бы хотели научиться?
Расскажите нам о ваших пожеланиях: какие навыки вы хотели бы прокачать в ближайшее время или какую профессию хотели бы приобрести?
За прохождение опроса вы получите промокод на скидку 15% на все наши курсы до конца 2024 года.
👉Опрос по ссылке👈
Расскажите нам о ваших пожеланиях: какие навыки вы хотели бы прокачать в ближайшее время или какую профессию хотели бы приобрести?
За прохождение опроса вы получите промокод на скидку 15% на все наши курсы до конца 2024 года.
👉Опрос по ссылке👈
😁6👏2❤1👍1🌚1
Какие еще ЯПы кроме PHP знаете/изучали?
🌚8❤2
Как выполнять команды Laravel Artisan с использованием эндпоинтов
При развертывании приложений Laravel иногда нам необходимо выполнять команды на стороне сервера для таких задач, как миграция базы данных, очистка кэша или другие важные процессы.
Вместо традиционного подхода через cPanel или SSH можно создать API-эндпоинт для обработки команд, таких как миграции базы данных или очистка кеша.
Шаги:
1️⃣Создание контроллера (например, CommandController) с помощью Artisan.
2️⃣Добавление маршрута в Api routes для обработки API-запроса к созданному контроллеру.
3️⃣В контроллере создание метода runCommand, который выполняет Artisan-команду, используя переданную команду в API-запросе, и возвращает результат выполнения.
4️⃣Для безопасности API-точки создание Middleware (например, DebugModeOnly), которое позволяет выполнение команд только в режиме отладки. Регистрация Middleware в ядре приложения.
5️⃣Присвоение Middleware к созданному маршруту в Api.php.
При развертывании приложений Laravel иногда нам необходимо выполнять команды на стороне сервера для таких задач, как миграция базы данных, очистка кэша или другие важные процессы.
Вместо традиционного подхода через cPanel или SSH можно создать API-эндпоинт для обработки команд, таких как миграции базы данных или очистка кеша.
Шаги:
1️⃣Создание контроллера (например, CommandController) с помощью Artisan.
2️⃣Добавление маршрута в Api routes для обработки API-запроса к созданному контроллеру.
3️⃣В контроллере создание метода runCommand, который выполняет Artisan-команду, используя переданную команду в API-запросе, и возвращает результат выполнения.
4️⃣Для безопасности API-точки создание Middleware (например, DebugModeOnly), которое позволяет выполнение команд только в режиме отладки. Регистрация Middleware в ядре приложения.
5️⃣Присвоение Middleware к созданному маршруту в Api.php.
DEV Community
How to Execute Laravel Artisan Commands Using an API Endpoint
In Laravel application deployment, sometimes we need to execute server-side commands for tasks like...
👍9🎉2❤1
Что означает сложность алгоритма?
Сложность алгоритма представляет собой меру его эффективности и определяет количество ресурсов, таких как время и память, необходимых для его выполнения.
Существуют два основных типа сложности алгоритма: временная сложность и пространственная сложность.
Временная сложность алгоритма оценивает время, необходимое для его выполнения, в зависимости от размера входных данных. Обычно время выполнения алгоритма измеряется в тактах процессора или в секундах. Примеры временной сложности включают константную сложность O(1) (выполнение за постоянное время), линейную сложность O(n) (выполнение занимает время, пропорциональное размеру входных данных) и квадратичную сложность O(n^2) (выполнение занимает время, пропорциональное квадрату размера входных данных).
Пространственная сложность алгоритма оценивает объем памяти, необходимый для его выполнения, в зависимости от размера входных данных. Обычно пространственная сложность измеряется в байтах. Примеры пространственной сложности включают константную сложность O(1) (не зависит от размера входных данных), линейную сложность O(n) (потребляет память, пропорционально размеру входных данных) и квадратичную сложность O(n^2) (потребляет память, пропорционально квадрату размера входных данных).
#вопросы_с_собеседований
Сложность алгоритма представляет собой меру его эффективности и определяет количество ресурсов, таких как время и память, необходимых для его выполнения.
Существуют два основных типа сложности алгоритма: временная сложность и пространственная сложность.
Временная сложность алгоритма оценивает время, необходимое для его выполнения, в зависимости от размера входных данных. Обычно время выполнения алгоритма измеряется в тактах процессора или в секундах. Примеры временной сложности включают константную сложность O(1) (выполнение за постоянное время), линейную сложность O(n) (выполнение занимает время, пропорциональное размеру входных данных) и квадратичную сложность O(n^2) (выполнение занимает время, пропорциональное квадрату размера входных данных).
Пространственная сложность алгоритма оценивает объем памяти, необходимый для его выполнения, в зависимости от размера входных данных. Обычно пространственная сложность измеряется в байтах. Примеры пространственной сложности включают константную сложность O(1) (не зависит от размера входных данных), линейную сложность O(n) (потребляет память, пропорционально размеру входных данных) и квадратичную сложность O(n^2) (потребляет память, пропорционально квадрату размера входных данных).
#вопросы_с_собеседований
👍11🔥3❤2😁2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in the widget
VIEW IN TELEGRAM
🎉18🥱4
Использование stdClass в PHP
stdClass в PHP предоставляет возможность создавать объекты динамически без явно определенной структуры класса. Вот несколько сценариев, когда stdClass может быть полезен:
✔️Динамическое создание объектов:
stdClass позволяет создавать объекты без ограничений, связанных с определенной структурой класса, что идеально подходит для хранения произвольных данных.
✔️Работа с JSON:
stdClass удобен при декодировании JSON-строк в объекты PHP с использованием json_decode, особенно при работе с динамическими JSON-структурами.
✔️Взаимодействие с динамическими данными:
stdClass упрощает присвоение свойств для обработки данных из внешних источников, таких как API, где структура данных может изменяться.
✔️Динамический возврат объектов:
Функции или методы могут легко возвращать динамические объекты с использованием stdClass.
Однако, стоит учесть, что stdClass предоставляет гибкость для создания объектов на лету, но не обладает той же надежностью, что и классы в объектно-ориентированном программировании.
stdClass в PHP предоставляет возможность создавать объекты динамически без явно определенной структуры класса. Вот несколько сценариев, когда stdClass может быть полезен:
✔️Динамическое создание объектов:
stdClass позволяет создавать объекты без ограничений, связанных с определенной структурой класса, что идеально подходит для хранения произвольных данных.
✔️Работа с JSON:
stdClass удобен при декодировании JSON-строк в объекты PHP с использованием json_decode, особенно при работе с динамическими JSON-структурами.
✔️Взаимодействие с динамическими данными:
stdClass упрощает присвоение свойств для обработки данных из внешних источников, таких как API, где структура данных может изменяться.
✔️Динамический возврат объектов:
Функции или методы могут легко возвращать динамические объекты с использованием stdClass.
Однако, стоит учесть, что stdClass предоставляет гибкость для создания объектов на лету, но не обладает той же надежностью, что и классы в объектно-ориентированном программировании.
DEV Community
Exploring stdClass in PHP
Ever encountered scenarios in PHP where creating objects dynamically without adhering to a predefined...
🌚8👏6❤2😁2🎉2
Собираетесь ли вы развиваться и заниматься программированием на новогодних праздниках? Что именно будете делать?
Anonymous Poll
22%
Попробую освоить новые инструменты и подходы к разработке
1%
Приму участие в хакатонах
2%
Посмотрю фильмы и сериалы про IT
31%
Поработаю над собственными проектами — добавлю новую функциональность
33%
Почитаю книги и статьи по программированию — расширю кругозор
56%
Просто отдохну и наберусь сил
❤1
Как легко создать PDF-файл из HTML в Symfony с помощью WeasyPrint
Те разработчики, которые сталкивались с созданием PDF-документа, понимают, почему другие разработчики избегают работы с ним.🧐
🔍Snappy и wkhtmltopdf, рекомендуемые инструменты для Symfony, но они имеют свои ограничения, такие как устаревшие движки и проблемы безопасности.
🐍WeasyPrint описывается как решение на основе Python, создающее PDF-документы из HTML с сильной поддержкой пагинации и соблюдением веб-стандартов для печати.
🔑Ключевые особенности WeasyPrint включают поддержку пагинации📃, создание документов высокого качества, включая документы PDF/A, закладки, гиперссылки, векторные изображения и базовую поддержку форм PDF. 🚨В статье подчеркивается важность рассмотрения мер безопасности при работе с пользовательскими вводами.
🛠️Приводится практический пример, демонстрирующий, как рендерить HTML с использованием Twig-шаблонов в приложении Symfony и генерировать PDF с использованием WeasyPrint.
Те разработчики, которые сталкивались с созданием PDF-документа, понимают, почему другие разработчики избегают работы с ним.🧐
🔍Snappy и wkhtmltopdf, рекомендуемые инструменты для Symfony, но они имеют свои ограничения, такие как устаревшие движки и проблемы безопасности.
🐍WeasyPrint описывается как решение на основе Python, создающее PDF-документы из HTML с сильной поддержкой пагинации и соблюдением веб-стандартов для печати.
🔑Ключевые особенности WeasyPrint включают поддержку пагинации📃, создание документов высокого качества, включая документы PDF/A, закладки, гиперссылки, векторные изображения и базовую поддержку форм PDF. 🚨В статье подчеркивается важность рассмотрения мер безопасности при работе с пользовательскими вводами.
🛠️Приводится практический пример, демонстрирующий, как рендерить HTML с использованием Twig-шаблонов в приложении Symfony и генерировать PDF с использованием WeasyPrint.
DEV Community
How to Simply Generate a PDF From HTML in Symfony With WeasyPrint
A thousand PDF generation solutions, but which one to choose? Recently, I was faced with a...
👍3❤1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Подборка лучших статей «Библиотеки программиста» за ноябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
🗺️ Дорожная карта Go-разработчика в 2023 году
🧑💻 6 карьерных советов программисту
⚖️ 25 курсов, книг и подкастов для развития критического мышления
🐍🎨 Генерация красивых QR-кодов с помощью Python
🔈16+ лучших нейронок для синтеза речи
⭐ FAQ по трудоустройству: разбираем самые популярные вопросы
👨💻 7 типов «сложных» разработчиков
∞ Дорожная карта DevOps-инженера в 2023 году
❤️🙏 Путь к мечте: как инвалидность не помешала стать разработчиком и продолжить борьбу за здоровье
👀 6 способов привлечь внимание работодателя
🤖📜 Искусственный интеллект: краткая история
🔤 Азбука SQL в примерах (часть 1 + часть 2)
🔢 Как научиться решать сложные задачи
🏆 Самые популярные языки программирования 2023
📰❌ 10 признаков фейковой вакансии
🏃 Самоучитель по Go для начинающих (часть 1 + часть 2)
⚛️ 45 вопросов для подготовки к собеседованию по React
🐍 5 задач для подготовки к собеседованию по Python
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
🗺️ Дорожная карта Go-разработчика в 2023 году
🧑💻 6 карьерных советов программисту
⚖️ 25 курсов, книг и подкастов для развития критического мышления
🐍🎨 Генерация красивых QR-кодов с помощью Python
🔈16+ лучших нейронок для синтеза речи
⭐ FAQ по трудоустройству: разбираем самые популярные вопросы
👨💻 7 типов «сложных» разработчиков
∞ Дорожная карта DevOps-инженера в 2023 году
❤️🙏 Путь к мечте: как инвалидность не помешала стать разработчиком и продолжить борьбу за здоровье
👀 6 способов привлечь внимание работодателя
🤖📜 Искусственный интеллект: краткая история
🔤 Азбука SQL в примерах (часть 1 + часть 2)
🔢 Как научиться решать сложные задачи
🏆 Самые популярные языки программирования 2023
📰❌ 10 признаков фейковой вакансии
🏃 Самоучитель по Go для начинающих (часть 1 + часть 2)
⚛️ 45 вопросов для подготовки к собеседованию по React
🐍 5 задач для подготовки к собеседованию по Python
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
🔥5❤1👍1🎉1
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
👍4❤3🥱1
Как реализовать простую очередь в Symfony
Реализация простой системы очередей в Symfony с использованием компонента Messenger и Redis в качестве транспортного уровня включает несколько шагов:
1️⃣Установка необходимых пакетов: Используйте Composer для установки компонента Symfony Messenger и адаптера Redis.
2️⃣Настройка транспорта: Настройте подключение к серверу Redis в файле .env, указав расположение сервера и желаемое имя очереди.
3️⃣Создание сообщения и обработчика: Используйте команды Symfony console для создания классов сообщения и соответствующего обработчика. Эти классы представляют данные для отправки и логику, которая будет выполнена при получении сообщения.
4️⃣Маршрутизация сообщения к транспорту: Настройте компонент Messenger для связывания класса сообщения с желаемым транспортом в файле messenger.yaml.
5️⃣Отправка сообщения: Используйте службу MessageBusInterface для отправки сообщений из различных частей приложения, таких как контроллеры или службы.
6️⃣Получение сообщения: Используйте команду messenger:consume, чтобы запустить рабочий процесс, прослушивающий указанный транспорт и выполняющий соответствующий обработчик. Можно запускать несколько рабочих процессов параллельно для увеличения пропускной способности.
Особенность компонента Messenger заключается в гибкости, позволяющей реализовывать различные паттерны обмена сообщениями и использовать различные транспорты помимо Redis, такие как AMQP, Doctrine, Amazon SQS, Google Pub/Sub и др.
Реализация простой системы очередей в Symfony с использованием компонента Messenger и Redis в качестве транспортного уровня включает несколько шагов:
1️⃣Установка необходимых пакетов: Используйте Composer для установки компонента Symfony Messenger и адаптера Redis.
2️⃣Настройка транспорта: Настройте подключение к серверу Redis в файле .env, указав расположение сервера и желаемое имя очереди.
3️⃣Создание сообщения и обработчика: Используйте команды Symfony console для создания классов сообщения и соответствующего обработчика. Эти классы представляют данные для отправки и логику, которая будет выполнена при получении сообщения.
4️⃣Маршрутизация сообщения к транспорту: Настройте компонент Messenger для связывания класса сообщения с желаемым транспортом в файле messenger.yaml.
5️⃣Отправка сообщения: Используйте службу MessageBusInterface для отправки сообщений из различных частей приложения, таких как контроллеры или службы.
6️⃣Получение сообщения: Используйте команду messenger:consume, чтобы запустить рабочий процесс, прослушивающий указанный транспорт и выполняющий соответствующий обработчик. Можно запускать несколько рабочих процессов параллельно для увеличения пропускной способности.
Особенность компонента Messenger заключается в гибкости, позволяющей реализовывать различные паттерны обмена сообщениями и использовать различные транспорты помимо Redis, такие как AMQP, Doctrine, Amazon SQS, Google Pub/Sub и др.
DEV Community
How to Implement a Simple Queue in Symfony
Symfony is a popular PHP framework that provides many features and components to create web...
👍7😁3❤2