Какова разница между «cookie» и «session»?
В PHP «cookie» и «session» — это механизмы управления состоянием в веб-приложениях, но они служат немного разным целям:
Cookie:
Куки — это небольшие фрагменты данных, которые отправляются с веб-сервера на веб-браузер пользователя и хранятся локально на компьютере пользователя.
Куки обычно используются для хранения информации, специфичной для пользователя, такой как учетные данные для входа, предпочтения или элементы корзины покупок.
Они часто используются для отслеживания поведения пользователя и персонализации пользовательского опыта.
У куки может быть время истечения, после которого они автоматически удаляются из браузера пользователя.
Session:
Сессия — это способ хранения информации о пользователе на протяжении нескольких страниц или запросов в рамках одного посещения веб-сайта.
В отличие от куки, которые хранятся на компьютере пользователя, данные сессии хранятся на сервере.
Сессии обычно используются для поддержания аутентификации пользователя и для хранения временной информации, связанной с взаимодействием пользователя с веб-сайтом.
Сессии часто реализуются с помощью уникального идентификатора, называемого идентификатором сессии, который передается между сервером и клиентом для ассоциирования последующих запросов с той же сессией.
#вопросы_с_собеседований
В PHP «cookie» и «session» — это механизмы управления состоянием в веб-приложениях, но они служат немного разным целям:
Cookie:
Куки — это небольшие фрагменты данных, которые отправляются с веб-сервера на веб-браузер пользователя и хранятся локально на компьютере пользователя.
Куки обычно используются для хранения информации, специфичной для пользователя, такой как учетные данные для входа, предпочтения или элементы корзины покупок.
Они часто используются для отслеживания поведения пользователя и персонализации пользовательского опыта.
У куки может быть время истечения, после которого они автоматически удаляются из браузера пользователя.
Session:
Сессия — это способ хранения информации о пользователе на протяжении нескольких страниц или запросов в рамках одного посещения веб-сайта.
В отличие от куки, которые хранятся на компьютере пользователя, данные сессии хранятся на сервере.
Сессии обычно используются для поддержания аутентификации пользователя и для хранения временной информации, связанной с взаимодействием пользователя с веб-сайтом.
Сессии часто реализуются с помощью уникального идентификатора, называемого идентификатором сессии, который передается между сервером и клиентом для ассоциирования последующих запросов с той же сессией.
#вопросы_с_собеседований
👍13😁4❤2
Подготовка Symfony-приложения для Swoole, RoadRunner, and FrankenPHP (без использования ИИ)
📝 Проблема:
🔄 Модели разделения памяти:
Модель «Shared Nothing» и модель «Shared Memory». Обычно в PHP-приложениях используется модель «Shared Nothing», где каждый запрос обрабатывается отдельным PHP-процессом, и между запросами не происходит обмена памятью.
⚠️ Непредвиденные эффекты:
С появлением решений типа Swoole, RoadRunner и FrankenPHP, которые используют модель «Shared Memory», возникают некоторые непредвиденные проблемы. Эти решения позволяют разделять память между различными запросами внутри одного рабочего процесса, что приводит к улучшению производительности, но может вызывать неожиданные побочные эффекты, так как состояние между запросами сохраняется.
🔧 Решение:
Представлен пример кода на Symfony 7.0, где демонстрируется проблема с сохранением состояния между запросами. Это приводит к неправильному поведению при использовании модели «Shared Memory». Для исправления проблемы предлагается использовать инструмент статического анализа кода phanalist, который проверяет, являются ли сервисы в приложении состояний или неизменяемыми. Также предлагается использовать интерфейс ResetInterface в Symfony для обнуления состояния сервисов между запросами.
📝 Проблема:
🔄 Модели разделения памяти:
Модель «Shared Nothing» и модель «Shared Memory». Обычно в PHP-приложениях используется модель «Shared Nothing», где каждый запрос обрабатывается отдельным PHP-процессом, и между запросами не происходит обмена памятью.
⚠️ Непредвиденные эффекты:
С появлением решений типа Swoole, RoadRunner и FrankenPHP, которые используют модель «Shared Memory», возникают некоторые непредвиденные проблемы. Эти решения позволяют разделять память между различными запросами внутри одного рабочего процесса, что приводит к улучшению производительности, но может вызывать неожиданные побочные эффекты, так как состояние между запросами сохраняется.
🔧 Решение:
Представлен пример кода на Symfony 7.0, где демонстрируется проблема с сохранением состояния между запросами. Это приводит к неправильному поведению при использовании модели «Shared Memory». Для исправления проблемы предлагается использовать инструмент статического анализа кода phanalist, который проверяет, являются ли сервисы в приложении состояний или неизменяемыми. Также предлагается использовать интерфейс ResetInterface в Symfony для обнуления состояния сервисов между запросами.
❤8👍1
«Мы пилили монолит — много нас, а он один». Полезные советы от команды Яндекс Еды
Рассказ начинается с краткой истории сервиса, подчеркивая ее эволюцию от стартапа в 2015 году до крупного монолита к 2023 году. Решение отказаться от монолита было обусловлено различными проблемами, такими как отсутствие экспертизы, проблемы с релизами, сложность кода, размытые ответственности и трудности с локальным развертыванием.
Подчеркивается важность подготовки перед началом перехода. Они описывают общие трудности, с которыми сталкиваются при таких переходах, включая необходимость рефакторинга значительных частей кода, отсоединения объектов базы данных, поддержания совместимости API, обеспечения однородного функционирования и наличия планов на случай отката.
Для обеспечения успешного перехода команда реализовала различные меры. Они включали написание модульных и приемочных тестов, использование строгих линтеров, создание клиентов на основе файлов YAML, создание инструментов для контролируемого переключения и настройку панелей логирования и метрик для мониторинга производительности.
Затем автор подробно рассматривает конкретные инструменты и подходы, используемые во время перехода:
1️⃣Auth-proxy: Сервис шлюза API, ответственный за авторизацию пользователей и маршрутизацию запросов к соответствующим микросервисам. Он позволяет постепенно перенаправлять трафик от монолита к новым сервисам.
2️⃣API-proxy: Фасадный сервис для интеграции микросервисов. Применяются различные варианты переключения трафика, включая постепенное перенаправление трафика от монолита к новым сервисам при обеспечении идентичных ответов.
3️⃣Сервис экспериментов: Сервис, который делит пользовательские запросы на группы на основе параметров запроса, позволяя контролируемо экспериментировать с новой функциональностью.
Автор также обсуждает использование стратегий, особенно паттерна Стратегии, для переноса функциональности из монолита в микросервисы. Каждая стратегия представляет собой различный этап процесса перехода, от прямого доступа к базе данных до полной интеграции сервиса.
Предоставляются несколько примеров, чтобы проиллюстрировать процесс перехода, такие как миграция отправки уведомлений, информации о стране, управления пользователями и конечной точки для получения предложений.
Рассказ начинается с краткой истории сервиса, подчеркивая ее эволюцию от стартапа в 2015 году до крупного монолита к 2023 году. Решение отказаться от монолита было обусловлено различными проблемами, такими как отсутствие экспертизы, проблемы с релизами, сложность кода, размытые ответственности и трудности с локальным развертыванием.
Подчеркивается важность подготовки перед началом перехода. Они описывают общие трудности, с которыми сталкиваются при таких переходах, включая необходимость рефакторинга значительных частей кода, отсоединения объектов базы данных, поддержания совместимости API, обеспечения однородного функционирования и наличия планов на случай отката.
Для обеспечения успешного перехода команда реализовала различные меры. Они включали написание модульных и приемочных тестов, использование строгих линтеров, создание клиентов на основе файлов YAML, создание инструментов для контролируемого переключения и настройку панелей логирования и метрик для мониторинга производительности.
Затем автор подробно рассматривает конкретные инструменты и подходы, используемые во время перехода:
1️⃣Auth-proxy: Сервис шлюза API, ответственный за авторизацию пользователей и маршрутизацию запросов к соответствующим микросервисам. Он позволяет постепенно перенаправлять трафик от монолита к новым сервисам.
2️⃣API-proxy: Фасадный сервис для интеграции микросервисов. Применяются различные варианты переключения трафика, включая постепенное перенаправление трафика от монолита к новым сервисам при обеспечении идентичных ответов.
3️⃣Сервис экспериментов: Сервис, который делит пользовательские запросы на группы на основе параметров запроса, позволяя контролируемо экспериментировать с новой функциональностью.
Автор также обсуждает использование стратегий, особенно паттерна Стратегии, для переноса функциональности из монолита в микросервисы. Каждая стратегия представляет собой различный этап процесса перехода, от прямого доступа к базе данных до полной интеграции сервиса.
Предоставляются несколько примеров, чтобы проиллюстрировать процесс перехода, такие как миграция отправки уведомлений, информации о стране, управления пользователями и конечной точки для получения предложений.
🥱4❤3👍1🔥1😁1
10 повседневных ошибок PHP
Здесь рассказывается о важности обработки ошибок в PHP и предлагает подробный обзор наиболее распространенных типов ошибок и способов их обработки. Описаны такие типы ошибок, как PHP ParseError, DivisionByZeroError, TypeError, UnexpectedValueException, PDOException, RuntimeException, InvalidArgumentException, LogicException, ArithmeticError и Exceptions, а также предоставлены практические советы и методы их обработки.
Далее статья рассказывает о преимуществах использования инструментов для мониторинга и отладки ошибок в PHP, таких как Zipy, и предоставляет рекомендации по интеграции таких инструментов в разработку.
Общими советами для эффективной обработки ошибок в PHP являются включение отчетов об ошибках и ведение логов, использование правильных техник обработки исключений, тщательная отладка и поддержание чистого и хорошо структурированного кода.
Здесь рассказывается о важности обработки ошибок в PHP и предлагает подробный обзор наиболее распространенных типов ошибок и способов их обработки. Описаны такие типы ошибок, как PHP ParseError, DivisionByZeroError, TypeError, UnexpectedValueException, PDOException, RuntimeException, InvalidArgumentException, LogicException, ArithmeticError и Exceptions, а также предоставлены практические советы и методы их обработки.
Далее статья рассказывает о преимуществах использования инструментов для мониторинга и отладки ошибок в PHP, таких как Zipy, и предоставляет рекомендации по интеграции таких инструментов в разработку.
Общими советами для эффективной обработки ошибок в PHP являются включение отчетов об ошибках и ведение логов, использование правильных техник обработки исключений, тщательная отладка и поддержание чистого и хорошо структурированного кода.
DEV Community
10 everyday PHP errors and their fixes: A definitive guide on PHP debugging
Karthik MSN ~ 8 min read | Published on Mar 04, 2024 TABLE OF CONTENT Introduction What are PHP...
❤4🌚2🥱1
У вас было такое, что весь рабочий день занимались текущими задачами, а вечером возникало чувство, будто ничего не сделали? Если было, то как вы с этим боролись?
Anonymous Poll
20%
Поставлю значимые дела на первую половину дня
8%
Разберусь, какие задачи можно делегировать
17%
Смерюсь, ведь так работают все
26%
Да пофиг — главное работа есть
1%
Свой вариант (напишу в комментарии)
28%
Посмотреть результаты
🥰5👍1
Coolify
Это open-source альтернатива Heroku / NetLify / Vercel / и т. д.
Он помогает вам управлять своими серверами, приложениями, базами данных на вашем собственном оборудовании, все, что вам нужно, это SSH-соединение. Вы можете управлять VPS, Raspberry Pi и так далее.
Это open-source альтернатива Heroku / NetLify / Vercel / и т. д.
Он помогает вам управлять своими серверами, приложениями, базами данных на вашем собственном оборудовании, все, что вам нужно, это SSH-соединение. Вы можете управлять VPS, Raspberry Pi и так далее.
GitHub
GitHub - coollabsio/coolify: An open-source & self-hostable Heroku / Netlify / Vercel alternative.
An open-source & self-hostable Heroku / Netlify / Vercel alternative. - coollabsio/coolify
👍2
Существуют определенные проблемы, связанные с традиционным моделью запрос-ответ в веб-разработке, поэтому здесь предлагается альтернативное решение, основанное на использовании ReactPHP для асинхронного выполнения PHP-кода.
В начале описывается привычная схема работы сервера: он выполняет задачу по запросу клиента и завершает свою работу после отправки ответа. Однако, когда количество одновременных запросов становится значительным, сервер может столкнуться с проблемой ограниченности производительности, особенно в случае выполнения медленных задач ввода-вывода (I/O), таких как обращение к базе данных.
Затем вводится понятие ReactPHP — библиотеки, позволяющей выполнять PHP-код асинхронно, подобно Go или Node.js. Эта библиотека не требует сложной установки и позволяет решить проблему блокировки сервера на медленных операциях I/O.
Здесь объясняется архитектура на основе событий, которая лежит в основе ReactPHP. Она предполагает создание бесконечного цикла, который ожидает событий и обрабатывает их. Затем приводится примеры использования таймеров, потоков (streams), обещаний (promises) и дочерних процессов (child processes) в ReactPHP для выполнения различных асинхронных задач, таких как чтение файлов, обработка HTTP-запросов и выполнение внешних команд.
Наконец, статья показывает, как использовать ReactPHP для обработки загрузки файлов в проекте Laravel. Она объясняет, как создать отдельный сервер на ReactPHP, который будет обрабатывать эти запросы асинхронно, в то время как основное приложение Laravel будет продолжать работать как обычно.
В начале описывается привычная схема работы сервера: он выполняет задачу по запросу клиента и завершает свою работу после отправки ответа. Однако, когда количество одновременных запросов становится значительным, сервер может столкнуться с проблемой ограниченности производительности, особенно в случае выполнения медленных задач ввода-вывода (I/O), таких как обращение к базе данных.
Затем вводится понятие ReactPHP — библиотеки, позволяющей выполнять PHP-код асинхронно, подобно Go или Node.js. Эта библиотека не требует сложной установки и позволяет решить проблему блокировки сервера на медленных операциях I/O.
Здесь объясняется архитектура на основе событий, которая лежит в основе ReactPHP. Она предполагает создание бесконечного цикла, который ожидает событий и обрабатывает их. Затем приводится примеры использования таймеров, потоков (streams), обещаний (promises) и дочерних процессов (child processes) в ReactPHP для выполнения различных асинхронных задач, таких как чтение файлов, обработка HTTP-запросов и выполнение внешних команд.
Наконец, статья показывает, как использовать ReactPHP для обработки загрузки файлов в проекте Laravel. Она объясняет, как создать отдельный сервер на ReactPHP, который будет обрабатывать эти запросы асинхронно, в то время как основное приложение Laravel будет продолжать работать как обычно.
DEV Community
Getting started with asynchronous PHP using ReactPHP
This article was originally written by Wern Ancheta on the Honeybadger Developer Blog. As web...
👍7
Анемичная модель предметной области и логика в сервисах
Анемичная модель предметной области (Anemic domain model) это такая модель, где сущности содержат только свойства, а бизнес-логика находится в сервисах. Ее противоположность это богатая модель предметной области (Rich domain model), где логика находится в сущностях, а cервиcы рекомендуют писать только в редких случаях.
В этой статье показано, почему логика в сервисах является более правильным подходом. Рассмотрим пример бизнес-требований и их реализацию с Anemic domain model.
Анемичная модель предметной области (Anemic domain model) это такая модель, где сущности содержат только свойства, а бизнес-логика находится в сервисах. Ее противоположность это богатая модель предметной области (Rich domain model), где логика находится в сущностях, а cервиcы рекомендуют писать только в редких случаях.
В этой статье показано, почему логика в сервисах является более правильным подходом. Рассмотрим пример бизнес-требований и их реализацию с Anemic domain model.
Хабр
Анемичная модель предметной области и логика в сервисах
Анемичная модель предметной области (Anemic domain model) это такая модель, где сущности содержат только свойства, а бизнес-логика находится в сервисах. Ее противоположность это богатая модель...
👍4😁3
Сокращение нагрузки процессора PHP почти на 40% за счет обновления с Ubuntu 20.04 до 22.04
Команда разработчиков заметила, что после обновления Ubuntu 20.04 до 22.04 сама по себе уменьшилась нагрузка на ЦП следующим образом:
✔️Среднее использование ЦП на Ubuntu 20.04 LTS: 22.9%
✔️Среднее использование ЦП на Ubuntu 22.04 LTS: 13.2%
Это огромное снижение использования ЦП на 42% просто путем обновления операционной системы.
После этого было принято решение обновить остальные сервера и теория подтвердилась. Эти сервера используют Nginx & PHP-FPM, ничего более.
Посмотреть остальные результаты можно здесь.
Команда разработчиков заметила, что после обновления Ubuntu 20.04 до 22.04 сама по себе уменьшилась нагрузка на ЦП следующим образом:
✔️Среднее использование ЦП на Ubuntu 20.04 LTS: 22.9%
✔️Среднее использование ЦП на Ubuntu 22.04 LTS: 13.2%
Это огромное снижение использования ЦП на 42% просто путем обновления операционной системы.
После этого было принято решение обновить остальные сервера и теория подтвердилась. Эти сервера используют Nginx & PHP-FPM, ничего более.
Посмотреть остальные результаты можно здесь.
👍17🤔7👏6❤1🌚1
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
🔟 10 суровых истин, которые должен знать каждый джун
Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!
👉 Читать статью
👉 Зеркало
Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!
👉 Читать статью
👉 Зеркало
👍4🥰2
#дайджест новостей по PHP за неделю:
🔎PHP 8.3.4 и 8.2.17 выпущен! — Команда разработчиков PHP объявляет о немедленной доступности PHP 8.3.4. и 8.2.17. Это баг-фикс релиз.
🔎Laravel Herd выпускает v1.5.0 с новыми сервисами. — Laravel Herd v1.5 представляет новую захватывающую функцию: Services.
🔎Вышел Laravel 11 — Вот список нововведений
🔎Выпущен CakePHP 5.0.6 — Улучшения включают в себя: исправление проверки экземпляров Chronostime. Исправление дескриптора файла в stubconsoleinput и многое другое!
🔎Неделя Symfony #898 (11-17 марта 2024 г.)
🔎PHP 8.3.4 и 8.2.17 выпущен! — Команда разработчиков PHP объявляет о немедленной доступности PHP 8.3.4. и 8.2.17. Это баг-фикс релиз.
🔎Laravel Herd выпускает v1.5.0 с новыми сервисами. — Laravel Herd v1.5 представляет новую захватывающую функцию: Services.
🔎Вышел Laravel 11 — Вот список нововведений
🔎Выпущен CakePHP 5.0.6 — Улучшения включают в себя: исправление проверки экземпляров Chronostime. Исправление дескриптора файла в stubconsoleinput и многое другое!
🔎Неделя Symfony #898 (11-17 марта 2024 г.)
❤6
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
💬 Open Source по-русски: путь к технологической независимости или обочина прогресса?
Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.
Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.
👉 Ссылка на опрос 👈
Прохождение займёт примерно 4 минуты
Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.
Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.
👉 Ссылка на опрос 👈
Прохождение займёт примерно 4 минуты
👍2🌚1
Оптимизированные файлы конфигурации в Laravel 11
в Laravel 11 была проведена работа по оптимизации конфигурационных файлов, чтобы уменьшить шум и упростить процесс настройки приложения.
Было решено удалить все конфигурационные файлы из стандартной установки и вместо этого предоставить возможность добавить только те файлы и опции, которые действительно нужны. Это позволяет создавать более компактные и чистые конфигурационные файлы, что может упростить процесс разработки и поддержки приложения.
в Laravel 11 была проведена работа по оптимизации конфигурационных файлов, чтобы уменьшить шум и упростить процесс настройки приложения.
Было решено удалить все конфигурационные файлы из стандартной установки и вместо этого предоставить возможность добавить только те файлы и опции, которые действительно нужны. Это позволяет создавать более компактные и чистые конфигурационные файлы, что может упростить процесс разработки и поддержки приложения.
Laravel News
Laravel 11 streamlined configuration files - Laravel News
Understand how the new Laravel 11 streamlined config works
🥱7👏3🌚1
Магический API Resource в Laravel
В Laravel есть удобные API ресурсы, с которыми легко и приятно работать в области трансформации данных для ответа на запрос. Но что делать когда возникает необходимость изменить их структуру в соответствии с бизнес-потребностями? Рассказывается здесь!
В Laravel есть удобные API ресурсы, с которыми легко и приятно работать в области трансформации данных для ответа на запрос. Но что делать когда возникает необходимость изменить их структуру в соответствии с бизнес-потребностями? Рассказывается здесь!
Хабр
Магический API Resource в Laravel
В Laravel есть удобные API ресурсы , с которыми легко и приятно работать в области трансформации данных для ответа на запрос. Но что делать когда возникает необходимость изменить их структуру в...
👍7🥱3
phpy
Библиотека для соединения экосистем Python и PHP. Вы можете использовать функции и библиотеки Python в PHP или использовать пакеты PHP в Python.
Библиотека для соединения экосистем Python и PHP. Вы можете использовать функции и библиотеки Python в PHP или использовать пакеты PHP в Python.
GitHub
GitHub - swoole/phpy: Connecting the Python and PHP ecosystems together
Connecting the Python and PHP ecosystems together. Contribute to swoole/phpy development by creating an account on GitHub.
🤔13🥱5🔥1
Назовите 3-4 нормальные формы реляционных БД.
В реляционных базах данных, нормальные формы используются для оценки и улучшения структуры данных, чтобы минимизировать избыточность и аномалии данных. Вот некоторые из основных нормальных форм:
Первая нормальная форма (1NF): В этой форме все атрибуты в таблице являются атомарными, то есть каждая ячейка содержит только одно значение.
Вторая нормальная форма (2NF): Вторая нормальная форма требует, чтобы каждый неключевой атрибут полностью зависел от ключа, то есть не должно быть частичной зависимости.
Третья нормальная форма (3NF): В этой нормальной форме устраняются транзитивные зависимости. Это означает, что если A зависит от B, а B зависит от C, то A не должно зависеть от C.
Бойса-Кодда нормальная форма (BCNF): Это расширение третьей нормальной формы, которое гарантирует, что каждое неключевое поле зависит только от ключа целиком, а не от его части.
Эти нормальные формы представляют собой последовательные шаги в процессе нормализации, который помогает в проектировании эффективных и надежных реляционных баз данных.
#вопросы_с_собеседований
В реляционных базах данных, нормальные формы используются для оценки и улучшения структуры данных, чтобы минимизировать избыточность и аномалии данных. Вот некоторые из основных нормальных форм:
Первая нормальная форма (1NF): В этой форме все атрибуты в таблице являются атомарными, то есть каждая ячейка содержит только одно значение.
Вторая нормальная форма (2NF): Вторая нормальная форма требует, чтобы каждый неключевой атрибут полностью зависел от ключа, то есть не должно быть частичной зависимости.
Третья нормальная форма (3NF): В этой нормальной форме устраняются транзитивные зависимости. Это означает, что если A зависит от B, а B зависит от C, то A не должно зависеть от C.
Бойса-Кодда нормальная форма (BCNF): Это расширение третьей нормальной формы, которое гарантирует, что каждое неключевое поле зависит только от ключа целиком, а не от его части.
Эти нормальные формы представляют собой последовательные шаги в процессе нормализации, который помогает в проектировании эффективных и надежных реляционных баз данных.
#вопросы_с_собеседований
👍13❤1
Laravel Zero — создание TCP-сервера
🔍 Описание задачи:
Автор начинает, описывая цель: создание TCP-сервера для участия в ежегодном CTF. 🛡️ Команда выбирает Laravel Zero для разработки консольного приложения.
🌐 Основы TCP-серверов:
Объясняется, что TCP-серверы принципиально важны, а затем описывается процесс их работы и важность создания сервера для обработки входящих соединений от клиентов.
🚀 Создание сервера:
Здесь показано, как устанавливать Laravel Zero и Swoole и создавать команду для запуска сервера. Затем описываются этапы создания TCP-сервера с использованием событий Start, Connect, Receive и Close.
🖼️ Использование Blade и Tailwind CSS:
Автор обсуждает использование шаблонов Blade для форматирования логов и ответов сервера, а также применение Tailwind CSS для стилизации консольных приложений.
🔍 Описание задачи:
Автор начинает, описывая цель: создание TCP-сервера для участия в ежегодном CTF. 🛡️ Команда выбирает Laravel Zero для разработки консольного приложения.
🌐 Основы TCP-серверов:
Объясняется, что TCP-серверы принципиально важны, а затем описывается процесс их работы и важность создания сервера для обработки входящих соединений от клиентов.
🚀 Создание сервера:
Здесь показано, как устанавливать Laravel Zero и Swoole и создавать команду для запуска сервера. Затем описываются этапы создания TCP-сервера с использованием событий Start, Connect, Receive и Close.
🖼️ Использование Blade и Tailwind CSS:
Автор обсуждает использование шаблонов Blade для форматирования логов и ответов сервера, а также применение Tailwind CSS для стилизации консольных приложений.
👍7