<?php namespace Doctrine\Tests\Common\Annotations\Fixtures; use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll; use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation; /** * @AnnotationTargetAll("Foo") */ final class ClassWithClosure { /** * @AnnotationTargetAll(@AnnotationTargetAnnotation) * @var string */ public $value; /** * @AnnotationTargetAll(@AnnotationTargetAnnotation) * * @param \Closure $callback * @return \Closure */ public function methodName(\Closure $callback) { $self = $this; return function () use ($self, $callback) { return $callback; }; } /** * @param integer $year * @param integer $month * @param integer $day * @return \Doctrine\Common\Collections\ArrayCollection */ public function getEventsForDate($year, $month, $day) { $extractEvents = null; // check if date of item is inside day given $extractEvents = $this->events ->filter(function ($item) use ($year, $month, $day) { $leftDate = new \DateTime($year . '-' . $month . '-' . $day . ' 00:00'); $rigthDate = new \DateTime($year . '-' . $month . '-' . $day . ' +1 day 00:00'); return $leftDate <= $item ->getDateStart() && $item ->getDateStart() < $rigthDate; }); return $extractEvents; } }