Skip to content

Instantly share code, notes, and snippets.

@everzet
Created November 29, 2011 22:40
Show Gist options
  • Save everzet/1406938 to your computer and use it in GitHub Desktop.
Save everzet/1406938 to your computer and use it in GitHub Desktop.
Symfony2.1 ResourceWatcher usage example
<?php
$watcher = new Symfony\Component\ResourceWatcher\ResourceWatcher;
// track any change inside directory:
$watcher->track('some/folder1', function($event) {
echo '['.$event->getType().'] '.$event->getResource()."\n"
});
// track only creations inside directory:
$watcher->track('some/folder2', function($event) {
echo $event->getResource()." was created\n"
}, Symfony\Component\ResourceWatcher\Event\Event::CREATED);
// track only *.xml file changes inside directory:
$watcher->track(
new Symfony\Component\Config\Resource\DirectoryResource('some/folder3', '/\.xml$/'),
function($event) use($watcher) {
echo '['.$event->getType().'] '.$event->getResource()."\n"
// stop tracking when first even occurs:
$watcher->stop();
}
);
// start tracking:
$watcher->start();
@datiecher
Copy link

I guess by now everyone are agreeing on accepting both a callable and an object so I would not jump in on that.

I'm more inclined towards @everzet last option. Way easier to understand and use.

@schmittjoh
Copy link

Yes, sounds good to me as well.

How about reversing the order of arguments function track($resource, $alias = null);?

@everzet
Copy link
Author

everzet commented Nov 30, 2011

Well, there should be 3 parameters at least - $resource, $trackingId and $trackedEvents because there's no reason to track any folder change if user only interested in a file_change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment