Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 24.07.2014 10:42:44

Библиотека для фильтрации и сортировки списков

Всем привет.

Предлагаю ознакомиться с пакетом для реализации фильтрации и сортировки списков.

Пакет написан для и тестировался с Laravel 4, но если немного пострараться, можно заставить работать с любым PHP фреймворком, в том числе и с Laravel 3, само собой. Обращайтесь в соц. сетях за помощью в случае проблем.

Документацию на русском я еще не успел написать, но есть на английском:

https://github.com/mobileka/scope-applicator

Минимум PHP 5.4.

Легче всего использовать с репозиториями. Вот статья в моем блоге, объясняющая этот паттерн: http://blog.armen.im/laravel-and-repository-pattern/

Если все еще не поняли, советую купить / скачать Laracast Джеффри Уэя - https://laracasts.com/lessons/repositories-simplified.

Есть и другие статьи в интернете.

Ваши репозитории должны расширять Mobileka\ScopeApplicator\Repositories\LaravelRepository, после этого у вас появится метод applyScopes(), который принимает первым аргументом объект модели, а вторым - массив из скоупов, которые можно применить к запросу.

Про скоупы в Laravel 4 можно почитать здесь: http://laravel.com/docs/eloquent#query-scopes.

Пример и возможности кофигурации смотрите в документации.

Буду рад услышать критику и предложения, особенно касательно документации.

Не в сети

#2 26.07.2014 00:57:53

Re: Библиотека для фильтрации и сортировки списков

Спасибо, симпатичное расширение, особенно приятно, что оно сразу хорошо документировано.

Но мне лично например психологически комфортнее потратить полчаса и руками прописать роуты с методами контроллеров, которые вызывают репозитории с нужными скоупами. Хотя в некоторых случая, типа админки с массой объектов с разнообразной фильтрацией, твой подход вполне может быть оправдан.

Не в сети

#3 26.07.2014 11:52:28

Re: Библиотека для фильтрации и сортировки списков

slider23 пишет:

Спасибо, симпатичное расширение, особенно приятно, что оно сразу хорошо документировано.

Но мне лично например психологически комфортнее потратить полчаса и руками прописать роуты с методами контроллеров, которые вызывают репозитории с нужными скоупами. Хотя в некоторых случая, типа админки с массой объектов с разнообразной фильтрацией, твой подход вполне может быть оправдан.

Спасибо за отзыв.

Это не совсем мой подход. Идея взята из Ruby on Rails сообщества: у них есть gem под названием has_scope.

Scope Applicator не пишет за вас роуты и методы контроллера. Его призвание избавить контроллер и вас от необходимости парсить URL руками и вызывать методы репозиториев в зависимости от результатов. Это делает контроллеры гораздо тоньще и изящнее, а еще не надо придумывать свои велосипеды и задавать себе вопрос "куда бы вынести все это?".

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

Не в сети

Подвал раздела