路由与控制器
在扩展的基本结构下,常见任务是注册自己的控制器,并在管理区添加自己的菜单项。为此,我们将探讨一些你可以添加到模块定义中的附加属性。index.php
视频地址(YouTube):https://www.youtube.com/watch?v=Hi7WGVSI3aw
添加控制器
Pagekit 里的控制器其实就是普通的 PHP 类。每个正确命名的公共方法(即 )都会被 Pagekit 的路由(即 )挂载。someAction()/todo/some
创建一个包含以下代码的文件。packages/pagekit/todo/src/Controller/TodoController.php
<?php
namespace Pagekit\Todo\Controller;
/**
* @Access(admin=true)
*/
class TodoController
{
public function indexAction()
{
return "Yay.";
}
}
为了限制对管理员区域的访问并将该控制器挂载到管理员网址,我们使用注释 。注释是关键词,放置在类或方法上方的注释栏中。了解更多关于注释的信息。@Access(admin=true)
要使用这个控制器,我们需要自动加载命名空间并将控制器挂载到路由中,在你的配置数组中添加以下属性。index.php
// ...
// array of namespaces to autoload from given folders
'autoload' => [
'Pagekit\\Example\\' => 'src'
],
// array of routes
'routes' => [
// identifier to reference the route from your code
'@todo' => [
// which path this extension should be mounted to
'path' => '/todo',
// which controller to mount
'controller' => 'Pagekit\\Todo\\Controller\\TodoController'
]
],
// ...
你现在可以在 URL 访问新控制器。请注意该URL由四个部分生成:<pagekit_path>/admin/todo
<pagekit_path>URL总是从你的URL开始@Access(admin=true)结果生成了一个管理员网址/admin- 控制器安装方式为
/todo - 该URL的默认路由是 。
indexAction
如果你无法访问你的路线,请清除缓存。Pagekit 缓存路由以提升性能。
调试工具栏
要查看开发过程中所有已注册的路由,启用 Pagekit 系统设置中的调试工具栏非常有用。工具栏显示在屏幕底部,显示所有已注册路线及其他有用信息。
记得关闭直播网站时的这个功能。
添加菜单项
要添加菜单项,请使用模块定义中的属性。将以下内容添加到 。menuindex.php
// ...
'menu' => [
'example' => [
'label' => 'ToDo',
'icon' => 'app/system/assets/images/placeholder-icon.svg',
'url' => '@todo',
]
],
// ...
刷新Pagekit后端,你会看到一个新的菜单项,链接到该路线。@todo
下一步:视图与模板
这就是控制器和路由的基本工作流程。要渲染实际的视图文件而不是普通字符串,你只需要更改控制器作返回的内容。我们将在下一个视频中探讨这一点。对于好奇的人:阅读Pagekit文档中关于视图和模板的内容。
以下是所有现有屏幕录制教程的简短列表: