PHPackages                             raneomik/watchdog-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. raneomik/watchdog-bundle

Abandoned → [symfony/scheduler](/?search=symfony%2Fscheduler)ArchivedSymfony-bundle[Logging &amp; Monitoring](/categories/logging)

raneomik/watchdog-bundle
========================

This bundle provides a configurable watchdog for events to fire

v2.2.2(1y ago)11.3k[1 issues](https://github.com/raneomik/WatchdogBundle/issues)MITPHPPHP ^7.4|^8.0

Since Mar 3Pushed 1y ago1 watchersCompare

[ Source](https://github.com/raneomik/WatchdogBundle)[ Packagist](https://packagist.org/packages/raneomik/watchdog-bundle)[ RSS](/packages/raneomik-watchdog-bundle/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (9)Dependencies (15)Versions (11)Used By (0)

WatchdogBundle
==============

[](#watchdogbundle)

[![Workflow](https://github.com/raneomik/WatchdogBundle/actions/workflows/workflow.yaml/badge.svg)](https://github.com/raneomik/WatchdogBundle/actions/workflows/workflow.yaml)[![codecov](https://camo.githubusercontent.com/61ca202b56472b5a91f60350c72ce548be918890061c79cf658d6aedc204e80d/68747470733a2f2f636f6465636f762e696f2f67682f72616e656f6d696b2f5761746368646f6742756e646c652f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d43414a36324547314742)](https://codecov.io/gh/raneomik/WatchdogBundle)[![SymfonyInsight](https://camo.githubusercontent.com/e64d262fc0ae31c65fbf71ea0d687c38200a9036a292a9b97d752133c8f1a908/68747470733a2f2f696e73696768742e73796d666f6e792e636f6d2f70726f6a656374732f32666330646537342d613937612d343464662d616434382d6335353334613265383036352f6d696e692e737667)](https://insight.symfony.com/projects/2fc0de74-a97a-44df-ad48-c5534a2e8065)[![Mutation testing badge](https://camo.githubusercontent.com/3db4214ce66cf21e258f2a1e8bf6fed79a3d35138fc9fbb9ce54e4a434c5ba04/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f7374796c653d666c61742675726c3d687474707325334125324625324662616467652d6170692e737472796b65722d6d757461746f722e696f2532466769746875622e636f6d25324672616e656f6d696b2532465761746368646f6742756e646c652532466d61696e)](https://dashboard.stryker-mutator.io/reports/github.com/raneomik/WatchdogBundle/main)[![Type coverage](https://camo.githubusercontent.com/6fb5278118740bd9052645b5d8b484d7bd6e7d05583f64a9678e926ccc912366/68747470733a2f2f73686570686572642e6465762f6769746875622f72616e656f6d696b2f5761746368646f6742756e646c652f636f7665726167652e737667)](https://shepherd.dev/github/raneomik/WatchdogBundle)[![psalm](https://camo.githubusercontent.com/7d652c304843f95a551b39480b60ee66c7b5c06635b5763809b147eaa0f1d1ca/68747470733a2f2f73686570686572642e6465762f6769746875622f72616e656f6d696b2f5761746368646f6742756e646c652f6c6576656c2e737667)](https://shepherd.dev/github/raneomik/WatchdogBundle)[![phpstan](https://camo.githubusercontent.com/83dd3d35cebed0eab9ee97ff1a5849c1344cda6a8ee9cac2cda20f5aa55b67bd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d6c6576656c253230392d627269676874677265656e2e7376673f7374796c653d666c6174)](https://shepherd.dev/github/raneomik/WatchdogBundle)A widget bundle providing a watchdog which "woofs" if current time matches provided configuration.

### Installation

[](#installation)

```
composer require raneomik/watchdog-bundle

```

if not using symfony/flex, you need de register the bundle in your project :

```
// config/bundles.php

return [
    Raneomik\WatchdogBundle\WatchdogBundle::class => ['all' => true],
];
```

### Configuration

[](#configuration)

It can be configured as follows:

```
#config/packages/watchdog.yml

watchdog:
   default: # raise an event if current date time matches (following "Or" logic)
   - date_time: '2019-12-01 11:00'           # a date and time
   - date: '2019-12-03'                      # a specific date
   - hour: '14:00'                           # a specific hour
   - time: '14:15'                           # or time
   - { start: '2019-12-01', end: '2019-12-31' }  # an interval of dates
   - { start: '10:00', end: '11:00' }        # or of times
   - relative: 'first wednesday of'          # a relative format*
   - compound:                               # or a composite of the rules above, following "And" logic, for example :
     - relative: 'monday'                    # "On mondays"
     - { start: '20:00', end: '22:30' }      # "and between 20:00 and 22:30"

   maintenance: # define another watchdogs, independent of each other.
   - compound:
     - relative: 'sundays'
     - { start: '05:00', end: '06:00' }
```

\* [relative format](https://www.php.net/manual/datetime.formats.relative.php)

### Watchdog service

[](#watchdog-service)

This bundle provides the `Raneomik\WatchdogBundle\Watchdog\WatchdogInterface` service that can be injected anywhere. It has a `isWoofTime` method returning true once configuration matches current date time. If several ones are defined, they can be injected as follows (based on the example above) :

```
use Raneomik\WatchdogBundle\Watchdog\WatchdogInterface;

class Service
{
    __construct(
        private WatchdogInterface $default,
        private WatchdogInterface $maintenance
    ) {
    }
....
```

### WatchdogHandlerInterface and WatchdogWoofCheckEvent

[](#watchdoghandlerinterface-and-watchdogwoofcheckevent)

This bundle also provides the `Raneomik\WatchdogBundle\Handler\WatchdogHandlerInterface` interface with `processWoof(array $parameters = [])` method, for more complex processes. It works with the `WatchdogEventSubscriber` subscribed to `WatchdogWoofCheckEvent`.

Anywhere you wish to check if it `isWoofTime`, dispatch a `new WatchdogWoofCheckEvent($parameters, $watchdogId)`, and if it `isWoofTime`, it will trigger all `WatchdogHandlerInterface`s and their `processWoof(array $parameters = []) // passed to the WatchdogWoofCheckEvent constructor`.

`$watchdogId` is null by default, which results in all defined watchdogs check. If one is passed by this parameter, it checks only the concerned one.

If you wish to use it but your project isn't set to be autoconfigured, all your `Handlers` implementing `WatchdogHandlerInterface` must be tagged with `raneomik_watchdog.handler`.

### *WIP*: Profiler data collection

[](#wip-profiler-data-collection)

You can access watchdog data in Symfony profiler :

[![profiler.png](doc/images/profiler.gif)](doc/images/profiler.gif)

[License](LICENCE)

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance12

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~142 days

Recently: every ~214 days

Total

10

Last Release

703d ago

Major Versions

v1.2.0 → v2.0.02022-03-06

PHP version history (2 changes)v1.0.0PHP ^7.3|^8.0

v1.1.0PHP ^7.4|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/ef442308d55301a56114936c5389fbb4ab31f3cf7ac4b9b6f3a583bc3b9f9b8c?d=identicon)[raneomik](/maintainers/raneomik)

---

Top Contributors

[![raneomik](https://avatars.githubusercontent.com/u/19893310?v=4)](https://github.com/raneomik "raneomik (11 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Psalm

Code StyleECS

Type Coverage Yes

### Embed Badge

![Health badge](/badges/raneomik-watchdog-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/raneomik-watchdog-bundle/health.svg)](https://phpackages.com/packages/raneomik-watchdog-bundle)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k18.3M414](/packages/easycorp-easyadmin-bundle)[symfony/web-profiler-bundle

Provides a development tool that gives detailed information about the execution of any request

2.3k164.3M1.3k](/packages/symfony-web-profiler-bundle)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

12017.1k](/packages/rcsofttech-audit-trail-bundle)[ecotone/symfony-bundle

Ecotone for Symfony — CQRS, Event Sourcing, Sagas, Durable Workflows, and Outbox on top of Symfony Messenger, via PHP attributes.

11258.2k1](/packages/ecotone-symfony-bundle)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1617.3k14](/packages/2lenet-crudit-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
