OneCode
1.39K subscribers
629 photos
60 videos
3 files
525 links
Full Stack на PHP, Laravel и всё, что с этим связано.
YouTube: https://www.youtube.com/@onecode_blog
Download Telegram
Метод
Log::shareContext()
позволяет указать общие (контекстные) данные, которые будут добавлены во все логи в рамках текущего запроса.

Например, можно добавить общий UUID для всех логов в рамках запроса, чтобы потом было удобнее их фильтровать.
VPN включен по-умолчаиню

Заметил, что теперь у меня наоборот - VPN работает постоянно, но иногда отключаю, если какой-то сайт НЕ открывается ))) Как у тебя?
Проект на чистом PHP (без CMS/Frameworks)

Попался проект на чистом PHP (даже успешно развернул его).

Писали раньше так и не парились. Смотришь на код - всё понятно. А теперь напридумывали всякого 😃
👍41👏1
Media is too big
VIEW IN TELEGRAM
Ребята, просто иду и такой кайф
👍8
Раньше стартапы начинались с гаража, а теперь с проекта на Laravel 😃
👍4
Предыдущий пост был бестолковый. Исправляюсь.

Несколько лет использую программу 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
🔥15👍10
В Laravel при использовании модели можно передать массив идентификаторов (ID) в метод
find
, чтобы выполнить запрос
where in
к базе данных.

#laravel #tip
👍7
Ничего себе вчера народу подписалось 😃 Всем привет! 👋 В закрепе есть наш чат, где можно потрещать, если что 🤝 Велком!
👍2
Ура, товарищи! 🥳
👍6
Тоже пишешь теперь такие конструкторы? 😍 PHP 8.1
🔥6
Коллеги, в комментариях к предыдущему посту вы спрашиваете - в чем особенность того конструктора?

Отвечаю - PHP 8.1 позволяет указывать аргументы конструктора таким образом, что они сразу становятся свойствами этого класса.

Раньше нам нужно было:
1. Объявить свойство класса.
2. Указать аргумент в конструкторе.
3. Сохранить значение в это свойство.

А теперь это одна строчка кода.

Классический пример на скрине. Можно сравнить 👍
4🔥1
Накидал полезную функцию для получения строкового ключа из массива ☝️

Покажу реальный пример её использования, если наберём 12 лайков 😜
👍37
Спасибо за лайки! Вот так бы всегда 😃

Как обещал прикладываю простой пример использования нашей функции fingerprint, которая возвращает подпись массива.

Смысл примера:
- У нас есть посты в блоге (как обычно =))
- Приходит запрос за списком постов (GET api/posts)
- В запросе могут быть параметры (категория, поиск, страница пагинации)
- Мы хотим кешировать результаты предыдущих запросов, чтобы не тревожить базу по пустякам
- Но нам нужен ключ для кеша, который зависит от параметров в запросе (категория, страница и поиск)
- Поэтому мы берём массив параметров из запроса (по сути - фильтров) и формируем из них подпись при помощи нашей функции
- Как вы помните, fingerprint сначала сортирует массив по ключам, поэтому результат всегда будет одинаковый НЕ зависимо от порядка элементов в массиве.

Поэтому наш «отпечаток пальца» помогает нам сформировать ключ для кэша ($key) именно под этот запрос.

Надеюсь пример понятен. Если что обсуждаем вопросы в комментариях. Лайк! 🤝

#tip
👍13
Как понять за 30 секунд, подходит ли тебе страна

Коменты там угарные 😂

https://vc.ru/migrate/404455-kak-ponyat-za-30-sekund-podhodit-li-tebe-strana

#fun
👍2😱2
Хай, гайз! Делюсь с вами еще одной фишкой из старого проекта.


Что имеем
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 места)
OneCode
Хай, гайз! Делюсь с вами еще одной фишкой из старого проекта. Что имеем 1. Обычное html-поле select[type="country_id"] со списком стран. 2. Проект на Laravel + Livewire-компонент с формой для пользователя. 3. Шаблон на старом добром Bootstrap 4 + jQuery…
Конкурс! Приз 500 рублей на карту 💸

Победителем станет тот, кто напишет в комментариях что можно оптимизировать в примере из этого поста. Написать нужно то, о чем я думаю 😃 и приложить полноценный пример кода.

Выиграет первый правильный ответ, НО сообщение нельзя изменять!

Удачи 👍