File: ClassWithClosure.php

package info (click to toggle)
php-doctrine-annotations 2.0.1-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,068 kB
  • sloc: php: 8,441; makefile: 26; xml: 15
file content (50 lines) | stat: -rw-r--r-- 1,396 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?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;

    /**
     * @return  \Closure
     *
     * @AnnotationTargetAll(@AnnotationTargetAnnotation)
     */
    public function methodName(\Closure $callback)
    {
        return static function () use ($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(static 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;
    }
}