Все потоки
Поиск
Написать публикацию
Обновить
23.17

Laravel *

Бесплатный веб-фреймворк с открытым кодом

Сначала показывать
Порог рейтинга
Уровень сложности

За что я ненавижу Eloquent ORM

Время на прочтение4 мин
Количество просмотров32K

image


Всем привет. Хочу перед вами исповедаться и рассказать немного о том, что я чувствую, когда разрабатываю на Laravel. Нет, не подумайте, я обожаю этот фреймворк и безумно благодарен команде, которая его создала и поддерживает, они делают крайне крутое дело и, на мой взгляд, Laravel является лучшим продолжением не менее горячо любимого мною Symfony.


Я обожаю тупой код. Тупой в том смысле, что даже через 10 лет, если заказчик попросит тебя внести изменения в него, ты сможешь сделать это не вникая во всю логику, даже будучи после пятничного корпоратива, ничего в старом коде не сломав. И тупой в том смысле, что не нужно прикладывать никаких когнитивных усилий, чтобы его понять. Но есть в Laravel Eloquent ORM одно архитектурное решение, которое заставляет меня плакать. Интересно? Заходите под кат.

Читать дальше →

PHP-Дайджест № 146 (10 – 24 декабря 2018) + Итоги 2018 года

Время на прочтение5 мин
Количество просмотров16K

По традиции подведем итоги уходящего года и вспомним самые значимые события в мире PHP. И конечно, ссылки на свежие новости, полезные инструменты и интересные материалы за последние две недели.


Под катом вас также ждет розыгрыш лицензий на PhpStorm от JetBrains.

Приятного чтения и с наступающим Новым годом!


Читать дальше →

PHP-Дайджест № 145 (26 ноября – 10 декабря 2018)

Время на прочтение5 мин
Количество просмотров15K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0, Symfony 4.2, Composer 1.8.0 и другие релизы, конец поддержки PHP 5.6 и PHP 7.0, свежие предложения из PHP Internals, порция полезных инструментов, видеозаписи докладов и многое другое.
Приятного чтения!


Читать дальше →

PHP-Дайджест № 144 (12 – 26 ноября 2018)

Время на прочтение5 мин
Количество просмотров15K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0RC6, PhpStorm 2018.3 и другие релизы, Symfony покидает PHP-FIG, свежие предложения и новости PHP Internals, порция полезных инструментов, видеозаписи с прошедших митапов и конференций и многое другое.
Приятного чтения!


PHP-Дайджест № 143 (1 – 12 ноября 2018)

Время на прочтение3 мин
Количество просмотров14K

Свежая подборка со ссылками на новости и материалы. В выпуске: принят PSR-18, статистика версий PHP от Packagist, анонсы митапов и карта митапов, PHP 7.3.0RC5 и другие релизы, порция полезных инструментов, о будущем PHP-дайджеста, и многое другое.
Приятного чтения!


Читать дальше →

Middleware и возможности Pipeline в Laravel

Время на прочтение7 мин
Количество просмотров25K


Laravel — это поистине большая и сложная система, которая старается решить большинство бытовых задач веб разработчика максимально элегантным способом и собрать в себе как можно больше инструментов и, что очень важно — с как можно более человеческим интерфейсом.

И сегодня речь пойдет об одном из таких инструментов, а точнее о его использовании и реализации со стороны программиста. Отсутствие полноценной документации, а также отсутствие русскоязычных статей и очень малое количество статей иностранных — подтолкнуло меня к решению раскрыть некую завесу тайны об этой интересной возможности фреймворка и выбору этой темы в качестве моей первой статьи на Хабре.
Читать дальше →

Генератор кода для Laravel — на ввод OAS, на вывод JSON-API

