Поиск по блогу
25.11.2020
События в Laravel представлены реализацией паттерна Observer, что позволяет подписываться и прослушивать события приложения. Как правило, классы событий находятся в директории app/Events, а классы обработчиков событий — в app/Listeners. Класс события не содержит логики — это просто контейнер для объекта.
04.11.2020
Фреймворк Laravel имеет в своём арсенале много полезных функций, и одна из них — привязка модели к маршруту (Route Model Binding). Привязка модели к маршруту — это механизм внедрения экземпляра модели по ключу маршрута. Звучит сложно, но на самом деле все просто. Мы уже использовали привязку в панели управления много раз.
31.10.2020
Давайте создадим контроллер для показа страницы сайта в публичной части. У этого контроллера будет только одно действие, а следовательно — только один метод. Создать заготовку такого контроллера можно с помощью artisan-команды. Добавим маршрут в файл routes/web.php и создадим шаблон page/show.blade.php.
11.10.2020
Давайте теперь займемся оформлением заказа в магазине. Нам потребуются две таблицы в базе данных — таблица orders (для хранения заказов) и таблица order_items (для хранения заказанных товаров). Создаем две модели и две миграции с помощью artisan-команды. После этого запускаем миграцию, чтобы создать таблицы базы данных.
04.10.2020
Для каждого товара в корзине есть две кнопки — «Плюс» и «Минус», которые увеличивают или уменьшают количество. Давайте добавим два маршрута, создадим две формы в шаблоне и реализуем два метода в контроллере — plus() и minus(). В результате получился большой и запутанный контроллер, а модель не используется вовсе — надо это исправить.
03.10.2020
Добавим еще один контроллер BasketController, который будет отвечать за корзину покупателя. Корзины будем хранить в таблице baskets базы данных. И нам еще потребуется таблица для связи многие-ко-многим — для товаров и корзин. В одной корзине может быть несколько товаров, один товар может быть в нескольких корзинах.
05.09.2020
Допустим, у нас есть локальная сеть компании и локальная сеть филиала, расположенные далеко друг от друга. И нам надо обеспечить связь между этими сетями по защищенному каналу. Интернет-провайдеры не предоставляют белых ip-адресов, поэтому нам потребуется промежуточный сервер, у которого такой ip-адрес есть.
29.08.2020
WireGuard — это новый, современный VPN сервис с открытым исходным кодом, который позиционирует себя как замену других VPN решений. Проблема прочих VPN решений в том, что их тяжело настроить и дорого обслуживать. Преимущества WireGuard — простота использования, современная криптография, компактный код и высокая производительность.
19.08.2020
В Ubuntu Desktop 18.04 за доступ к удаленному рабочему столу отвечает служба Vino. Запускаем приложение «Параметры», переходим в раздел «Общий доступ» и кликаем переключатель в правом верхнем углу. Потом кликаем по «Общий доступ к экрану», выбираем «Требовать пароль» и вводим пароль.
14.08.2020
Допустим, что в силу каких-то причин мы не можем установить VPN-сервер на маршрутизатор gateway1, а VPN-клиентов — на маршрутизаторы gateway2 и gateway3. И вынуждены установить сервер и клиенты на три отдельных сервера внутри сетей. В этом случае нам нужны дополнительные маршруты, чтобы компьютеры трех сетей могли общаться между собой.