コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function getChangeset()
 {
     $changeset = parent::getChangeset();
     // remove directory modification from changeset
     if (isset($changeset[0]) && FilesystemEvent::MODIFY === $changeset[0]['event']) {
         $changeset = array();
     }
     // check for changes in already added subfolders/files
     foreach ($this->childs as $id => $checker) {
         foreach ($checker->getChangeset() as $change) {
             if ($this->supportsEvent($change['event'])) {
                 $changeset[] = $change;
             }
         }
         // remove checkers for removed resources
         if (!$checker->getResource()->exists()) {
             unset($this->childs[$id]);
         }
     }
     // check for new subfolders/files
     if ($this->getResource()->exists()) {
         foreach ($this->createNewDirectoryChildCheckers($this->getResource()) as $checker) {
             $resource = $checker->getResource();
             $resourceId = $resource->getId();
             if (!isset($this->childs[$resourceId])) {
                 $this->childs[$resourceId] = $checker;
                 if ($this->supportsEvent($event = FilesystemEvent::CREATE)) {
                     $changeset[] = array('event' => $event, 'resource' => $resource);
                 }
                 // check for new directory changes
                 if ($checker instanceof NewDirectoryStateChecker) {
                     foreach ($checker->getChangeset() as $change) {
                         if ($this->supportsEvent($change['event'])) {
                             $changeset[] = $change;
                         }
                     }
                 }
             }
         }
     }
     return $changeset;
 }
コード例 #2
0
 /**
  * Initializes checker.
  *
  * @param FileResource $resource
  * @param integer      $eventsMask event types bitmask
  */
 public function __construct(FileResource $resource, $eventsMask = FilesystemEvent::ALL)
 {
     parent::__construct($resource, $eventsMask);
 }