sitemap 生成器

dev-master / 0.0.1.x-dev 2020-01-06 14:58 UTC

This package is auto-updated.

Last update: 2024-09-07 02:22:16 UTC


README

该工具用于生成 sitemapindex,即模块可用地图的列表,为每个模块生成单独的地图。

目前处理程序已内置在 statpage 和 stream 中,自动运行。在骨架应用程序中,已内置骨架监听器在模块中以及请求处理器本身。

安装后,如果已安装 stream 模块,则将转储加载到数据库中。转储包含用于工作地图的附加组件。

模块本身处于初级阶段。

工作原理:在 modul.php 文件中,需要指定中断监听器和设置中断本身。

...
public function onBootstrap(MvcEvent $event)
{
    $this->ServiceManager=$event->getApplication()-> getServiceManager();
    $eventManager = $event->getApplication()->getEventManager();
    $sharedEventManager = $eventManager->getSharedManager();
    //слушатель для генерации карты сайта
    $sharedEventManager->attach("simba.sitemap", "GetMap", [$this, 'GetMap']);
}

/**
*обработчик события GetMap - получение карты сайта
*/
public function GetMap(Event $event)
{
    $type=$event->getParam("type",NULL);
    $name=$event->getParam("name",NULL);
    $locale=$event->getParam("locale",NULL);
    //сервис который будет возвращать карту
    $service=$this->ServiceManager->build(GetMap::class,compact("type","locale","name"));
    return $service->GetMap();
}

以标准方式创建 GetMap 服务 - 在本模块配置中指定,包括工厂和自身服务。

此服务在调用模块的 sitemap 控制器时传递管理权,服务必须返回格式为生成 sitemapindex 的数组或生成 sitemap 的数据数组。传递给服务的内容:type = "sitemapindex" 或 "sitemap",locale = "ru_RU"(目前未使用),name = 字符串,该字符串是服务在请求 "sitemaindex" 时返回的地图名称。

注意:使用全局中断管理器,因此在调用时将调用该中断的所有监听器!因此,在处理程序(服务)内部需要检查名称(参数 name)是否属于该模块,如果不是,则需要立即返回空数组!