Понимание жизненного цикла запроса, сервисного контейнера и фасадов
Здесь обсуждается важность понимания того, как работает приложение Laravel, и показан упрощенный обзор ключевых концепций. Она начинается с глоссария, где объясняются термины, такие как "Bootstrap" и "Kernel" (ядро).
В статье описывается жизненный цикл запроса в Laravel, начиная с создания экземпляра приложения, регистрации поставщиков услуг и передачи запроса загруженному приложению.
Выделено, что точкой входа в приложение Laravel является файл public/index.php, который загружает Composer для загрузки классов и извлекает экземпляр приложения Laravel. Затем запросы направляются либо в HTTP-ядро, либо в консольное ядро, которые действуют как центральные точки для обработки запросов и выполнения промежуточного программного обеспечения.
В статье также подчеркивается роль сервис-провайдеров в инициализации компонентов фреймворка, с упоминанием RouteServiceProvider как ключевого элемента для маршрутизации. Промежуточное программное обеспечение играет роль в проверке и направлении входящих запросов.
В статье также упоминается сервисный контейнер Laravel, который управляет зависимостями классов, а также поставщики услуг, которые могут быть добавлены в файл конфигурации.
Фасады описываются как удобный способ доступа к сервисам, и предоставлен фрагмент кода из файла маршрутов.
Здесь обсуждается важность понимания того, как работает приложение Laravel, и показан упрощенный обзор ключевых концепций. Она начинается с глоссария, где объясняются термины, такие как "Bootstrap" и "Kernel" (ядро).
В статье описывается жизненный цикл запроса в Laravel, начиная с создания экземпляра приложения, регистрации поставщиков услуг и передачи запроса загруженному приложению.
Выделено, что точкой входа в приложение Laravel является файл public/index.php, который загружает Composer для загрузки классов и извлекает экземпляр приложения Laravel. Затем запросы направляются либо в HTTP-ядро, либо в консольное ядро, которые действуют как центральные точки для обработки запросов и выполнения промежуточного программного обеспечения.
В статье также подчеркивается роль сервис-провайдеров в инициализации компонентов фреймворка, с упоминанием RouteServiceProvider как ключевого элемента для маршрутизации. Промежуточное программное обеспечение играет роль в проверке и направлении входящих запросов.
В статье также упоминается сервисный контейнер Laravel, который управляет зависимостями классов, а также поставщики услуг, которые могут быть добавлены в файл конфигурации.
Фасады описываются как удобный способ доступа к сервисам, и предоставлен фрагмент кода из файла маршрутов.
DEV Community
Understanding the Request Lifecycle, Service Container, and Facades
This topic may seem a bit advanced to me, but I believe it's crucial to grasp how a Laravel...
👍9🥱3❤2🤔1
Эта статья рассматривает методы проверки частей HTML-ответа в рамках HTTP-тестирования в Laravel. Автор статьи объясняет, как можно использовать компонент Symfony DomCrawler для анализа и навигации по DOM-дереву HTML-ответа и проверки важного контента.
Автор предлагает создать макрос в Laravel, который позволит более удобно использовать DomCrawler для тестирования. Этот макрос позволяет легко создавать экземпляры Crawler (объектов DomCrawler) из HTTP-ответа и выполнять различные проверки и манипуляции с DOM-деревом.
Статья также предоставляет примеры использования этого макроса, включая проверку наличия определенных элементов в HTML-ответе и извлечение определенной части DOM-дерева для дальнейшей проверки.
Автор предлагает создать макрос в Laravel, который позволит более удобно использовать DomCrawler для тестирования. Этот макрос позволяет легко создавать экземпляры Crawler (объектов DomCrawler) из HTTP-ответа и выполнять различные проверки и манипуляции с DOM-деревом.
Статья также предоставляет примеры использования этого макроса, включая проверку наличия определенных элементов в HTML-ответе и извлечение определенной части DOM-дерева для дальнейшей проверки.
Laravel News
Symfony's DomCrawler with Laravel HTTP Tests - Laravel News
Learn how easy it is to integrate Symfony's DOMCrawler component in Laravel HTTP tests.
❤4👍1
Новые каналы по PHP🎉
Готовимся к собеседованиям по PHP и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для PHP-разработчиков и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по PHP — тут мы готовимся к интервью
👉Библиотека задач по PHP — тут решаем задачи, проходим тесты и изучаем код
Готовимся к собеседованиям по PHP и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для PHP-разработчиков и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по PHP — тут мы готовимся к интервью
👉Библиотека задач по PHP — тут решаем задачи, проходим тесты и изучаем код
👍5❤1😍1
Валидация ключей SSH на Laravel
Здесь рассматривается разработка функционала для валидации и сохранения SSH-ключей пользователей в приложении. Автор сталкивается с задачей эффективной проверки SSH-ключей и демонстрирует свое решение.
Он создает класс с именем ValidateSsh, который использует команду ssh-keygen с флагом -lf для проверки валидности SSH-ключей. Класс сохраняет ключ как файл, выполняет команду и затем удаляет файл, если проверка прошла успешно.
Автор также создает пользовательское правило валидации с именем IsSshKeyValid и использует его в правилах валидации приложения. Он предоставляет юнит-тесты для класса ValidateSsh и HTTP-тесты, чтобы убедиться, что SSH-ключи правильно валидируются при регистрации пользователей.
Здесь рассматривается разработка функционала для валидации и сохранения SSH-ключей пользователей в приложении. Автор сталкивается с задачей эффективной проверки SSH-ключей и демонстрирует свое решение.
Он создает класс с именем ValidateSsh, который использует команду ssh-keygen с флагом -lf для проверки валидности SSH-ключей. Класс сохраняет ключ как файл, выполняет команду и затем удаляет файл, если проверка прошла успешно.
Автор также создает пользовательское правило валидации с именем IsSshKeyValid и использует его в правилах валидации приложения. Он предоставляет юнит-тесты для класса ValidateSsh и HTTP-тесты, чтобы убедиться, что SSH-ключи правильно валидируются при регистрации пользователей.
DEV Community
Validating SSH keys on Laravel
When we're called to develop an application, we should keep in mind that we might have to deal with...
❤4
Что такое динамические переменные?
Вы можете передать имя одной переменной в другую, а затем использовать эту переменную “динамически”.
Их следует использовать с большой осторожностью, так как они могут значительно усложнить как чтение, так и поддержку кода (зачастую без запуска кода невозможно понять что в переменной), однако они могут быть очень полезны в абстракциях. Документация.
#вопросы_с_собеседований
Вы можете передать имя одной переменной в другую, а затем использовать эту переменную “динамически”.
Их следует использовать с большой осторожностью, так как они могут значительно усложнить как чтение, так и поддержку кода (зачастую без запуска кода невозможно понять что в переменной), однако они могут быть очень полезны в абстракциях. Документация.
#вопросы_с_собеседований
www.php.net
PHP: Hypertext Preprocessor
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
❤6👾1
Источник читабельности
Здесь излагаются правила, следуя которым можно начать писать намного более читабельный и понятный другим людям код
Здесь излагаются правила, следуя которым можно начать писать намного более читабельный и понятный другим людям код
loup-vaillant.fr
The Source of Readability
Readability is more objective than you'd think.
👍3
Синглтоны и как их использовать
В этой статье автор выражает свою негодование по отношению к использованию синглтонов в программировании и обсуждает их недостатки. Вот основные моменты:
✅Синглтоны как глобальное состояние: Синглтоны, по мнению автора, представляют собой глобальные переменные, что делает их использование проблематичным из-за статической природы. Изменение синглтона может затронуть всю систему, что делает отладку сложной.
✅Скрытые зависимости: Синглтоны создают скрытые зависимости, так как не всегда ясно, что синглтон используется внутри класса или метода. Это усложняет понимание кода.
✅Сложности в тестировании: Использование синглтонов усложняет тестирование, так как создается жесткая зависимость от класса, который не может быть легко заменен на мок-объект в тестах.
Автор предлагает альтернативу синглтонам, основанную на принципе Dependency Injection (внедрение зависимостей) и использовании интерфейсов. Это позволяет избежать скрытых зависимостей, упрощает тестирование и делает код более понятным.
Он также отмечает, что синглтоны могут быть оправданы в случаях, когда они являются неизменными или не влияют на поведение системы при их удалении. Примерами таких синглтонов являются логгеры или сервис-локаторы.
В этой статье автор выражает свою негодование по отношению к использованию синглтонов в программировании и обсуждает их недостатки. Вот основные моменты:
✅Синглтоны как глобальное состояние: Синглтоны, по мнению автора, представляют собой глобальные переменные, что делает их использование проблематичным из-за статической природы. Изменение синглтона может затронуть всю систему, что делает отладку сложной.
✅Скрытые зависимости: Синглтоны создают скрытые зависимости, так как не всегда ясно, что синглтон используется внутри класса или метода. Это усложняет понимание кода.
✅Сложности в тестировании: Использование синглтонов усложняет тестирование, так как создается жесткая зависимость от класса, который не может быть легко заменен на мок-объект в тестах.
Автор предлагает альтернативу синглтонам, основанную на принципе Dependency Injection (внедрение зависимостей) и использовании интерфейсов. Это позволяет избежать скрытых зависимостей, упрощает тестирование и делает код более понятным.
Он также отмечает, что синглтоны могут быть оправданы в случаях, когда они являются неизменными или не влияют на поведение системы при их удалении. Примерами таких синглтонов являются логгеры или сервис-локаторы.
Ramblings about code
Singletons and how to use them - Ramblings about code
I believe it’s customary for every coding blog to have a rant about singletons, and this one is no different. It is called coderambling after all. I’m not here to tell you how to live your life, if you want to use singletons feel free to do so. But I also…
❤5👍2
Безопасные PHP API с проверкой подписи с использованием OpenSSL
Здесь обсуждается важность проверки подлинности запросов в API и прилагается руководство по реализации проверки подписи API с использованием PHP и библиотеки OpenSSL.
Основные этапы процесса проверки подписи API с использованием OpenSSL включают:
1️⃣Генерация пары ключей (открытый и закрытый) для шифрования и дешифрования данных.
2️⃣Загрузка ключей в приложении.
3️⃣Генерация подписи на стороне клиента с использованием закрытого ключа.
4️⃣Проверка подписи на стороне сервера с использованием открытого ключа.
5️⃣Использование SDK для упрощения вызовов API и проверки подписи.
Важно, что эти шаги обеспечивают безопасность обмена данными между клиентом и сервером, предотвращая подделку запросов и обеспечивая их целостность. Этот подход также обеспечивает защиту от несанкционированного доступа.
Здесь обсуждается важность проверки подлинности запросов в API и прилагается руководство по реализации проверки подписи API с использованием PHP и библиотеки OpenSSL.
Основные этапы процесса проверки подписи API с использованием OpenSSL включают:
1️⃣Генерация пары ключей (открытый и закрытый) для шифрования и дешифрования данных.
2️⃣Загрузка ключей в приложении.
3️⃣Генерация подписи на стороне клиента с использованием закрытого ключа.
4️⃣Проверка подписи на стороне сервера с использованием открытого ключа.
5️⃣Использование SDK для упрощения вызовов API и проверки подписи.
Важно, что эти шаги обеспечивают безопасность обмена данными между клиентом и сервером, предотвращая подделку запросов и обеспечивая их целостность. Этот подход также обеспечивает защиту от несанкционированного доступа.
DEV Community
Secure PHP APIs with Signature Verification Using OpenSSL
Application Programming Interfaces (APIs) are essential in web development. To ensure the security of...
👍4❤2
Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #phpdevjob
Вакансии недели для джунов 👨🏻🏫
PHP-программист в Intelsib
Новосибирск. Поисковое продвижение, контекстная реклама, поисковый аудит.
Подробнее
Backend-разработчик в Itwis
Новосибирск. Разработка информационных бизнес-систем.
Подробнее
PHP-программист в ЛЕКО
Тверь. Разработка крупных интернет-проектов.
Подробнее
Backend-developer в Формула
Москва. Сеть автошкол.
Подробнее
Программист PHP в Intask
Москва. Разработка ПО для электронной торговли.
Подробнее
Понравились вакансии?
👍 — да
👎 — нет
Вакансии недели для джунов 👨🏻🏫
PHP-программист в Intelsib
Новосибирск. Поисковое продвижение, контекстная реклама, поисковый аудит.
Подробнее
Backend-разработчик в Itwis
Новосибирск. Разработка информационных бизнес-систем.
Подробнее
PHP-программист в ЛЕКО
Тверь. Разработка крупных интернет-проектов.
Подробнее
Backend-developer в Формула
Москва. Сеть автошкол.
Подробнее
Программист PHP в Intask
Москва. Разработка ПО для электронной торговли.
Подробнее
Понравились вакансии?
👍 — да
👎 — нет
novosibirsk.hh.ru
Вакансия PHP-программист (Junior) в Новосибирске, работа в компании Компания Intelsib (вакансия в архиве c 25 декабря 2023)
Зарплата: от 30000 до 40000 ₽ за месяц. Новосибирск. Требуемый опыт: не требуется. Полная занятость. Дата публикации: 22.12.2023.
😁10👍3❤1
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🦸⚡ 9 способов настройки градиента цели для поддержания мотивации
Разбираемся, как настроить себя идти до конца, преодолевая препятствия и лень.
Читать статью
#саморазвитие
Разбираемся, как настроить себя идти до конца, преодолевая препятствия и лень.
Читать статью
#саморазвитие
🥱8👍2
#хочу_спросить
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
👍2❤1
Принятие разумной политики поддержки версий PHP
Важность установления и соблюдения политики поддержки версий PHP для PHP-приложений и PHP-пакетов связано с тем, что PHP регулярно выпускает новые версии и прекращает поддержку старых. Автор предлагает следующие рекомендации:
✅Политика поддержки версий PHP для PHP-приложений:
Разработчики PHP-приложений должны определить, как часто они обновляют свои приложения до новых версий PHP в соответствии с жизненным циклом PHP.
Политика может определять, что приложение будет обновлено до новой версии PHP в течение определенного срока после ее выпуска.
Эта политика может быть ужесточена по мере улучшения навыков и способностей команды.
✅Политика поддержки версий PHP для PHP-пакетов:
Разработчики PHP-пакетов также должны определить, какие версии PHP они поддерживают и как часто добавляют и удаляют поддержку для этих версий.
Поддержка нескольких версий PHP в пакете может упростить обновление PHP-приложений, использующих этот пакет.
Добавление и удаление поддержки версий PHP может требовать разработки и учета изменений в новых версиях PHP.
Статья также обсуждает пользу и сложности, связанные с обновлением PHP-пакетов и приложений, а также воздействие на окружающую среду и пользователей. Автор подчеркивает важность управления ожиданиями и коммитмента к политике поддержки версий PHP для облегчения обновлений и продвижения экосистемы PHP вперед.
Важность установления и соблюдения политики поддержки версий PHP для PHP-приложений и PHP-пакетов связано с тем, что PHP регулярно выпускает новые версии и прекращает поддержку старых. Автор предлагает следующие рекомендации:
✅Политика поддержки версий PHP для PHP-приложений:
Разработчики PHP-приложений должны определить, как часто они обновляют свои приложения до новых версий PHP в соответствии с жизненным циклом PHP.
Политика может определять, что приложение будет обновлено до новой версии PHP в течение определенного срока после ее выпуска.
Эта политика может быть ужесточена по мере улучшения навыков и способностей команды.
✅Политика поддержки версий PHP для PHP-пакетов:
Разработчики PHP-пакетов также должны определить, какие версии PHP они поддерживают и как часто добавляют и удаляют поддержку для этих версий.
Поддержка нескольких версий PHP в пакете может упростить обновление PHP-приложений, использующих этот пакет.
Добавление и удаление поддержки версий PHP может требовать разработки и учета изменений в новых версиях PHP.
Статья также обсуждает пользу и сложности, связанные с обновлением PHP-пакетов и приложений, а также воздействие на окружающую среду и пользователей. Автор подчеркивает важность управления ожиданиями и коммитмента к политике поддержки версий PHP для облегчения обновлений и продвижения экосистемы PHP вперед.
Andreas Möller
Adopting a reasonable PHP version support policy
What is a PHP version support policy and why should you have one?
👍3❤2
Руководство по call-site variance
Гайд описывает концепцию "call-site variance" (вариантность на момент вызова) в контексте использования языка PHP с использованием инструмента PHPStan для статической типизации. Он объясняет, как можно управлять вариантностью (ковариантностью и контравариантностью) в интерфейсах и функциях, чтобы обеспечить безопасность типов данных.
Гайд описывает концепцию "call-site variance" (вариантность на момент вызова) в контексте использования языка PHP с использованием инструмента PHPStan для статической типизации. Он объясняет, как можно управлять вариантностью (ковариантностью и контравариантностью) в интерфейсах и функциях, чтобы обеспечить безопасность типов данных.
phpstan.org
A guide to call-site generic variance
👍3❤1
Используете ли Copilot или ChatGPT в работе? Если да, то когда использовали последний раз?
🥱8👍3
Laravel 11: дата выпуска и новые возможности
С нетерпением ждем релиза Laravel 11, запланированного на первый квартал 2024 года. Есть информация о том, что дата релиза будет 6 февраля 2024 года.
Главное изменение в Laravel 11 - это упрощенная структура проекта (skeleton). Будут внесены изменения в конфигурацию, middleware, обработку ошибок в API и многое другое.
Что касается упрощенной структуры проекта, все файлы конфигурации будут иметь аналоги в ядре фреймворка, что позволит более гибко настраивать приложение с использованием переменных окружения.
✔️В middleware будут добавлены новые методы, включая возможность перенаправления с использованием замыканий, а также улучшена обработка запросов, ожидающих JSON.
✔️Artisan команды получат псевдонимы и команду для планирования выполнения замыканий.
✔️Сервис-провайдеры получат новые функции для загрузки дополнительных провайдеров.
✔️Будет введен ApplicationBuilder для упрощения настройки различных функций фреймворка, а также Middleware application builder class для определения новых групп middleware.
✔️Существующие middleware будут обогащены новыми методами для настройки исключений и дополнительных параметров.
Также будут внесены изменения в обработчик исключений и добавлены новые команды для установки дополнительных пакетов.
Общее впечатление - Laravel 11 представляет собой крупное обновление с множеством улучшений и изменений, которые сделают разработку более удобной и производительной.
С нетерпением ждем релиза Laravel 11, запланированного на первый квартал 2024 года. Есть информация о том, что дата релиза будет 6 февраля 2024 года.
Главное изменение в Laravel 11 - это упрощенная структура проекта (skeleton). Будут внесены изменения в конфигурацию, middleware, обработку ошибок в API и многое другое.
Что касается упрощенной структуры проекта, все файлы конфигурации будут иметь аналоги в ядре фреймворка, что позволит более гибко настраивать приложение с использованием переменных окружения.
✔️В middleware будут добавлены новые методы, включая возможность перенаправления с использованием замыканий, а также улучшена обработка запросов, ожидающих JSON.
✔️Artisan команды получат псевдонимы и команду для планирования выполнения замыканий.
✔️Сервис-провайдеры получат новые функции для загрузки дополнительных провайдеров.
✔️Будет введен ApplicationBuilder для упрощения настройки различных функций фреймворка, а также Middleware application builder class для определения новых групп middleware.
✔️Существующие middleware будут обогащены новыми методами для настройки исключений и дополнительных параметров.
Также будут внесены изменения в обработчик исключений и добавлены новые команды для установки дополнительных пакетов.
Общее впечатление - Laravel 11 представляет собой крупное обновление с множеством улучшений и изменений, которые сделают разработку более удобной и производительной.
🥱9⚡7👍7❤4🌚1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💼🖥️ Топ лучших бирж фриланса и платформ для программистов
Где начинающему разработчику найти работу и получить первый коммерческий заказ? В этом могут помочь фриланс-биржи и human-cloud платформы. Но какие именно — расскажем в статье.
📌 Полезные материалы по теме:
🧒 Как найти работу junior-разработчику: 5 самых неочевидных способов
👍 Тесты на собеседовании: как к ним подготовиться и получить оффер
📝 Как правильно составить сопроводительное письмо программисту
🔍 ТОП-12 джоб-сайтов: где программисту разместить резюме и найти работу
🤖 40 сервисов на базе AI, которые помогут найти работу в 2023 году
💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Подборка полезных материалов для улучшения профиля на LinkedIn и не только
💾 Список каналов «Библиотеки программиста» с вакансиями
🫶Понравился пост? Проголосуйте за нас, чтобы мы могли публиковать сторис (требуется премиум).
Где начинающему разработчику найти работу и получить первый коммерческий заказ? В этом могут помочь фриланс-биржи и human-cloud платформы. Но какие именно — расскажем в статье.
📌 Полезные материалы по теме:
🧒 Как найти работу junior-разработчику: 5 самых неочевидных способов
👍 Тесты на собеседовании: как к ним подготовиться и получить оффер
📝 Как правильно составить сопроводительное письмо программисту
🔍 ТОП-12 джоб-сайтов: где программисту разместить резюме и найти работу
🤖 40 сервисов на базе AI, которые помогут найти работу в 2023 году
💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Подборка полезных материалов для улучшения профиля на LinkedIn и не только
💾 Список каналов «Библиотеки программиста» с вакансиями
🫶Понравился пост? Проголосуйте за нас, чтобы мы могли публиковать сторис (требуется премиум).
👍4🥱4❤2