astina / deadlink-bundle
此包已被废弃且不再维护。未建议替代包。
Symfony 扩展包,提供查找断链 URL 的服务。
1.2.1
2014-04-28 11:59 UTC
This package is not auto-updated.
Last update: 2023-07-17 20:50:55 UTC
README
Symfony 扩展包,提供查找断链 URL 的服务。
安装
步骤 1: 添加到 composer.json
"require": { "astina/deadlink-bundle":"dev-master", }
步骤 2: 启用扩展包
在内核中启用扩展包
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Astina\Bundle\DeadlinkBundle\AstinaDeadlinkBundle(), ); }
##使用方法
此扩展包提供了一条命令(astina:deadlink:check
),用于检查所谓的“链接源”中的断链,并在找到断链时触发一个 BrokenLinksEvent
。
创建链接源
- 创建一个实现
Astina\Bundle\DeadlinkBundle\Link\LinkSourceInterface
接口的类。 - 将该类配置为服务,并标记为
astina_deadlink.link_source
。
响应断链
- 创建一个事件监听器。
- 监听
astina_deadlink.broken_links
事件。
示例
<service id="deadlink_listener" class="Acme\FooBundle\DeadlinkListener"> <tag name="kernel.event_listener" event="astina_deadlink.broken_links" method="onBrokenLinks" /> </service>
namespace Acme\FooBundle; use Astina\Bundle\DeadlinkBundle\Event\BrokenLinksEvent; class DeadlinkListener { public function onBrokenLinks(BrokenLinksEvent $event) { // ZOMG! } }
此扩展包包含一个 LoggingListener
,用于记录断链。然后在日志配置中,你可以决定如何处理日志消息。
示例
services: astina_deadlink.listener.logger: class: Astina\Bundle\DeadlinkBundle\Event\LoggingListener arguments: - @logger - critical # log broken links as critical message tags: - { name: kernel.event_listener, event: astina_deadlink.broken_links, method: onBrokenLinks }
查找断链
运行 astina:deadlink:check
命令来检查所有已注册的链接源中的断链。如果找到断链,将触发 astina_deadlink.broken_links
事件。
####DoctrineLinkSource 如果你使用 Doctrine,并且有一个包含 URL(或包含 URL 的文本)的实体或文档,你可以使用 Astina\Bundle\DeadlinkBundle\Doctrine\DoctrineLinkSource
并配置一个服务,如下所示:
services: my_link_source: class: Astina\Bundle\DeadlinkBundle\Doctrine\DoctrineLinkSource arguments: - @doctrine - AcmeFooBundle:MyEntity - [ text, lead ] # properties of the given entity that contain URLs - [] # optional: array of criteria to filter the entities tags: - { name: astina_deadlink.link_source }