独立vs资源扩展在管弦乐队(Laravel)


Stand alone vs resource extensions in Orchestra (Laravel)

我正在尝试将Orchestra平台用于Laravel框架。

我已经安装了授权,Robotix,旋律主题管理器和大提琴CMS扩展的平台。

我注意到授权,Robotix和大提琴CMS扩展都在资源下列出,而旋律主题管理器被列为扩展旁边的顶级项目。

我想要的是有大提琴CMS扩展访问通过/orchestra/manages/pages以相同的方式,旋律主题管理器是通过/orchestra/manages/melody.themes访问。

我已经算出,要添加顶部菜单项,我可以使用如下命令:

// Attach a menu only if user has the authorization to manage Pages
$acl = Orchestra'Acl::make('cello');
$menu = Orchestra::menu();
if ($acl->can('manage-pages')) {
    $menu->add('Cello', 'after:themes')
        ->title('Pages')
        ->link(handles('orchestra::resources/cello'));
}

Event::listen('orchestra.started: backend', function()内部

这增加了一个工作链接,当然,问题是,这仍然指向resources/cello,所以我怎么能使它响应manages/pages ?

Cello CMS通过设计使用Orchestra'Resources,它为复杂的CRUD提供了更好的API, manages/pages只是简单的事件侦听器,您必须添加额外的代码将其路由到控制器。现在在这个时刻大提琴将只是处理页面内容,但在未来,我们正在考虑添加帖子(博客的一种)到它,如果我们遵循manages/pages的API将很难维护(个人偏好)。

以"旋律主题管理器"answers"授权"两个用例为例。Melody使用pages/manages仅仅是因为它只需要主题选择(通过单个ACL),而Authorize使用resources是因为它有两种类型的ACL,"manage-acl"answers"manage-role"以及两种类型的资源,它们是角色的CRUD和ACL度量配置。

我正在考虑切换资源是否被列出的可能性,但有赞成和反对这种方法,这是你可能要找的,但它指向资源URL,而不是manages/pages