Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

25 Laravel Tips and Tricks

PHPLaravel
Перевод
Было время, достаточно недавно, когда PHP и его сообщество ненавидели. Главная шутка была про то, насколько ужасен PHP.

Да, к сожалению, сообщество и экосистема просто были ниже сообществ других современных языков по уровню. Казалось, что предназначение PHP было прожить большинство времени в форме беспорядочных тем для WordPress.

Но позже, на удивление, вещи начали меняться — и достаточно быстро. Как будто пока ведьма помешивала горшочек, из ниоткуда начали появляться новаторские проекты. Наверно, самый заметный проект был Composer: наиболее полный менеджер зависимостей для PHP (как Bundler для Ruby или NPM для Node.js). В прошлом PHP разработчики были вынуждены совладать с PEAR (что было страшным сном, на самом деле), сейчас, благодаря Composer, они могут просто обновить JSON файл, и немедленно подтянуть все нужные зависимости. Здесь — профайлер, там — фреймворк для тестирования. Это занимает секунды.
Читать дальше →
Всего голосов 47: ↑40 и ↓7 +33
Просмотры77.2K
Комментарии 190

Загрузка Eloquent связей используя left join вместо дополнительных запросов

Laravel
Если вы когда-либо пытались выполнить следующий код для загрузки данных из вашей Eloquent модели и получали ошибку:

MyModel::with('relation')->where('relation.title', '=', $title)->orderBy('relation.field', 'asc')

То вы наверняка знаете, что Eloquent производит загрузку связанных данных отдельным запросом и ни фильтрация, ни сортировки по ним работать не будут.

В таком случае вам возможно поможет моя библиотека, которая позволяет перенести загрузку BelongsTo связей из дополнительных запросов в основной запрос с left join`ами.
Читать дальше →
Всего голосов 25: ↑19 и ↓6 +13
Просмотры17.3K
Комментарии 8

Загрузка моделей, трейтов

PHPLaravel
Перевод
Итак, узнал сегодня небольшую фитчу Laravel/Eloquent, которая практически не описана и лишь вскользь упомянута в документации фреймовика.
Читать дальше →
Всего голосов 15: ↑9 и ↓6 +3
Просмотры11.6K
Комментарии 7

От любви до ненависти — один шаг, или как я разлюбил магию в ActiveRecord

PHPПрограммированиеLaravel
Из песочницы
Недавно в одном из проектов возникла интересная проблема — весьма долго отдавались данные по REST API, несмотря на их небольшое количество. Что же случилось и почему — рассказываю под катом.
Читать дальше →
Всего голосов 21: ↑6 и ↓15 -9
Просмотры5.6K
Комментарии 53

Настройка Laravel relationships — подсчет комментариев (вольный перевод)

Разработка веб-сайтовPHPLaravel
Из песочницы
Представляю вам вольный перевод статьи "Tweaking Eloquent relations – how to get hasMany relation count efficiently?" с сайта softonsofa.com.

Работая с отношениями моделей, вы вероятнее всего хотели бы подсчитать количество полученных элементов (например, комментарии или лайки). Очевидно существуют способы для этого, но не всегда эффективные, особенно когда вы загружаете коллекцию моделей и их отношения.

Что ж, позвольте мне рассказать вам что мы можем с этим сделать.
Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Просмотры11.1K
Комментарии 16

Расширение моделей в Eloquent ORM

Laravel
Перевод


Мы прошли долгий путь, с тех дней когда мы в ручную писали SQL запросы в наших веб приложения. Инструменты, такие как Laravel’ий Eloquent ORM позволяют нам работать с базой данных на более высоком уровне, освобождают нас от деталей более низкого уровня — таких как синтаксис запросов и безопасность.

Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры12.8K
Комментарии 13

20 Eloquent ORM трюков

PHPLaravel
Перевод

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

Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Просмотры63K
Комментарии 19

Решение проблемы N+1 запроса без увеличения потребления памяти в Laravel

Высокая производительностьPHPLaravel
Перевод

Одна из основных проблем разработчиков, когда они создают приложение с ORM — это N+1 запрос в их приложениях. Проблема N+1 запроса — это не эффективный способ обращения к базе данных, когда приложение генерирует запрос на каждый вызов объекта. Эта проблема обычно возникает, когда мы получаем список данных из базы данных без использования ленивой или жадной загрузки (lazy load, eager load). К счастью, Laravel с его ORM Eloquent предоставляет инструменты, для удобной работы, но они имеют некоторые недостатки.
В этой статье рассмотрим проблему N+1, способы ее решения и оптимизации потребления памяти.

Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры10.5K
Комментарии 26