OneCode
Ir al canal en Telegram
Full Stack на PHP, Laravel и всё, что с этим связано. YouTube: https://www.youtube.com/@onecode_blog
Mostrar más1 328
Suscriptores
Sin datos24 horas
Sin datos7 días
-830 días
Archivo de publicaciones
1 328
Привет, всем!
Ребят по зарез нужен разраб на работу на Laravel в компанию.
Я работаю с середины августа в этой компании. Компания хорошая. Платит исправно. Есть четкое разделение: фронты, бэки, девопс, проектный менеджер, тим-лид, тех писатель и т.д. и т.п.
Так вот нужен бэкендер. ЗП от 100 до 160 тыс. руб. в месяц.
Кому интересно, пишите мне в личку, свяжу с тим-лидом для собеса.
1 328
Парни, не поверите.
Решил с 1 сентября подвинуть дела и продолжить запись видосов.
В итоге мотоцикл свалился, как снег на голову - какие тут видосы 😃
Теперь вчера уже подготовил материал для видео, проверил микрофон - сегодня хотел записать.
В итоге мобилизация - какой тут видос 😃
1 328
Изменение состояния сущности
Изображения (скрины) отправлю в следующем сообщении.
Наши модели и база данных содержат поля, отвечающие за состояние сущности.
Например, пользователь может быть заблокирован или РАЗблокирован.
Способ 1
В этом случае можно добавить в таблицу
usersполе
blockedс типом
boolean. Тогда админ сможет блокировать пользователя, переключая чекбокс в админке. Этот пример я накидал на первом изображении 👇 Проблема Рано или поздно админ спросит - а когда был заблокирован этот юзер? Начинающий разработчик скорее всего пожмёт плечами и скажет, что таких данных нет. А опытный разработчик заглянет в логи и ответит на поставленый вопрос. Если, конечно, значения поля НЕ менялось напрямую в базе данных 😁 Решение В любом случае ничего страшного НЕ произойдёт, но нормальный разработчик сделает выводы, что в следующий раз лучше сразу хранить дату и время блокировки юзера. (Способ 2) Для решения этой задачи, можно вместо
booleanдля поля
blockedиспользовать дату и время, например
timestampс возможностью НЕ указывать значение (nullable). В таком случае мы получаем всё тоже самое (переключатель ```null/datetime```) + имеем дату блокировки пользователя. Этот пример показан на втором изображении 👇 Признавайся, делал так? Проблема Однако этот способ тоже НЕ идеальный, потому что здесь есть дата блокировки пользователя, НО нет даты его РАЗблокировки 😁 Получается, что задача решена наполовину, а для нас (хацкеров) это НЕприемлемо. Решение Логичное решение - добавить отдельное поле для хранения времени изменения переключателя. Способ 3 Этот вариант сочатает в себе оба предыдущих способа и, наверно, является наиболее универсальным. Теперь главное НЕ забыть обновлять дату и время ```blocked_at``` в момент изменения поля
blocked. Внимание на третье изображение 👇 Проблема Но помимо поля
blockedу юзера есть много других полей. И тут возникает логичный вопрос - добавлять дополнительное поле с временем изменения к каждому из полей юзера? То есть по-хорошему, мы хотим знать какие поля менялись? когда менялись? и значения ДО и ПОСЛЕ? Решение Начинающий разработчик, возможно, действительно начнёт добавлять отдельные поля. Хотя бы для некоторых свойств пользователя (самых важных). Но мы же не такие? Мы будем думать над универсальным "оружием". А кто-то пойдёт гуглить готовое решение. Лентяй 🫵 Способ 4 Все выходные мы думали над решением и есть же! 1. Можно создать отдельную модель, например
Change(изменение). 2. Привязываем эту модель к любой другой модели нашего приложения (через трейт HasChanges). 3. Указываем какие поля мы хотим отслеживать (через абстрактный метод в трейте). 4. На основе событий модели (created, updated) наш трейт автоматически записывает историю в базу данных (таблица changes). 5. Мы в любой момент видим лог всех изменения наших записей: дату, время, значения ДО и ПОСЛЕ. Изображение НЕ прилагаю. Предлагаю тебе самому подумать на решением 😝 Итог Подобное решение иногда раально упрощает жизнь. Особенно, если пользователь заявляет, что его аккаунт взломали 😃 Мы можем увидеть: когда был вход, когда изменился email, пароль и тд. Ставь лайк, если полезно! Может запишем видео на эту тему. ПС: если руками лазить в базу, то тут ничего не поможет 😁 ППС: если ооочень хочется, то можно 😉 #php #laravel #db #bool #boolean
1 328
Laracon - конференция Laravel
На конференции, помимо прочего, показали, что с помощью Laravel Livewire теперь можно создавать настоящие SPA с серверным рендерингом через привычный шаблонизатор Blade - практически без JavaScript!
Ссылка на фрагмент, где Калеб (разработчик Livewire и AlpineJS) показывает этот функционал:
https://youtu.be/f4QShF42c6E?t=7949
#laracon
1 328
Laravel + Inertia + Vue (React)
Пошаговая инструкция по разработке простого проекта на современном стеке.
https://bootcamp.laravel.com
#laravel #inertial #bootcamp
1 328
Обработка PDF
Куча инструментов для работы с PDF - конвертация, редактирование, наложение водяных знаков и тд.
Есть программный интерфейс (API) 👌
https://www.ilovepdf.com
#pdf
1 328
Пакет для автоматического создания и удаления дополнительных серверов
Например, наше приложение работает с разной нагрузкой - днём она высокая, а ночью маленькая.
Или у нас есть очереди, которые обрабатывают разное кол-во задач. То густо, то пусто 😃
Пакет будет каждую минуту запускать функцию, в которой мы говорим сколько серверов нужно в текущий момент.
Это позволяет сильно экономить на серверах.
Получается такой мини-кубернетис с автоматическим горизонтальным масштабированием.
Серверы создаются из заранее подготовленного образа. Прикольная тема, если что будем иметь ввиду.
https://spatie.be/docs/laravel-dynamic-servers/v1/introduction
#laravel #server #servers
1 328
Как работает цикл событий в JavaScript
Полезная статья для понимания механизма асинхронной работы JS.
https://habr.com/ru/post/680846/
#js #async
1 328
Парсинг сайтов
Я никогда особо не интересовался парсингом сайтов, потому что мне это НЕ интересно.
Однако знаю, что многие любят эту тему, поэтому вот интересная статья с ответами на вопросы.
Кстати, если не вкурсе, то парсинг - это вытаскивание информации со страниц сайтов. Например, вытащить и сохранить в свою базу данных товары и цены с mvideo.
https://vc.ru/dev/496144-20-mln-rubley-v-god-na-parsinge-saytov
#parsing
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
