При работе с GitLab CI/CD может возникнуть ситуация, когда вы сталкиваетесь с ошибкой "Permission Denied при доступе к docker.sock". Она указывает на проблемы с доступом к Docker-демону, которые могут быть из-за неправильной конфигурации или настроек окружения. В данной статье рассмотрим причины этой ошибки и как её можно исправить.
Блог о технологиях и программировании
«Unetway» — блог о программировании, разработке и людях в IT. Здесь — статьи без воды, реальные решения и наблюдения изнутри. Пишу о том, как всё устроено на практике.
Livewire как API: странный костыль или рабочий трюк?
Livewire придумали для «живых» кнопочек и динамики без JS. Но кто-то решил: «А давай сделаем из него API». Звучит как дурь, но иногда работает. Ниже — опыт и разбор без фантиков.
CRUD на Livewire: когда лень писать нормальный фронт
Livewire — это такой чит-код для ленивых: вроде как у тебя фронт, но по факту — Blade с костылями. Если надо воткнуть CRUD без лишних плясок, оно спасает. А дальше уже сам решай — оставлять или выкидывать.
Тестирование Livewire компонентов
Если тебе надоело, что компоненты Livewire ведут себя как чёрт знает кто в продакшене, пора научиться тестировать их нормально.
Аутентификация и авторизация с помощью Livewire
Если тебе надоело, что пользователи ломают вход в проде, пора перестать терпеть и сделать нормальную аутентификацию через Livewire.
Создание формы с помощью Livewire
Как накатать форму в Laravel через Livewire без плясок с JavaScript.
Livewire: установка и настройка в Laravel
Livewire — это не серебряная пуля и уж точно не магия. Это костыль, но костыль удобный. Хочешь меньше писать JavaScript и больше жить в Laravel-шаблонах — норм вариант. Но не обманывайся: "поставил пакет и забыл" тут не работает.
Alpine.js и серверный рендеринг (SSR)
Alpine.js — маленький и удобный, но он изначально для браузера. Хочешь SSR? Придётся разбираться, как сервер отдаёт HTML, чтобы Alpine потом оживил его на клиенте.
Как использовать Alpine.js вместе с Vue.js или React
Если тебе взбрело в голову пихнуть Alpine.js рядом с Vue или React — значит, у тебя либо проект-зоопарк, либо задачи уровня «сделать кнопку за 5 минут и больше не трогать».
Управление состоянием в Alpine.js
Alpine.js — это мини-фреймворк, который позволяет оживлять страницы без тонны кода. Главное оружие здесь — состояние. Если не понимать, как с ним работать, любая интерактивность превратится в беспорядок.
Alpine.js: создание формы с валидацией и обработкой данных
Создаем простую форму с валидацией и обработкой данных, используя Alpine.js.
Создание простого приложения с Alpine.js
Alpine.js — это такой «мини-Vue» для ленивых. Библиотека весит копейки, подключается в одну строчку и даёт тебе реактивность без геморроя с билдерами и тоннами кода. Чтобы не трепать языком, соберём классический todo-лист — добавляем задачи, удаляем, ставим галочки.
Руководство по установке и настройке Alpine.js
Alpine.js — лёгкий способ оживить HTML. Подключение, счётчик на кнопке, работа с состоянием.
Сравнение Alpine.js с другими JS-фреймворками и библиотеками
JS-фреймворков море, но каждый делает одно и то же по-своему. Alpine.js — маленький и простой, React/Vue/Angular — тяжёлые, но мощные. Разбираемся, где кому место.
Обзор Alpine.js: зачем он веб-разработчику
Если думаешь, что Alpine.js — это «новый React», расслабься. Это минимализм в чистом виде: чуть JS, чуть HTML и никакой бюрократии.
Лучшие библиотеки Markdown для PHP
Markdown звучит как «легко и красиво», но в PHP выбор библиотек — это как выбирать между бензопилой и ножиком для резки хлеба.
Влияние исключений PHP на производительность
Исключения — это не зло само по себе, но в PHP они могут превратиться в бомбу замедления, если использовать их как обычный if.
Как использовать типы объединения в PHP
Типы объединения звучат пафосно, но на деле это просто инструмент, который помогает кодить без боли. Правда, как и с любым инструментом — можно всё испортить.
PHP JIT: что это такое и как использовать
JIT в PHP звучит как волшебство, но на деле это просто ещё одна железка под капотом. Работает, но не для всех скриптов.
Иерархия исключений PHP
PHP падает чаще, чем хочется. Исключения — это не декорация, а твой щит. Разберёмся, что за какие ошибки отвечает и как не сойти с ума, ловя их руками.
Тернарный и тернарный оператор объединения в PHP
Тернарный оператор в PHP — тот самый костыль, который позволяет писать условие в одну строчку, а не размазывать if/else на полэкрана. А ещё есть плюсик для массивов — вроде объединение, но с подлянкой. Дальше — примеры, где он реально нужен, а где лучше не корячиться.
Почему IP пользователя неправильно определяется в PHP
Определить IP-адрес пользователя — базовая задача для любого сайта. Но на практике всё не так просто: VPN, прокси и балансировщики нагрузки часто подменяют реальный IP и передают в PHP не то, что вы ожидаете.
Почему вместо new для работы с классами нужно использовать DI
Если ты всё ещё пихаешь new куда попало, поздравляю — ты сам себе роешь яму. Код превратится в бетонный блок, тесты будут адом, а менять хоть что-то — проще сжечь проект. DI — не серебряная пуля, но без него твой код — свалка.
Как не ожидать выполнения функции в Laravel
Если ты в Laravel и устал ждать, пока функция закончится, есть норм решения. Queues, асинхронные HTTP-запросы — это не магия, а грязное железо, которое реально работает.
Лучшие парсеры на PHP
Разбираем библиотеки для парсинга HTML и веб-страниц в PHP. Что удобно, что тормозит, а что превращает проект в боль.