Время на прочтение9 мин
Количество просмотров7K
Возможность создать генератор кода для API, чтобы избавить будущее поколение от необходимости постоянно создавать одни и те же контроллеры, модели, роутеры, мидлвары, миграции, скелетоны, фильтры, валидации и т.д. вручную (пусть даже в контексте всем привычных и удобных фреймворков), показалась мне интересной.

Изучил типизацию и тонкости спецификации OpenAPI, мне он понравился линейностью и возможностью описывать структуру и типы любой сущности на 1-3 уровня глубиной. Так как на тот момент уже был знаком с Laravel (до него юзал Yii2, CI но они были менее популярны), а так же с json-api форматом вывода данных — вся архитектура улеглась в голове связным графом.



Давайте перейдем к примерам.
Читать дальше →

PHP-Дайджест № 142 (15 – 29 октября 2018)

Время на прочтение4 мин
Количество просмотров15K

Свежая подборка со ссылками на новости и материалы. В выпуске: Будущее PHP и Zend Framework, RFC из PHP Internals о повышении производительности, порция полезных инструментов, новый слоник PHP доступен для заказа, и многое другое.

Приятного чтения!

Читать дальше →

Вам действительно нужны entrust или laravel-permission для реализации вашей авторизации?

Время на прочтение3 мин
Количество просмотров14K
«Так… мне нужна простая авторизация. Какая-нибудь админская роль, и может роль редактора/модератора. Сейчас погуглим. О! Для laravel уже есть готовые пакеты! zizaco/entrust, spatie/laravel-permission и другие! Давай выберем какой-нибудь!»

Примерно так все и происходит. Потом миграция пакета добавляет в базу 5 табличек для хранения ролей, пермишенов и их отношений. Все правила авторизации, такие как роли 'admin' и 'editor' могут делать 'edit posts', хранятся в этих таблицах. Обычно в проекте много копий базы данных. Копии разработчиков, тестовая база(ы) и продакшен. В итоге все эти правила авторизации вынуждены синхронизироваться между базами данных.

Читать дальше →

PHP-Дайджест № 141 (1 – 15 октября 2018)

Время на прочтение3 мин
Количество просмотров16K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0RC3, CodeIgniter 4.0.0 alpha1 и другие релизы, 62% сайтов работает на PHP 5, видеозаписи докладов с конференций и митапов, порция полезных инструментов, и многое другое.
Приятного чтения!


Читать дальше →

Docker + Laravel = ❤

Время на прочтение10 мин
Количество просмотров86K

laravel-in-docker


Эта статья использует устаревший и не самый рациональный подход, на данный момент не могу его рекомендовать к использованию. Рекомендую к прочтению следующую статью.

В данной статье я расскажу о своём опыте "заворачивания" Laravel-приложения в Docker-контейнер да так, что бы и локально с ним могли работать frontend и backend разработчики, и запуск его на production был максимально прост. Так же CI будет автоматически запускать статические анализаторы кода, phpunit-тесты, производить сборку образов.


"А в чём, собственно, сложность?" — можешь сказать ты, и будешь отчасти прав. Дело в том, что этой теме посвящено довольно много обсуждений в русскоязычных и англоязычных комьюнити, и почти все изученные треды я бы условно разделил на следующие категории:


  • "Использую докер для локальной разработки. Ставлю laradock и беды не знаю". Круто, но как обстоят дела с автоматизацией и запуском на production?
  • "Собираю один контейнер (монолит) на базе fedora:latest (~230 Mb), ставлю в него все сервисы (nginx, бд, кэш, etc), запускаю всё супервизором внутри". Тоже отлично, прост в запуске, но как на счёт идеологии "один контейнер — один процесс"? Как обстоят дела с балансировкой и управлением процессами? Как же размер образа?
  • "Вот вам куски конфигов, приправляем выдержками из sh-скриптов, добавим магических env-значений, пользуйтесь". Спасибо, но как же на счёт хотя бы одного живого примера, который я бы мог форкнуть и полноценно поиграться?

