Метод
Например, можно добавить общий UUID для всех логов в рамках запроса, чтобы потом было удобнее их фильтровать.
Log::shareContext()позволяет указать общие (контекстные) данные, которые будут добавлены во все логи в рамках текущего запроса.
Например, можно добавить общий UUID для всех логов в рамках запроса, чтобы потом было удобнее их фильтровать.
VPN включен по-умолчаиню
Заметил, что теперь у меня наоборот - VPN работает постоянно, но иногда отключаю, если какой-то сайт НЕ открывается ))) Как у тебя?
Заметил, что теперь у меня наоборот - VPN работает постоянно, но иногда отключаю, если какой-то сайт НЕ открывается ))) Как у тебя?
Предыдущий пост был бестолковый. Исправляюсь.
Несколько лет использую программу Todoist для ведения своих личных задач (список дел).
Однако Todoist так же позволяет создавать отдельные проекты, показывать задачи в виде Kanban-доски и даже работать там совместно с другими людьми.
Таким образом можно использовать эту программу для управления задачами в небольшом проекте (есть приложухи на комп и телефон).
Не реклама. Пишу о том, чем пользуюсь сам. Реально просто и удобно.
https://todoist.com
#tools
Несколько лет использую программу Todoist для ведения своих личных задач (список дел).
Однако Todoist так же позволяет создавать отдельные проекты, показывать задачи в виде Kanban-доски и даже работать там совместно с другими людьми.
Таким образом можно использовать эту программу для управления задачами в небольшом проекте (есть приложухи на комп и телефон).
Не реклама. Пишу о том, чем пользуюсь сам. Реально просто и удобно.
https://todoist.com
#tools
🔥6
Несколько TailwindCSS в одном проекте
Задача
1. У нас есть сайт с панелью администратора на TailwindCSS.
2. В CSS-файле админки НЕ должно быть классов от основного сайта (и наоборот).
Проблема
1. В TailwindCSS есть крутая функция, которая оставляет только CSS-классы из нашей вёрстки.
2. Вопрос - как разделить конфигурацию TailwindCSS для админки и основного сайта, чтобы они НЕ пересекались?
Решение
1. Мы можем указать TailwindCSS какой файл конфигурации использовать в каждом случае.
2. При использвании LaravelMix мы просто передаём название файла конфигурации отдельно для основного сайта и админки.
На скринах 2 отдельные конфигурации TailwindCSS для основного сайта (tailwind-app.config.js) и админки (tailwind-admin.config.js), а так же пример их сборки через LaravelMix с указанием конкретного конфига.
Полезно? Сделай репост! 👍
#tailwind #tools #mix
Задача
1. У нас есть сайт с панелью администратора на TailwindCSS.
2. В CSS-файле админки НЕ должно быть классов от основного сайта (и наоборот).
Проблема
1. В TailwindCSS есть крутая функция, которая оставляет только CSS-классы из нашей вёрстки.
2. Вопрос - как разделить конфигурацию TailwindCSS для админки и основного сайта, чтобы они НЕ пересекались?
Решение
1. Мы можем указать TailwindCSS какой файл конфигурации использовать в каждом случае.
2. При использвании LaravelMix мы просто передаём название файла конфигурации отдельно для основного сайта и админки.
На скринах 2 отдельные конфигурации TailwindCSS для основного сайта (tailwind-app.config.js) и админки (tailwind-admin.config.js), а так же пример их сборки через LaravelMix с указанием конкретного конфига.
Полезно? Сделай репост! 👍
#tailwind #tools #mix
🔥15👍10
Ничего себе вчера народу подписалось 😃 Всем привет! 👋 В закрепе есть наш чат, где можно потрещать, если что 🤝 Велком!
👍2
Коллеги, в комментариях к предыдущему посту вы спрашиваете - в чем особенность того конструктора?
Отвечаю - PHP 8.1 позволяет указывать аргументы конструктора таким образом, что они сразу становятся свойствами этого класса.
Раньше нам нужно было:
1. Объявить свойство класса.
2. Указать аргумент в конструкторе.
3. Сохранить значение в это свойство.
А теперь это одна строчка кода.
Классический пример на скрине. Можно сравнить 👍
Отвечаю - PHP 8.1 позволяет указывать аргументы конструктора таким образом, что они сразу становятся свойствами этого класса.
Раньше нам нужно было:
1. Объявить свойство класса.
2. Указать аргумент в конструкторе.
3. Сохранить значение в это свойство.
А теперь это одна строчка кода.
Классический пример на скрине. Можно сравнить 👍
❤4🔥1
Спасибо за лайки! Вот так бы всегда 😃
Как обещал прикладываю простой пример использования нашей функции
Смысл примера:
- У нас есть посты в блоге (как обычно =))
- Приходит запрос за списком постов (GET api/posts)
- В запросе могут быть параметры (категория, поиск, страница пагинации)
- Мы хотим кешировать результаты предыдущих запросов, чтобы не тревожить базу по пустякам
- Но нам нужен ключ для кеша, который зависит от параметров в запросе (категория, страница и поиск)
- Поэтому мы берём массив параметров из запроса (по сути - фильтров) и формируем из них подпись при помощи нашей функции
- Как вы помните,
Поэтому наш «отпечаток пальца» помогает нам сформировать ключ для кэша ($key) именно под этот запрос.
Надеюсь пример понятен. Если что обсуждаем вопросы в комментариях. Лайк! 🤝
#tip
Как обещал прикладываю простой пример использования нашей функции
fingerprint
, которая возвращает подпись массива.Смысл примера:
- У нас есть посты в блоге (как обычно =))
- Приходит запрос за списком постов (GET api/posts)
- В запросе могут быть параметры (категория, поиск, страница пагинации)
- Мы хотим кешировать результаты предыдущих запросов, чтобы не тревожить базу по пустякам
- Но нам нужен ключ для кеша, который зависит от параметров в запросе (категория, страница и поиск)
- Поэтому мы берём массив параметров из запроса (по сути - фильтров) и формируем из них подпись при помощи нашей функции
- Как вы помните,
fingerprint
сначала сортирует массив по ключам, поэтому результат всегда будет одинаковый НЕ зависимо от порядка элементов в массиве.Поэтому наш «отпечаток пальца» помогает нам сформировать ключ для кэша ($key) именно под этот запрос.
Надеюсь пример понятен. Если что обсуждаем вопросы в комментариях. Лайк! 🤝
#tip
👍13
Как понять за 30 секунд, подходит ли тебе страна
Коменты там угарные 😂
https://vc.ru/migrate/404455-kak-ponyat-za-30-sekund-podhodit-li-tebe-strana
#fun
Коменты там угарные 😂
https://vc.ru/migrate/404455-kak-ponyat-za-30-sekund-podhodit-li-tebe-strana
#fun
👍2😱2
Хай, гайз! Делюсь с вами еще одной фишкой из старого проекта.
Что имеем
1. Обычное html-поле
2. Проект на Laravel + Livewire-компонент с формой для пользователя.
3. Шаблон на старом добром
Задача
1. Определять страну пользователя по IP-адресу.
2. Автоматически выбирать эту страну в
3. Если страна у пользователя уже выбрана ранее, то ничего делать не нужно.
Решение
1. При загрузке страницы делаем GET-запрос на сервис
2. Если удалось получить страну, то устанавливаем её код (например RU) в качестве значения для соответсвующего свойства нашего Livewire-компонента (благо в базе ID стран - это их ISO-коды)
3. Магия Livewire автоматически выбирает эту страну в селекте благодаря реативности через
Профит! И лайк 🤗
#laravel #livewire #tip
Что имеем
1. Обычное html-поле
select[type="country_id"]со списком стран.
2. Проект на Laravel + Livewire-компонент с формой для пользователя.
3. Шаблон на старом добром
Bootstrap 4 + jQuery(купленый шаблон).
Задача
1. Определять страну пользователя по IP-адресу.
2. Автоматически выбирать эту страну в
selectв нашем компоненте.
3. Если страна у пользователя уже выбрана ранее, то ничего делать не нужно.
Решение
1. При загрузке страницы делаем GET-запрос на сервис
ipinfo.ioдля определения страны пользователя по его IP (бесплатный тариф до 50к запросов в месяц).
2. Если удалось получить страну, то устанавливаем её код (например RU) в качестве значения для соответсвующего свойства нашего Livewire-компонента (благо в базе ID стран - это их ISO-коды)
3. Магия Livewire автоматически выбирает эту страну в селекте благодаря реативности через
wire:model="country_id".
Профит! И лайк 🤗
#laravel #livewire #tip
👍10
ПС: можно обсудить детали в нашем телеграм чате:
https://t.me/onecode_chat (свободно 2 места)
https://t.me/onecode_chat (свободно 2 места)
OneCode
Хай, гайз! Делюсь с вами еще одной фишкой из старого проекта. Что имеем 1. Обычное html-поле select[type="country_id"] со списком стран. 2. Проект на Laravel + Livewire-компонент с формой для пользователя. 3. Шаблон на старом добром Bootstrap 4 + jQuery…
Конкурс! Приз 500 рублей на карту 💸
Победителем станет тот, кто напишет в комментариях что можно оптимизировать в примере из этого поста. Написать нужно то, о чем я думаю 😃 и приложить полноценный пример кода.
Выиграет первый правильный ответ, НО сообщение нельзя изменять!
Удачи 👍
Победителем станет тот, кто напишет в комментариях что можно оптимизировать в примере из этого поста. Написать нужно то, о чем я думаю 😃 и приложить полноценный пример кода.
Выиграет первый правильный ответ, НО сообщение нельзя изменять!
Удачи 👍