PipelineЧасто нужно обработать входные данные в несколько этапов, например, применить фильтры запроса или очистить данные в многоступенчатой цепочке. Если столкнулись с подобной ситуацией, воспользуйтесь хелпером
Pipeline #laravel #pipeline #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
defer().Функция
defer(), как следует из названия, позволяет отложить (проще говоря, перенести) выполнение функции или замыкания после того, как ответ будет отправлен обратно клиенту.Это удобно для небольших операций, выполняемых в фоновом режиме, когда назначение задания очереди (Queue Job) может оказаться слишком сложным - например, для отправки уведомлений.
Кроме того, функция`defer()
проверяет код состояния ответа (`2xx), чтобы убедиться в его успешности перед выполнением замыкания.#laravel #defer #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
Хотите преобразовать значение длины в значение без единицы измерения?
Из любого значения CSS можно убрать единицу измерения, для получения целого числа!
@property --unitless-val {
syntax: '<integer>';
inherits: true;
initial-value: 0;
}
@property --_u {
syntax: '<length>';
inherits: true;
initial-value: 0;
}
:root {
--val: 25em; /* используем любую единицу измерения длинны (px, em, ex, ch, rem, ...)*/
/* умножаем, затем делим на наибольшее значение, чтобы получить единицу измерения */
--_m: 3.35544e07; /* это значение зависит от браузера */
--_u: calc(var(--val)*var(--_m));
--unit: calc(var(--_u)/var(--_m)); /* = 1em */
--unitless-val: tan(atan2(var(--val),var(--unit))); /* = 25 */
/* В ближайшем будущем можно будет сделать
--unitless-val: calc(var(--val)/var(--unit));
*/
}
/* для Firefox нужно другое значение */
@supports (-moz-appearance: none) {
:root {
--_m: 3.40282e38;
}
}Вы можете подумать, что можно использовать
Infinity в качестве наибольшего значения, но это не сработает, потому что при делении на бесконечность всегда будет получаться 0.Проверено в
px, потому что значение преобразуется в px внутри переменной --_u.#css #hack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
git switch и git checkout: В чем разницаКоманды
git switch и git checkout используются для изменения веток, но у них есть различия в синтаксисе и поведении. Разберёмся в чём разница между ними.Одна из важнейших особенностей Git — возможность создавать различные ветки и работать в них. Ветки — это как параллельные временные линии проекта, в которых можно работать над различными функциями или экспериментами, не затрагивая стабильный код. Мы перемещаемся между ветками с помощью
git switch или git checkout.#git
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1
Метод eloquent
orderByRaw() позволяет просто передать сырой запрос для упорядочивания результатов.Например, сортировка по разнице между двумя столбцами.
#laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
Все ошибки, предупреждения и уведомления в PHP имеют уровень ошибки, и с помощью функций
error_reporting и set_error_handler PHP приложения могут контролировать, о каких ошибках сообщается, и переопределять поведение обработки ошибок по умолчанию с помощью обратного вызова.PHP имеет широкий диапазон уровней ошибок, причём константа
E_ALL является битовой маской OR всех констант E_, что означает установку сообщения об ошибках или обработчика ошибок для сообщения/обработки всех ошибок, предупреждений и уведомлений.Одним из уровней ошибок, ранее выдаваемых PHP, был
E_STRICT, когда код не был строго корректным, чтобы обеспечить совместимость и дальнейшее развитие. В PHP 7.0 большинство существующих предупреждений E_STRICT были преобразованы в E_NOTICE, а начиная с PHP 8.0 все предупреждения E_STRICT были преобразованы в E_NOTICE.Поскольку все уведомления
E_STRICT были преобразованы в E_NOTICE начиная с PHP 8.0, в PHP 8.4 константа E_STRICT объявлена устаревшей.error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT); // Constant E_STRICT is deprecated
#php #php84 #e_strict #deprecation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
При проверке форм иногда требуется условно требовать заполнение одного поля, если было заполнено другое. Laravel поставляется с правилом
required_if_accepted, позволяющим сделать именно это #laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1👏1
В наши дни градиентный текст довольно легко сделать с помощью
background-clip: text; — но это убивает возможность использовать text-shadow. На помощь приходит SVG.#frontend #css #svg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1
Начиная с Laravel v11.23, вы можете выполнять задачи одновременно. Это может ускорить работу, если есть независимые задачи, которые могут выполняться одновременно
#laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Атрибуты PHP — отличный способ добавить метаданные к классам, методам и свойствам. Laravel предоставляет множество атрибутов из коробки, которые можно использовать в приложениях.
Обзор PHP атрибутов Laravel с примерами от Christoph Rumpel.
#laravel #php #attribute
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
В своих приложениях мы часто используем выражение
where(..., 'like', ...). Знаете ли вы, что Laravel поставляется с методом whereLike, позволяющим сделать ещё один шаг вперёд и сделать оператор like нечувствительным к регистру? #laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Если добавляете что-либо в файл
.env, пожалуйста, не забудьте обновить и example.env! Это часть поддержания чистоты и организованности проектов. Please open Telegram to view this post
VIEW IN TELEGRAM
🤝5👍2🤡1
13 сентября 2024 года рабочая группа CSS выпустила первый публичный рабочий проект модуля CSS Values and Units Module Level 5. Он является продолжением предыдущего уровня и включает несколько интересных дополнений.
Вещи, которые ещё недавно были немыслимы, пробивают себе дорогу в спецификации: случайные значения, использование атрибутов в качестве значений в любом свойстве, возможность использовать порядок в вычислениях… Это выглядит многообещающе.
Многие из этих функций имеют общую черту: они упрощают CSS код. То, что раньше требовало множества правил или хаков, теперь можно будет сделать с помощью пары строк CSS. Как я уже сказал, это выглядит многообещающе. Вот список новых изменений (более подробная информация ниже):
attr(): теперь она может использоваться с любым атрибутом и в любом свойстве CSS (не только в content).calc-size(): использует в расчётах внутренние значения, такие как auto или min-content.first-valid() позволяет избежать проблем с пользовательскими свойствами с невалидными значениями.*-mix() с новой нотацией для соотношений.*-progress() для вычисления соотношения прогресса между диапазонами или внутри media, или container.random() и random-item() для возвращения случайных значений из диапазона или списка (наконец-то!)sibling-count() и sibling-index(), предоставляющие целочисленные значения для операций в зависимости от порядка и размера.toggle() для стилизации вложенных элементов, позволяющая циклически перебирать список значений.url() запросами.#frontend #css
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Официальный релиз состоится 21 ноября, поэтому самое время начать тестировать приложения.
#php #rc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Иногда вам может понадобиться отправлять уведомления «анонимным» пользователям, которые еще не хранятся в базе данных. Метод
route в Laravel позволяет сделать именно это #laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🥰1😁1
Основная защита от SQL инъекций (SQLi) — это параметризация пользовательского ввода, позволяющая безопасно внедрять его в SQL запросы. Это стандартная практика, о которой постоянно говорится, и в Laravel это сделать довольно просто. На самом деле, я редко встречаю уязвимости SQLi в приложениях Laravel, потому что Eloquent достаточно мощный.
По моему опыту, чем сложнее запрос и чем больше сырого SQL нужно написать, тем выше вероятность появления SQL инъекции.
#laravel #security #sqli
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Знаете ли вы, что можно добавить несколько столбцов после определенного столбца с помощью метода
after? #laravel #migration #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡2🤔1🤣1
Модули JavaScript — способ организации кода в многократно используемые компоненты, используемые совместно в разных файлах и проектах. Модули можно импортировать и экспортировать с помощью двух различных методов: экспорта по умолчанию и именованного экспорта. Рассмотрим экспорт по умолчанию и причины, по которым следует избегать его использования в модулях JavaScript.
#JavaScript #js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
При работе с аксессорами объекты по умолчанию кэшируются. Однако если у вас аксессор для примитивного значения, например строки, требующий больших вычислений, можно включить для него кэширование с помощью метода
shouldCache() #laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1