Для нетерпеливых — ссылка на репозиторий, склонировав который ты сможешь запустить Laravel-приложение одной командой. Так же не составит труда его запустить на том же rancher, правильно "слинковав" контейнеры, или использовать продуктовый вариант docker-compose.yml как отправную точку.
Читать дальше →

PHP-Дайджест № 140 (17 – 30 сентября 2018)

Время на прочтение4 мин
Количество просмотров17K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3 RC2, Codeception 2.5 и другие релизы, типизированные свойства в PHP 7.4, концепт предзагрузки кода от Дмитрия Стогова, порция полезных инструментов, и многое другое.
Приятного чтения!


MVC + Scenario против Толстых Контроллеров

Время на прочтение8 мин
Количество просмотров8.5K

MVC + Scenario Против Толстых Контроллеров


Современные PHP фреймворки (Symphony, Laravel, далее везде) убедительно показывают, что реализовать паттерн Model-View-Controller не так уж просто. Все реализации почему-то склонны к Толстым Контроллерам (fat controllers), осуждаемыми всеми, и разработчиками, и самими фреймворками.


Почему все так? И можно ли с этим как-то справиться? Давайте разбираться.

Читать дальше →

Ближайшие события

Нужно поднимать Kubernetes кластер, но я всего лишь программист кода. Выход есть

Время на прочтение8 мин
Количество просмотров20K


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

Ключевые слова — AWS + Terraform + kops . Если это полезно мне — возможно будет полезно кому-нибудь еще. Добро пожаловать в комментарии.
Читать дальше →

PHP-Дайджест № 139 (3 – 17 сентября 2018)

Время на прочтение4 мин
Количество просмотров17K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3 RC 1, PhpStorm 2018.3 EAP, Laravel 5.7 и другие релизы, HHVM прекращает поддержку PHP, типизированные свойства в PHP, порция полезных инструментов, видеозаписи докладов, и многое другое.
Приятного чтения!

PHP-Дайджест № 137 (6 – 20 августа 2018)

Время на прочтение3 мин
Количество просмотров15K

PHP 7.3.0 Beta 2 и другие релизы, предложение из PHP Internals, порция полезных инструментов, видеозапись «Пишем блокчейн на PHP», и многое другое.
Приятного чтения!


Читать дальше →

PHP-Дайджест № 136 (24 июля – 6 августа 2018)

Время на прочтение3 мин
Количество просмотров16K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0 Beta 1, PhpStorm 2018.2, Composer 1.7 и другие релизы, принят стандарт PSR-17, обзор Yii 3.0, альтернативная реализация Fiber API для асинхронных приложений, порция полезных инструментов, и многое другое.

Приятного чтения!


Читать дальше →

PHP-Дайджест № 135 (9 – 23 июля 2018)

Время на прочтение4 мин
Количество просмотров13K

В выпуске: PHP 7.3 alpha 4, ReactPHP 1.0 LTS и другие релизы, свежее предложение «Namespace Visiblity for Class, Interface and Trait» из PHP Internals, ведеозаписи докладов и вебинаров, порция полезных инструментов, и многое другое.
Приятного чтения!


PHP-Дайджест № 134 (24 июня – 8 июля 2018)

Время на прочтение4 мин
Количество просмотров16K

В выпуске: PHP 7.3.0 alpha 3, PHPStan 0.10, Yii 1.1.20 и другие релизы, свежее предложение из PHP Internals по сравнению объектов, порция полезных инструментов, и многое другое.
Приятного чтения!

Львы в пустыне и интроспекция

Время на прочтение6 мин
Количество просмотров7.4K
Наверное, практически все обитатели Хабра знают что такое дихотомия и как с ее помощью поймать льва в пустыне. Ошибки в программах тоже можно ловить дихотомией, особенно, при отсутствии вменяемой диагностической информации.

image

Однажды отлаживая свой проект на PHP/Laravel, я увидел в браузере вот такую ошибку:
Читать дальше →