Согласно данным Upgraded Points, каждый седьмой сотрудник на удаленке продуктивно работают лишь 3-4 часа в день. Люди не возвращаются в офисы, потому что у них есть возможность отдыхать дома.
Как вы считаете, люди правда тратят по 3-4 часа на работу?
Как вы считаете, люди правда тратят по 3-4 часа на работу?
👍42🌚5🤔3🥱3❤1
Искусство валидации в Laravel
Это обзор системы валидации в Laravel.
Здесь подробно рассматриваются различные техники и функциональности валидации, начиная с основных принципов и заканчивая более сложными сценариями.
Вы узнаете, как осуществлять базовую валидацию форм, настраивать пользовательские сообщения об ошибках, работать с массивами, проводить уникальную валидацию для полей, обрабатывать даты, создавать условные правила валидации, работать с файлами и многим другим.
Это обзор системы валидации в Laravel.
Здесь подробно рассматриваются различные техники и функциональности валидации, начиная с основных принципов и заканчивая более сложными сценариями.
Вы узнаете, как осуществлять базовую валидацию форм, настраивать пользовательские сообщения об ошибках, работать с массивами, проводить уникальную валидацию для полей, обрабатывать даты, создавать условные правила валидации, работать с файлами и многим другим.
DEV Community
The Art of Validation in Laravel: A Comprehensive Guide
Hello, Laravel community! In the realm of web development, proper data validation is key to ensuring...
🥱6👍3❤1
#дайджест новостей по PHP за неделю:
🔎Laravel 10.40 — с методом ограничения числа, помощником в стиле APA, настройкой пути к ресурсам Vite и многим другим. — Команда Laravel выпустила версию 10.40 с методом ограничения числа, помощником по строкам регистра заголовков в стиле APA, настройкой пути к активам Vite и бмногим другим.
🔎Неделя Symfony #889 (8–14 января 2024 г.) — На этой неделе деятельность разработчиков была сосредоточена на исправлении ошибок во всех поддерживаемых и будущих версиях Symfony.
🔎Bagisto выпустили новое мобильное приложение с открытым исходным кодом для продавцов. — Bagisto теперь имеет мобильное приложение с открытым исходным кодом для торговцев. Это позволяет вам легко запустить собственное мобильное приложение для вашего магазина. Вы можете легко настроить важные части, такие как заголовок приложения, заставку, значок приложения и многое другое.
🔎Filament: чего ожидать в 2024 году.
🔎Laravel 10.40 — с методом ограничения числа, помощником в стиле APA, настройкой пути к ресурсам Vite и многим другим. — Команда Laravel выпустила версию 10.40 с методом ограничения числа, помощником по строкам регистра заголовков в стиле APA, настройкой пути к активам Vite и бмногим другим.
🔎Неделя Symfony #889 (8–14 января 2024 г.) — На этой неделе деятельность разработчиков была сосредоточена на исправлении ошибок во всех поддерживаемых и будущих версиях Symfony.
🔎Bagisto выпустили новое мобильное приложение с открытым исходным кодом для продавцов. — Bagisto теперь имеет мобильное приложение с открытым исходным кодом для торговцев. Это позволяет вам легко запустить собственное мобильное приложение для вашего магазина. Вы можете легко настроить важные части, такие как заголовок приложения, заставку, значок приложения и многое другое.
🔎Filament: чего ожидать в 2024 году.
👍3❤1
Создание автономных двоичных файлов PHP-приложений с использованием статического PHP CLI
🚀В статье рассматривается использование Static PHP CLI (SPC) для преобразования проектов на PHP в отдельные исполняемые двоичные файлы, предоставляя пошаговое руководство на примере Laravel Zero.
SPC автоматизирует компиляцию PHP SAPI в статические двоичные файлы с учетом расширений, что позволяет создавать один двоичный файл со всеми зависимостями и настройками.
💡 Преимущества:
Независимость от установки PHP.
Улучшенная переносимость.
Более широкие возможности распространения.
Процесс включает создание приложения Laravel Zero, построение его в виде PHAR, подготовку и установку SPC, скачивание необходимых пакетов и компиляцию статических двоичных файлов.
❗Хотя этот метод предоставляет преимущества, такие как отсутствие зависимостей от установки PHP, у него есть недостатки:
Трудоемкий процесс.
Большие размеры двоичных файлов.
Ограничения по изменению исходного кода после компиляции.
Принятие этого метода иллюстрируется примерами, такими как Swoole CLI, Hyperf, Webman, Laravel Herd и FrankenPHP.
🚀В статье рассматривается использование Static PHP CLI (SPC) для преобразования проектов на PHP в отдельные исполняемые двоичные файлы, предоставляя пошаговое руководство на примере Laravel Zero.
SPC автоматизирует компиляцию PHP SAPI в статические двоичные файлы с учетом расширений, что позволяет создавать один двоичный файл со всеми зависимостями и настройками.
💡 Преимущества:
Независимость от установки PHP.
Улучшенная переносимость.
Более широкие возможности распространения.
Процесс включает создание приложения Laravel Zero, построение его в виде PHAR, подготовку и установку SPC, скачивание необходимых пакетов и компиляцию статических двоичных файлов.
❗Хотя этот метод предоставляет преимущества, такие как отсутствие зависимостей от установки PHP, у него есть недостатки:
Трудоемкий процесс.
Большие размеры двоичных файлов.
Ограничения по изменению исходного кода после компиляции.
Принятие этого метода иллюстрируется примерами, такими как Swoole CLI, Hyperf, Webman, Laravel Herd и FrankenPHP.
🔥5❤2
Создание автоматизированного конвейера документации на PHP с помощью Autodocs и GitHub Actions
Библиотека Autodocs предназначена для упрощения создания высококастомизируемых автоматизированных документаций на основе шаблонов Markdown. Совместно с приложением Minicli, она предоставляет уровень абстракции и структуру, на основе которых можно создавать собственную фабрику документации.
Этот проект создан, чтобы облегчить процесс поддержки документации для Chainguard Images, который теперь поддерживает более тысячи страниц документации в рамках рабочего процесса на основе GitHub с запусками каждую ночь.
Страницы определяются как классы, следующие определенному интерфейсу. Источники данных могут быть загружены автоматически как JSON-файлы кэша, что облегчает распределенные настройки, где данные поступают из различных источников. Этот распределенный подход упрощает интеграцию Autodocs с существующими рабочими процессами и конвейерами, особенно при использовании GitHub Actions.
Также включено пошаговое руководство по созданию демонстрационного приложения Autodocs для генерации персональных README-страниц на GitHub. Она включает следующие шаги:
1️⃣Создание демонстрационного приложения Minicli.
2️⃣Настройка опций Autodocs.
3️⃣Регистрация службы Autodocs.
4️⃣Создание команды сборки.
5️⃣Создание страницы документации.
6️⃣Запуск демонстрационного процесса с использованием GitHub Actions (необязательно).
Библиотека Autodocs предназначена для упрощения создания высококастомизируемых автоматизированных документаций на основе шаблонов Markdown. Совместно с приложением Minicli, она предоставляет уровень абстракции и структуру, на основе которых можно создавать собственную фабрику документации.
Этот проект создан, чтобы облегчить процесс поддержки документации для Chainguard Images, который теперь поддерживает более тысячи страниц документации в рамках рабочего процесса на основе GitHub с запусками каждую ночь.
Страницы определяются как классы, следующие определенному интерфейсу. Источники данных могут быть загружены автоматически как JSON-файлы кэша, что облегчает распределенные настройки, где данные поступают из различных источников. Этот распределенный подход упрощает интеграцию Autodocs с существующими рабочими процессами и конвейерами, особенно при использовании GitHub Actions.
Также включено пошаговое руководство по созданию демонстрационного приложения Autodocs для генерации персональных README-страниц на GitHub. Она включает следующие шаги:
1️⃣Создание демонстрационного приложения Minicli.
2️⃣Настройка опций Autodocs.
3️⃣Регистрация службы Autodocs.
4️⃣Создание команды сборки.
5️⃣Создание страницы документации.
6️⃣Запуск демонстрационного процесса с использованием GitHub Actions (необязательно).
DEV Community
Creating an Automated Documentation Pipeline in PHP with Autodocs and GitHub Actions
In this tutorial, learn how to create an automated documentation pipeline in PHP with Autodocs, Minicli, and GitHub Actions
👍6❤1
Как построить SaaS за выходные
SaaS расшифровывается как «Software as a Service» (Программное обеспечение как услуга). Это модель предоставления программного обеспечения, при которой приложения предоставляются через интернет на основе подписки. Вместо того чтобы пользователи устанавливали и обновляли программное обеспечение на своих компьютерах, они получают к нему доступ через веб-браузер.
Это подробное руководство о том, как быстро создать SaaS-приложение за выходные. В нем подчеркивается использование существующих шаблонов и инструментов для ускорения процесса разработки, позволяя фокусироваться на бизнес-логике и маркетинге.
Основные этапы включают выбор технологического стека, создание бизнес-логики, настройку биллинга, разработку документации, создание стартовой страницы и выбор хостинга. В конце подчеркивается важность маркетинга и продаж для успешного внедрения программного продукта.
SaaS расшифровывается как «Software as a Service» (Программное обеспечение как услуга). Это модель предоставления программного обеспечения, при которой приложения предоставляются через интернет на основе подписки. Вместо того чтобы пользователи устанавливали и обновляли программное обеспечение на своих компьютерах, они получают к нему доступ через веб-браузер.
Это подробное руководство о том, как быстро создать SaaS-приложение за выходные. В нем подчеркивается использование существующих шаблонов и инструментов для ускорения процесса разработки, позволяя фокусироваться на бизнес-логике и маркетинге.
Основные этапы включают выбор технологического стека, создание бизнес-логики, настройку биллинга, разработку документации, создание стартовой страницы и выбор хостинга. В конце подчеркивается важность маркетинга и продаж для успешного внедрения программного продукта.
Arunas codes
How to build a SaaS in a weekend - Arunas codes
Have an idea? Want to get an MVP out quickly? Using existing tools we will build a fully-functioning SaaS in a single weekend!
👍4😁3❤1👾1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤖 Итоги недели в мире ИИ и обзоры новых сервисов
Мы написали статью на VC, которая основана на очередном выпуске нашей рассылки про последние новости и тенденции в мире ИИ. Залетайте и читайте!
👇 Ниже — мини-подборка из статьи 👇
📰 Новости
▫️ OpenAI объявила о запуске долгожданного магазина кастомных чат-ботов.
▫️ В Пасадене (штат Калифорния) открывается первая закусочная CaliExpress by Flippy, полностью управляемая ИИ.
▫️ NVIDIA выпустила модель для распознавания речи Parakeet, которая по всем показателям превосходит OpenAI Whisper.
▫️ Использование ИИ в совместном научном проекте Microsoft и Тихоокеанской северо-западной национальной лаборатории в течение недели помогло определить новый элемент, который поможет снизить на 70% использование лития в батареях. Без ИИ такое исследование заняло бы по меньшей мере 20 лет.
▫️ Компания ByteDance выпустила новую модель MagicVideo-V2 для генерации видео.
🛠 Инструменты
◾️ Auto Wiki — генерирует вики-документацию для GitHub репозиториев.
◾️ Code to Flow — визуализирует, анализирует и объясняет код, написанный на всех популярных языках и фреймворках.
◾️ Concepto — платформа для создания прототипов веб-приложений.
◾️ Afforai — выполняет суммаризацию, перевод и поиск по множеству документов.
◾️ Corgea — исправляет уязвимые фрагменты кода.
◾️ Jan — опенсорсный оффлайновый чат-бот.
◾️ Plus AI — плагин для Google Slides: делает профессиональные презентации, персональные и командные дашборды, любые отчеты.
🤙 Сделай сам
🔸 WikiChat — опенсорсный инструмент для коррекции галлюцинаций с помощью информации из Википедии.
🔸 Подробная шпаргалка и советы по созданию продвинутых RAG.
🔸 OpenVoice — опенсорный инструмент для мгновенного клонирования голоса.
🎓 Туториалы
🔹 Туториал по работе с новым API Query Pipelines показывает примеры создания простых линейных цепочек и сложных ациклических графов из модулей LlamaIndex.
🔹 Туториал по объединению LLM с помощью mergekit детально разбирает 4 основных метода объединения моделей.
#чтопроисходит
Мы написали статью на VC, которая основана на очередном выпуске нашей рассылки про последние новости и тенденции в мире ИИ. Залетайте и читайте!
📰 Новости
▫️ OpenAI объявила о запуске долгожданного магазина кастомных чат-ботов.
▫️ В Пасадене (штат Калифорния) открывается первая закусочная CaliExpress by Flippy, полностью управляемая ИИ.
▫️ NVIDIA выпустила модель для распознавания речи Parakeet, которая по всем показателям превосходит OpenAI Whisper.
▫️ Использование ИИ в совместном научном проекте Microsoft и Тихоокеанской северо-западной национальной лаборатории в течение недели помогло определить новый элемент, который поможет снизить на 70% использование лития в батареях. Без ИИ такое исследование заняло бы по меньшей мере 20 лет.
▫️ Компания ByteDance выпустила новую модель MagicVideo-V2 для генерации видео.
🛠 Инструменты
◾️ Auto Wiki — генерирует вики-документацию для GitHub репозиториев.
◾️ Code to Flow — визуализирует, анализирует и объясняет код, написанный на всех популярных языках и фреймворках.
◾️ Concepto — платформа для создания прототипов веб-приложений.
◾️ Afforai — выполняет суммаризацию, перевод и поиск по множеству документов.
◾️ Corgea — исправляет уязвимые фрагменты кода.
◾️ Jan — опенсорсный оффлайновый чат-бот.
◾️ Plus AI — плагин для Google Slides: делает профессиональные презентации, персональные и командные дашборды, любые отчеты.
🤙 Сделай сам
🔸 WikiChat — опенсорсный инструмент для коррекции галлюцинаций с помощью информации из Википедии.
🔸 Подробная шпаргалка и советы по созданию продвинутых RAG.
🔸 OpenVoice — опенсорный инструмент для мгновенного клонирования голоса.
🎓 Туториалы
🔹 Туториал по работе с новым API Query Pipelines показывает примеры создания простых линейных цепочек и сложных ациклических графов из модулей LlamaIndex.
🔹 Туториал по объединению LLM с помощью mergekit детально разбирает 4 основных метода объединения моделей.
#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1🥰1
Headless eCommerce на Laravel: Погружение в модульную архитектуру
Рассказ о том, как поверх Laravel реализовать фреймворк для быстрой и гибкой разработки API продукта с модульной архитектурой.
Рассказ о том, как поверх Laravel реализовать фреймворк для быстрой и гибкой разработки API продукта с модульной архитектурой.
Хабр
Headless eCommerce на Laravel: Погружение в модульную архитектуру
Привет, Habr! Меня зовут Тальгат Хайруллов, я руководитель команды разработки в компании CS-Cart. В статье расскажу, как мы поверх Laravel реализовали фреймворк для быстрой и гибкой разработки API...
🥰3⚡2❤2🤔1
📝 Интеграция сторонних API с Http-фасадом в Laravel
В статье:
Подробное руководство по интеграции сторонних API в Laravel с использованием структуры пользовательских классов для запросов и клиентов. Упор на использовании фасада Http в Laravel для обеспечения последовательности, более простого тестирования и уменьшения зависимостей.
1️⃣Добавление конфигурации Google Books в Laravel:
🗝️ Хранение ключа API и URL в файле .env.
🛠️ Добавление конфигурации в файл config/services.php.
2️⃣Создание класса ApiRequest:
🚀 Класс для построения HTTP-запросов к API.
🛠️ Методы для установки HTTP-метода, URI, заголовков, параметров запроса и тела.
🌐 Статические методы для создания экземпляров ApiRequest для конкретных HTTP-методов.
3️⃣Создание абстрактного класса ApiClient:
🛠️ Абстрактный базовый класс для выполнения HTTP-запросов к API.
🚀 Предоставляет метод для отправки ApiRequest и методы для получения и авторизации базового запроса.
📘 Подклассы должны реализовать метод baseUrl для указания базового URL API.
4️⃣Реализация GoogleBooksApiClient:
🚀 Конкретная реализация базового класса ApiClient для API Google Books.
🛠️ Методы для получения базового URL и авторизации запроса для API Google Books.
5️⃣Создание действия для запроса книг по названию:
🚀 Класс действия (QueryBooksByTitle) для запроса книг по названию из API Google Books.
🌐 Использует GoogleBooksApiClient и ApiRequest для формирования и отправки запроса.
🔚 В конце представлен бонусный раздел по написанию тестов для классов ApiRequest, ApiClient и GoogleBooksApiClient с использованием Pest PHP, демонстрируя, как обеспечить правильную настройку и поведение этих классов.
В статье:
Подробное руководство по интеграции сторонних API в Laravel с использованием структуры пользовательских классов для запросов и клиентов. Упор на использовании фасада Http в Laravel для обеспечения последовательности, более простого тестирования и уменьшения зависимостей.
1️⃣Добавление конфигурации Google Books в Laravel:
🗝️ Хранение ключа API и URL в файле .env.
🛠️ Добавление конфигурации в файл config/services.php.
2️⃣Создание класса ApiRequest:
🚀 Класс для построения HTTP-запросов к API.
🛠️ Методы для установки HTTP-метода, URI, заголовков, параметров запроса и тела.
🌐 Статические методы для создания экземпляров ApiRequest для конкретных HTTP-методов.
3️⃣Создание абстрактного класса ApiClient:
🛠️ Абстрактный базовый класс для выполнения HTTP-запросов к API.
🚀 Предоставляет метод для отправки ApiRequest и методы для получения и авторизации базового запроса.
📘 Подклассы должны реализовать метод baseUrl для указания базового URL API.
4️⃣Реализация GoogleBooksApiClient:
🚀 Конкретная реализация базового класса ApiClient для API Google Books.
🛠️ Методы для получения базового URL и авторизации запроса для API Google Books.
5️⃣Создание действия для запроса книг по названию:
🚀 Класс действия (QueryBooksByTitle) для запроса книг по названию из API Google Books.
🌐 Использует GoogleBooksApiClient и ApiRequest для формирования и отправки запроса.
🔚 В конце представлен бонусный раздел по написанию тестов для классов ApiRequest, ApiClient и GoogleBooksApiClient с использованием Pest PHP, демонстрируя, как обеспечить правильную настройку и поведение этих классов.
DEV Community
Simplifying API Integration with Laravel's Http Facade
Building a reusable API request and client class I’ve been working a lot lately...
❤5
Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #phpdevjob
Вакансии недели для джунов 👨🏻🏫
PHP Developer в Новые Технологии
Санкт-Петербург. Разработка, внедрение и сопровождение ПО.
Подробнее
Junior Backend разработчик в PROFFIT GO
Набережные Челны. Цифровая экосистема решений для управления автопарками.
Подробнее
Junior full-stack developer в SBX Group
Рязань. Разработка ПО.
Подробнее
PHP-программист в Intelsib
Новосибирск. Поисковое продвижение, контекстная реклама, поисковый аудит.
Подробнее
Junior Backend PHP разработчик в GILMARK
Москва. Интернет-маркетинговое агентство.
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии недели для джунов 👨🏻🏫
PHP Developer в Новые Технологии
Санкт-Петербург. Разработка, внедрение и сопровождение ПО.
Подробнее
Junior Backend разработчик в PROFFIT GO
Набережные Челны. Цифровая экосистема решений для управления автопарками.
Подробнее
Junior full-stack developer в SBX Group
Рязань. Разработка ПО.
Подробнее
PHP-программист в Intelsib
Новосибирск. Поисковое продвижение, контекстная реклама, поисковый аудит.
Подробнее
Junior Backend PHP разработчик в GILMARK
Москва. Интернет-маркетинговое агентство.
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
spb.hh.ru
Вакансия PHP Developer (Junior/Middle) в Санкт-Петербурге, работа в компании Новые Технологии (вакансия в архиве c 10 февраля 2024)
Зарплата: от 80000 до 150000 ₽. Санкт-Петербург. Требуемый опыт: 1–3 года. Полная занятость. Дата публикации: 07.02.2024.
❤9👍1
Как вы внедряете обучение в свою жизнь? Поделитесь опытом
Anonymous Poll
42%
Еле втискиваю обучение в расписание
7%
Кроме учёбы у меня нет других занятий
13%
Приходится отказываться от хобби
26%
Никак, пока не получается
6%
Я не хочу больше учиться(
6%
Свой вариант (напишу в комментариях)
Загрузка файлов напрямую с клиента на S3, не затрагивая файлы вашего Laravel-приложения.
Здесь обсуждается традиционный подход к обработке загрузки файлов в веб-приложениях, особенно в PHP и Laravel, где файлы обрабатываются сервером перед сохранением в службе хранения, такой как Amazon S3.
🔄 Предлагается альтернативный метод: файлы не касаются веб-сервера, а загружаются с клиента в S3.
Альтернативный подход включает следующие шаги:
1. Пользователь выбирает файл для загрузки.
2. JavaScript-клиент отправляет метаданные файла на бэкэнд.
3. Бэкэнд проверяет размер файла и тип контента, генерирует подписанный URL для ожидающего файла и отправляет его клиенту.
4. Клиент загружает файл напрямую в S3, используя подписанный URL.
5. После загрузки клиент уведомляет бэкэнд, что файл успешно загружен.
6. Бэкэнд создает необходимые записи в базе данных, связанные с загруженным файлом.
💻 Предоставлены кодовые фрагменты, включая объект значения SignedUrl и класс для генерации URL в S3. Также демонстрируется, как интегрировать эту логику в контроллер Laravel для обработки загрузки файлов.
💾Бэкэнд дополнительно рассматривается с точки зрения проверки метаданных файла, создания соответствующих моделей Eloquent и перемещения файлов из временных в постоянные каталоги в S3.
Здесь обсуждается традиционный подход к обработке загрузки файлов в веб-приложениях, особенно в PHP и Laravel, где файлы обрабатываются сервером перед сохранением в службе хранения, такой как Amazon S3.
🔄 Предлагается альтернативный метод: файлы не касаются веб-сервера, а загружаются с клиента в S3.
Альтернативный подход включает следующие шаги:
1. Пользователь выбирает файл для загрузки.
2. JavaScript-клиент отправляет метаданные файла на бэкэнд.
3. Бэкэнд проверяет размер файла и тип контента, генерирует подписанный URL для ожидающего файла и отправляет его клиенту.
4. Клиент загружает файл напрямую в S3, используя подписанный URL.
5. После загрузки клиент уведомляет бэкэнд, что файл успешно загружен.
6. Бэкэнд создает необходимые записи в базе данных, связанные с загруженным файлом.
💻 Предоставлены кодовые фрагменты, включая объект значения SignedUrl и класс для генерации URL в S3. Также демонстрируется, как интегрировать эту логику в контроллер Laravel для обработки загрузки файлов.
💾Бэкэнд дополнительно рассматривается с точки зрения проверки метаданных файла, создания соответствующих моделей Eloquent и перемещения файлов из временных в постоянные каталоги в S3.
crnkovic.me
Uploading files directly from client to S3 without files ever touching your Laravel application - Josip Crnković
If your web application allows users to upload files, there are a few things to consider and be aware of before deploying file uploads to production...
👍10❤1
Symfony 7, выпущенный в конце ноября 2023 года, сопровождается новым экзаменом на сертификацию.
Экзамен, аналогичный Symfony 6, но адаптированный под практики Symfony 7, фокусируется на основных концепциях.
Онлайн-экзамен длится 90 минут и включает 75 вопросов по 15 темам. Экзамен предоставляет сертификацию на уровнях «продвинутый» и «эксперт» в зависимости от баллов.
Для получения подробной информации и приобретения ваучера посетите certification.symfony.com
Экзамен, аналогичный Symfony 6, но адаптированный под практики Symfony 7, фокусируется на основных концепциях.
Онлайн-экзамен длится 90 минут и включает 75 вопросов по 15 темам. Экзамен предоставляет сертификацию на уровнях «продвинутый» и «эксперт» в зависимости от баллов.
Для получения подробной информации и приобретения ваучера посетите certification.symfony.com
Symfony
Introducing the Symfony 7 Certification (Symfony Blog)
The certification exam for the new Symfony 7 version is now available. Purchase your voucher today to become one of the first Symfony 7 Certified developers.
🥰5👍3🎉3❤1
MemSess — очередной сервер для работы с сессиями
В этой статье будет рассмотрен самописный сервер для работы с сессиями и пример работы с ним на PHP.
В этой статье будет рассмотрен самописный сервер для работы с сессиями и пример работы с ним на PHP.
Хабр
MemSess — очередной сервер для работы с сессиями
Пролог Всем привет. Не знал, как начать рассказ, поэтому в качестве пролога решил написать мини-интервью с самим с собой (наверное, это уже шизофрения), где кратко познакомлю вас с тем, что я написал,...
❤2🎉2😁1
Сон — это важно. А какими лайфхаками для глубокого сна вы пользуетесь?
Anonymous Poll
23%
Ложусь спать и просыпаюсь в одно и то же время
6%
Убираю телефон подальше, чтобы не достать
19%
Засыпаю в проветренной, прохладной и темной комнате
14%
Час-два смотрю мемы перед сном
8%
Ложусь рано и встаю рано
35%
Просто сплю 7-8 часов
4%
Гуляю на свежем воздухе перед сном
23%
А что вообще такое глубокий сон?
27%
Никакие, у меня проблемы со сном
4%
Свой вариант (напишу в комментариях)
Еще один #дайджест новостей по PHP за неделю:
🔎Выпущены PHP 8.3.2 и PHP 8.2.15! — это баг-фикс релиз
🔎Выпущена версия CakePHP 4.5.3. — Улучшения включают в себя: исправлена ошибка рендеринга страниц разработчиков в PHP 8.3, матрица CI теперь включает PHP 8.3, улучшено сообщение об ошибке ограничения EventFiredWith и многое другое.
🔎Программа раннего доступа PhpStorm 2024.1 уже открыта
🔎Бесплатные и льготные лицензии для PhpStorm: кто имеет право? — Для PHP-разработчиков, которым нужен расширенный опыт программирования, PhpStorm от JetBrains предлагает ряд льготных и бесплатных версий.
🔎Вышел Filament v3.2
🔎Неделя Symfony #890 (15–21 января 2024 г.) — Из-за онлайн-конференции деятельность по разработке была менее интенсивной, чем обычно, и в основном была сосредоточена на исправлении ошибок в стабильных версиях Symfony.
🔎Выпущены PHP 8.3.2 и PHP 8.2.15! — это баг-фикс релиз
🔎Выпущена версия CakePHP 4.5.3. — Улучшения включают в себя: исправлена ошибка рендеринга страниц разработчиков в PHP 8.3, матрица CI теперь включает PHP 8.3, улучшено сообщение об ошибке ограничения EventFiredWith и многое другое.
🔎Программа раннего доступа PhpStorm 2024.1 уже открыта
🔎Бесплатные и льготные лицензии для PhpStorm: кто имеет право? — Для PHP-разработчиков, которым нужен расширенный опыт программирования, PhpStorm от JetBrains предлагает ряд льготных и бесплатных версий.
🔎Вышел Filament v3.2
🔎Неделя Symfony #890 (15–21 января 2024 г.) — Из-за онлайн-конференции деятельность по разработке была менее интенсивной, чем обычно, и в основном была сосредоточена на исправлении ошибок в стабильных версиях Symfony.
👍3❤2
Laravel под капотом — Фасады
Статья предоставляет подробное руководство по системе фасадов в Laravel, фокусируясь на ее работе под капотом. Начинается с изучения базового примера в приложении Laravel, анализируя код в файле web.php и обнаружив, что у класса Route нет метода get(), возникает вопрос о том, как работает маршрутизатор Laravel.
Исследование приводит к классу Facade, который выступает в роли родительского класса для фасадов в Laravel. Ключевым методом здесь является __callStatic(), магическим методом, вызываемым при вызове неопределенного статического метода на фасаде. Этот метод динамически разрешает экземпляр фасада, вызывая resolveFacadeInstance(), который, в свою очередь, использует метод getFacadeRoot() для получения фактического экземпляра класса.
Метод getFacadeRoot() полагается на метод getFacadeAccessor() в дочернем классе фасада (в данном случае Route), который возвращает строку, представляющую ключ для разрешения экземпляра класса из контейнера приложения. Контейнер приложения устанавливается во время процесса старта, где ключевую роль играет класс Kernel Laravel.
Затем объясняется, как создать пользовательский фасад, привязав класс к контейнеру приложения и создавая класс фасада, указывающий соответствующую строку в getFacadeAccessor(). Процесс иллюстрируется с использованием класса HelloWorld.
Кроме того, представляется концепция фасадов в реальном времени, позволяющая использовать фасады без явного их создания. Это достигается добавлением префикса Facades к пространству имен контроллеров, что вызывает динамическое создание фасада в процессе старта приложения.
Статья предоставляет подробное руководство по системе фасадов в Laravel, фокусируясь на ее работе под капотом. Начинается с изучения базового примера в приложении Laravel, анализируя код в файле web.php и обнаружив, что у класса Route нет метода get(), возникает вопрос о том, как работает маршрутизатор Laravel.
Исследование приводит к классу Facade, который выступает в роли родительского класса для фасадов в Laravel. Ключевым методом здесь является __callStatic(), магическим методом, вызываемым при вызове неопределенного статического метода на фасаде. Этот метод динамически разрешает экземпляр фасада, вызывая resolveFacadeInstance(), который, в свою очередь, использует метод getFacadeRoot() для получения фактического экземпляра класса.
Метод getFacadeRoot() полагается на метод getFacadeAccessor() в дочернем классе фасада (в данном случае Route), который возвращает строку, представляющую ключ для разрешения экземпляра класса из контейнера приложения. Контейнер приложения устанавливается во время процесса старта, где ключевую роль играет класс Kernel Laravel.
Затем объясняется, как создать пользовательский фасад, привязав класс к контейнеру приложения и создавая класс фасада, указывающий соответствующую строку в getFacadeAccessor(). Процесс иллюстрируется с использованием класса HelloWorld.
Кроме того, представляется концепция фасадов в реальном времени, позволяющая использовать фасады без явного их создания. Это достигается добавлением префикса Facades к пространству имен контроллеров, что вызывает динамическое создание фасада в процессе старта приложения.
👍8🥱3❤2