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 3w 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

30

—

LowBetter than 62% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity64

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

658d 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.3k17.5M373](/packages/easycorp-easyadmin-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.

1155.2k](/packages/rcsofttech-audit-trail-bundle)[inspector-apm/inspector-symfony

Code Execution Monitoring for Symfony applications.

2836.4k9](/packages/inspector-apm-inspector-symfony)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1715.6k12](/packages/2lenet-crudit-bundle)

PHPackages © 2026

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