在传统的(或更准确地说,是 some 传统的)PHP MVC系统中工作时,如果应用程序具有要求用户登录到该应用程序的“管理员”区域,则程序员将使用从某些基本管理控制器继承的控制器类,或使用某些管理特性的控制器类。这些系统中的路由代码知道可以使用管理控制器/特征上的某些方法来检查用户是否被授权。
Sylius控制器为stand-alone classes with no parent classes。
<?php
//...
final class DashboardController
{
//...
}
并且似乎没有包含任何执行“用户已登录”检查的代码。
sylius程序员如何创建到需要用户登录的控制器的路由?
什么系统在后台强制执行sylius用户登录?
答案 0 :(得分:3)
Sylius使用Symfony作为PHP框架,它依靠安全性组件来限制对应用程序某些不打算公开的区域的访问(例如管理面板)。
在这里可以看到这样的配置:https://github.com/Sylius/Sylius/blob/master/config/packages/security.yaml(请参阅第16和#101行)。
资源(基本上是Sylius中的每个实体-产品,用户,属性,分类类)具有更高级的权限,可以通过https://github.com/Sylius/RbacPlugin或https://bitbag.shop/products/sylius-access-control-layer之类的插件来利用这些资源。
您可以在此处详细了解Symfony Security组件的工作方式:https://symfony.com/doc/current/components/security.html