Все ошибки, предупреждения и уведомления в 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
Как я раньше не слышал о свойстве
animation-composition? Я только что заметил его в блоге Manuel Matuzović:В CSS анимацию можно компоновать тремя способами: заменять, добавлять и накапливать. Свойство animation-composition позволяет переключаться между ними.
Ха! Значит, можно эффективно добавлять, заменять или комбинировать анимации, о чем я никогда раньше не задумывался! Я даже не задумывался о стандартном поведении, заменяющем анимацию на элементе, так что в приведённом ниже CSS
.element будет перемещаться только на 100px....element {
animation: move 2s infinite;
transform: translateX(10px);
}
@keyframes move {
to {
transform: translateX(100px);
}
}Но что, если нужно сложить эти свойства, чтобы получилось
100 + 10? Для этого и существует animation-composition, и её можно использовать следующим образом:.element {
animation: move 2s infinite;
transform: translateX(10px);
animation-composition: add;
}
@keyframes move {
to {
transform: translateX(100px);
}
}Ха! Очень аккуратно!
Самое забавное, что когда я увидел это свойство сегодня утром, моей первой мыслью было: зачем нам это нужно? Я не мог представить сценариев, в которых оно помогло бы выпутаться из сложных проблем или помочь в работе с анимацией (что, признаться, случается со мной крайне редко). А потом, во второй половине дня, я работал с инженером и понял, что можно использовать эти
animation-composition штуки без написания кучи сложного JavaScript!Не забудьте также посмотреть пост Bramus'а о комбинировании нескольких анимационных эффектов.
#css #cssanimation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
export default xxx и export {xxx as default}Разница между
export default xxx и export { xxx as default } в JavaScript может показаться малозаметной, но может повлиять на поведение кода.Модули — автономные фрагменты кода, позволяющие импортировать и использовать их в других модулях. Они помогают разработчикам сохранять код организованным, удобным для сопровождения и понятным.
Для работы с модулями необходимо понимать синтаксис импорта и экспорта.
import: Используется для импорта именованных экспортов или экспортов по умолчанию из других модулей.export: Используется для экспорта значений, функций или классов из модуля, делая их доступными для импорта другими модулями.Существует два вида экспорта:
#JavaScript #js
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Вам когда-нибудь нужно было проверить, работает ли подключение к БД так, как нужно? Сколько открытых соединений? Может быть, хотите узнать общий размер БД? В Artisan есть несколько классных команд, позволяющих сделать именно это
#laravel #artisan #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
else.public function getUserStatus($user)
{
if ($user->isActive()) {
return 'active';
}
return 'inactive';
}
Приведенный пример можно ещё упростить, используя тернарный оператор.
public function getUserStatus($user)
{
return $user->isActive() ? 'active' : 'inactive';
}
#php #cleancode #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3
bcdivmodВ PHP 8.4 в расширении BCMath представлена новая функция
bcdivmod, делящая заданное число на заданный делитель и возвращающая как частное, так и остаток. Результат по сути идентичен вызову функций bcdiv и bcmod.bcdivmod может быть использован в случаях, когда необходимо получить частное и остаток от деления, и избавляет от необходимости вызывать функции bcdiv и bcmod по отдельности.Возвращаемое значение — массив, в котором первое значение — частное от деления, а второе — остаток.
#php #php84 #bcmath
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1