2016-11-28 15 views
3

Предположим, у нас есть простой SAAS, который предлагает два типа планов. Например, в самом дешевом плане вы можете создать максимум 20 списков, а в следующем плане вы можете создать до 50 списков. Это всего лишь одна из особенностей ценовой модели. Предполагая, что модель ценообразования основана на 4-5 различных функциях для каждого плана, что было бы хорошей практикой для проверки и обеспечения соблюдения этих ограничений?Как реализовать ограничения по подписке? (php)

Я думаю, то (грязный) способом было бы добавить кучу «если» в разных местах, например: если $ user-> Запланировано> limitReached, сделать это и т.д.

Может быть другой подход будет быть бросить какие-то события на действия пользователя и обрабатывать проверки более «централизованным» способом? Что вы думаете об этом сценарии? Мы ценим любые предложения. Спасибо

+0

В целом не используйте такие ограничения, используйте вместо этого каталог конфигурации. Кроме того: это не вопрос, который хорошо подходит для стиля Q & A, используемого на этом сайте, поскольку ответы будут содержать личные предпочтения. – arkascha

+0

Да, я думаю, это не самое подходящее место для такого вопроса, но я не получил никаких ответов в другом месте (reddit & laracasts). Спасибо за ваш ответ. – nteath

+1

Я бы использовал какой-то ACL, где вы просто проверяете '$ acl-> isAllowed ('resource', 'privilege');' – P0rnflake

ответ

0

Laravel 5.3 имеет функцию под названием Policies.

С их помощью вы можете создать сложную логику, чтобы разрешить или отклонить запрос или что-либо, действительно, пользователю.

Это официальный способ Laravel разрешить действие пользователя.

Он также позволяет рекламировать ваши модели пользователей и классы контроллеров и повторно использовать код.