Forwarded from WebCraft - ремесло веб разработки
PHP | тестирование исключений
Статья содержит советы по тестированию исключений.
Также в статье представлены несколько вариантов написания тестов для исключений.
Статья содержит советы по тестированию исключений.
Также в статье представлены несколько вариантов написания тестов для исключений.
Forwarded from WebCraft - ремесло веб разработки
PHP | Trait typehint
Классы и интерфейсы можно указывать как типы свойств классов и типы параметров функций. Но трейты указывать как типы нельзя.
Если же Вам все таки нужно указать трейт как тип, то самый просто способ - создать интерфейс, описывающий этот трейт и использовать как тип этот интерфейс.
Классы и интерфейсы можно указывать как типы свойств классов и типы параметров функций. Но трейты указывать как типы нельзя.
Если же Вам все таки нужно указать трейт как тип, то самый просто способ - создать интерфейс, описывающий этот трейт и использовать как тип этот интерфейс.
Forwarded from Frontender Libs - обзор библиотек JS / CSS
PHP | генераторы в PHP
Генераторы - простой способ для создания итераторов, не требующий создавать массив данных в памяти.
Простейший пример - функция range реализованная в виде генератора. Массив созданный функцией range(0, 1000000) "съест" более 100 мб памяти. Генератор, возвращающий те же значения потребует не больше 1 кб.
Для создания генератора нужно создать функцию, которая для возвращения значения вместо return использует ключевое слово yield.
Генераторы - простой способ для создания итераторов, не требующий создавать массив данных в памяти.
Простейший пример - функция range реализованная в виде генератора. Массив созданный функцией range(0, 1000000) "съест" более 100 мб памяти. Генератор, возвращающий те же значения потребует не больше 1 кб.
Для создания генератора нужно создать функцию, которая для возвращения значения вместо return использует ключевое слово yield.
Forwarded from TechSkills - книги по программированию
Forwarded from WebCraft - ремесло веб разработки
Laravel | LazyCollection
LazyCollections - это особые коллекции в Laravel, которые в качестве источника данных использует не массивы, а генераторы. Это позволяет существенно сократить потребление памяти.
Также их можно использовать и при запросах моделей из БД, для этого достаточно вместо get использовать метод cursor().
LazyCollections - это особые коллекции в Laravel, которые в качестве источника данных использует не массивы, а генераторы. Это позволяет существенно сократить потребление памяти.
Также их можно использовать и при запросах моделей из БД, для этого достаточно вместо get использовать метод cursor().
Forwarded from Laravel World
Новое в Laravel: Задержка уведомлений канала
https://www.amitmerchant.com/delaying-notifications-channel-wise-in-laravel-8x/
https://www.amitmerchant.com/delaying-notifications-channel-wise-in-laravel-8x/
Amit Merchant - A blog on PHP, JavaScript, and more
Delaying notifications channel-wise in Laravel 8.x
Up until now, if you would need to delay notifications, you could do it by chaining the delay method onto your notification instantiation like so.
Forwarded from Laravel World
В этом уроке я покажу вам еще один способ проверки запроса формы, гораздо более чистый и повышающий удобство сопровождения ваших тестов. Многие разработчики пытаются эффективно протестировать запросы форм
https://laravel.demiart.ru/unit-testing-laravel-form-requests-in-a-different-way/
(form requests
). Обычно большая часть времени тратится на написание отдельного модульного теста для каждого правила в запросе. Что ведете к множеству тестов, типа test_request_without_title
и test_request_without_content
. Причем все эти методы будет реализованы абсолютно одинаково, отличаясь только вызовами конечной точки с различными данными. В результате имеем кучу дублированного кода.https://laravel.demiart.ru/unit-testing-laravel-form-requests-in-a-different-way/
Уроки Laravel
Еще один способ тестирования запросов в Laravel | Уроки Laravel
В этом уроке я покажу вам еще один способ проверки запроса формы, гораздо более чистый и повышающий удобство сопровождения ваших тестов. Многие разработчики пытаются эффективно протестировать запросы
Forwarded from Laravel World
Быстрая настройка Laravel + Xdebug + VSCode
https://rohit-shirke.medium.com/laravel-xdebug-vscode-awesome-local-php-development-3b6e498bb5a1
https://rohit-shirke.medium.com/laravel-xdebug-vscode-awesome-local-php-development-3b6e498bb5a1
Medium
Laravel + Xdebug+ Vscode = Awesome local PHP development.
Hello folks, this is short read for quick Xdebug configuration for debugging Laravel based application. (This also applies to any in…
Forwarded from Laravel World
Создание BaseCode и Shift дало мне уникальное понимание написания приложений на Laravel. Я объединил свои 20 лет программирования и 20 000 апгрейдов Ларавел в 10 советов по созданию легко обслуживаемых приложений.
Они могут показаться вам фундаментальными и не обязательными. Но любой серьезный код на Laravel использует их. Проще говоря, чем больше советов вы используете, тем более понятным будет ваша код.
https://laravel.demiart.ru/maintainable-laravel-apps/
Они могут показаться вам фундаментальными и не обязательными. Но любой серьезный код на Laravel использует их. Проще говоря, чем больше советов вы используете, тем более понятным будет ваша код.
https://laravel.demiart.ru/maintainable-laravel-apps/
Уроки Laravel
Пишем приложения на Laravel, которые легко поддерживать. | Уроки Laravel
Создание BaseCode и Shift дало уникальное понимание Laravel. Я объединил 20 лет кода и 20 000 апгрейдов в 10 советов по созданию легкообслуживаемых приложений.
Forwarded from Laravel World
Руководство по созданию CLI (Интерфейс Командной Строки)
Свежая онлайн-книга, которая поможет вам в создании CLI-приложений, используя традиционные принципы UNIX, но в соответствии с современными требованиями.
https://clig.dev/
Свежая онлайн-книга, которая поможет вам в создании CLI-приложений, используя традиционные принципы UNIX, но в соответствии с современными требованиями.
https://clig.dev/
clig.dev
Command Line Interface Guidelines
An open-source guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day.
Forwarded from Laravel World
Причины использовать Композицию вместо Наследования в PHP
https://www.amitmerchant.com/reasons-use-composition-over-inheritance-php/
https://www.amitmerchant.com/reasons-use-composition-over-inheritance-php/
Amit Merchant - A blog on PHP, JavaScript, and more
Reasons to use Composition over Inheritance in PHP
In object-oriented programming, there are two ways using which classes can achieve polymorphic behavior: “Inheritance” & “Composition”.
Forwarded from Laravel World
Кастомные отношения или, иными словами, работа со сложными отношениями между базой данных и моделями Laravel.
https://laravel.demiart.ru/custom-relationship/
https://laravel.demiart.ru/custom-relationship/
Уроки Laravel
Кастомные отношения | Уроки Laravel
Или, иными словами, работа со сложными отношениями между базой данных и моделями Laravel. Недавно мне пришлось столкнуться с проблемой производительности на одном из наших крупных Laravel-проектов. Бы
Forwarded from WebCraft - ремесло веб разработки
Laravel | Структурирование роутов
В статье даются советы по структурированию роутов в больших приложениях на Laravel.
В статье даются советы по структурированию роутов в больших приложениях на Laravel.
Forwarded from PHP Books
Forwarded from WebCraft - ремесло веб разработки
Laravel | HTTP Client
Начиная с 7й версии в составе Laravel присутствует встроенный HTTP клиент. Клиент построен на основе библиотеки Guzzle, но предоставляет более простой API.
Присутствуют средства как для отправки и разбора запросов, так и для тестирования.
Начиная с 7й версии в составе Laravel присутствует встроенный HTTP клиент. Клиент построен на основе библиотеки Guzzle, но предоставляет более простой API.
Присутствуют средства как для отправки и разбора запросов, так и для тестирования.
Forwarded from Веб-страница
20 лучших практик Dockerfile
В этой статье вы найдёте 20 различных практик для работы с файлами Docker, которые помогут вам избежать проблем с безопасностью и не только:
https://tprg.ru/GOUc
#docker #бэкенд
В этой статье вы найдёте 20 различных практик для работы с файлами Docker, которые помогут вам избежать проблем с безопасностью и не только:
https://tprg.ru/GOUc
#docker #бэкенд
Forwarded from TechSkills - книги по программированию
Forwarded from Laravel World
Как бы ни была прекрасна документация Laravel, но в фреймворке еще много недокументированных функций и скрытых жемчужин. Одной из них является Eloquent-метод firstOr().
https://laravel.demiart.ru/secret-method-firstor/
https://laravel.demiart.ru/secret-method-firstor/
Уроки Laravel
Тайный метод firstOr() | Уроки Laravel
Как бы ни была прекрасна документация Laravel, но в фреймворке еще много недокументированных функций и скрытых жемчужин. Одной из них является Eloquent-метод firstOr(). Впервые я узнал о нём из этого
Forwarded from Веб-страница
Тайна убийства SQL
В дополнение к подборке игр для программистов ещё одна игра, теперь уже для прокачки навыков работы с SQL. В SQL City произошло убийство и ваша задача его раскрыть, решая различные задачи.
Попробуйте:
https://tprg.ru/c1by
#sql
В дополнение к подборке игр для программистов ещё одна игра, теперь уже для прокачки навыков работы с SQL. В SQL City произошло убийство и ваша задача его раскрыть, решая различные задачи.
Попробуйте:
https://tprg.ru/c1by
#sql
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
YouTube
Путь начинающего DevOps'a. Азиз Садыков
Очень частый вопрос у начинающих опсов: "Куда идти? Что учить?" Опытные специалисты, к сожалению, отвечают на этот вопрос: "Вот тебе список, учи всё!"
Вы сможете ознакомиться со свежим взглядом специалиста, который ещё не забыл, как учился. Азиз расскажет…
Вы сможете ознакомиться со свежим взглядом специалиста, который ещё не забыл, как учился. Азиз расскажет…