evheniy/sitemap-xml-bundle
Composer 安装命令:
composer require evheniy/sitemap-xml-bundle
包简介
The SitemapXmlBundle adds the ability to generate sitemap.xml file to your application.
README 文档
README
This bundle provides sitemap.xml generator for Symfony2
Installation
$ composer require evheniy/sitemap-xml-bundle "1.*"
Or add to composer.json
"evheniy/sitemap-xml-bundle": "1.*"
AppKernel:
public function registerBundles()
{
$bundles = array(
...
new Evheniy\SitemapXmlBundle\SitemapXmlBundle(),
new AppBundle\AppBundle(),
...
);
...
...
You should set bundle before main bundle (in our example it's AppBundle) and extend SiteMapDumpCommand ( setEntities() method )
The easy way to create sitemap:
<?php
namespace AppBundle\Command;
use Evheniy\SitemapXmlBundle\Command\SiteMapDumpCommand as Command;
class SiteMapDumpCommand extends Command
{
protected function setEntities()
{
$this->siteMapEntity = $this->serviceManager->createSiteMapEntity();
$this->dumpEntity->setDomain('site.com');
foreach ($pages as $page) {
$this->siteMapEntity
->addLocation(
$this->serviceManager->createLocationEntity()
->setLocation($page['url'])
->setLastmod(new \DateTime($page['date']))
);
}
}
}
If there are more than 50 000 links you should use sitemap index:
<?php
namespace AppBundle\Command;
use Evheniy\SitemapXmlBundle\Command\SiteMapDumpCommand as Command;
class SiteMapDumpCommand extends Command
{
protected function setEntities()
{
$this->siteMapIndexEntity = $this->serviceManager->createSiteMapIndexEntity();
$this->dumpEntity->setDomain('site.com');
$siteMapEntity = $this->serviceManager->createSiteMapEntity();
foreach ($pages as $page) {
$siteMapEntity->addLocation(
$this->serviceManager->createLocationEntity()
->setLocation($page['url'])
->setLastmod(new \DateTime($page['date']))
);
}
$this->siteMapIndexEntity->addSiteMap($siteMapEntity);
}
}
The last step
app/console sitemap:dump
Documentation
SitemapXmlBundle made by using fluent interface:
$this->siteMapIndexEntity
->addSiteMap(
$this->serviceManager->createSiteMapEntity()
->addLocation(
$this->serviceManager->createLocationEntity()
->setLocation('http://site.com/page1.html')
->setLastmod(new \DateTime())
)
->addLocation(
$this->serviceManager->createLocationEntity()
->setLocation('http://site.com/page2.html')
->setLastmod(new \DateTime())
->addImage(
$this->serviceManager->createImageEntity()
->setLocation('http://site.com/logo.png')
->setTitle('Logo')
)
)
);
More details:
- Service manager
- Dump manager
- Dump entity
- Site map index entity
- Site map entity
- Location entity
- Image entity
- Video entity
- News entity
License
This bundle is under the MIT license.
evheniy/sitemap-xml-bundle 适用场景与选型建议
evheniy/sitemap-xml-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 18.51k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2015 年 09 月 27 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「symfony」 「Sitemap」 「sitemap.xml」 「Google standards」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 evheniy/sitemap-xml-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 evheniy/sitemap-xml-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 evheniy/sitemap-xml-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Symfony sitemap generator
PHP Simple Sitemap Generator
The bundle for easy using json-rpc api on your project
A simple website crawler & sitemap generator without a headless browser for Laravel 5.8+
Interfaces for web resource models and services to retrieve and create them
Sitemap crawler/generator. For the given URL it will return sitemap XML file with URLs and images.
统计信息
- 总下载量: 18.51k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 15
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-09-27