kokspflanze / zfc-sitemap
Laminas 的站点地图模块,基于 zend-navigation 和 eventmanager
0.4
2021-01-06 22:36 UTC
Requires
- php: ^7.1.0
- ext-json: *
- laminas/laminas-eventmanager: ^3.2.1
- laminas/laminas-http: ^2.14.2
- laminas/laminas-mvc: ^3.2.0
- laminas/laminas-navigation: ^2.10.0
- laminas/laminas-router: ^3.4.4
- laminas/laminas-servicemanager: ^3.5.1
- laminas/laminas-stdlib: ^3.3.1
- laminas/laminas-view: ^2.12.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-26 15:04:35 UTC
README
系统要求
- 需要 PHP 7.1 或更高版本;建议尽可能使用最新的 PHP 版本。
- 必须使用
laminas-navigation
安装
Composer
此模块的安装使用 composer。有关 composer 文档,请参阅 getcomposer.org。
php composer.phar require kokspflanze/zfc-sitemap
# (When asked for a version, type `dev-master`)
转到 config/application.config.php
并在模块部分添加 ZfcSitemap
。
使用方法
获取站点地图
您可以通过 /sitemap.xml
查看当前的站点地图
创建缓存中的站点地图(可选)
这将在 data/zfc-sitemap
中创建一个站点地图作为缓存,这意味着,如果您调用 /sitemap.xml
,它将不再创建新的站点地图,而是使用缓存的站点地图。
为此,您需要安装 laminas/laminas-mvc-console
并为此目录 data/zfc-sitemap
提供写入权限。
然后,您可以执行 php public/index.php generate-sitemap http://example.com
来创建您的站点地图。PS:您必须重新运行它以创建新的站点地图。
更改您的站点地图
如果您页面上有动态页面并且您想将它们添加到站点地图中。您可以使用 EventManager 来添加它们。
创建监听器
创建一个新的类
<?php namespace App\Core\Listener; use Laminas\EventManager; use Laminas\Navigation\AbstractContainer; use ZfcSitemap\Service\Sitemap; class SitemapCustom extends EventManager\AbstractListenerAggregate { /** * @inheritDoc */ public function attach(EventManager\EventManagerInterface $events, $priority = 1) { $this->listeners[] = $events->attach(Sitemap::EVENT_SITEMAP, [$this, 'onSiteMap'], $priority); } /** * @param EventManager\EventInterface $event */ public function onSiteMap(EventManager\EventInterface $event) { /** @var AbstractContainer $container */ $container = $event->getParam('container'); $container->addPage([ 'label' => 'Example', 'uri' => '/example', ]); /** * your custom stuff, add or remove pages */ $event->setParam('container', $container); } }
然后,您必须在 service_manager
配置和以下配置中添加您的监听器。
'zfc-sitemap' => [ 'strategies' => [ Listener\SitemapCustom::class, ], ],