• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

daycry / class-finder / 4713242073

pending completion
4713242073

push

github

GitHub
Update composer.json

326 of 345 relevant lines covered (94.49%)

3.33 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

86.36
/src/Libraries/ClassMap/ClassMapFinder.php
1
<?php
2

3
namespace Daycry\ClassFinder\Libraries\ClassMap;
4

5
use Daycry\ClassFinder\Interfaces\FinderInterface;
6
use Daycry\ClassFinder\ClassFinder;
7

8
class ClassMapFinder implements FinderInterface
9
{
10
    private ClassMapFactory $factory;
11

12
    public function __construct()
13
    {
14
        $this->factory = new ClassMapFactory();
3✔
15
    }
16

17
    /**
18
     * @param string $namespace
19
     * @param int $options
20
     * @return string[]
21
     */
22
    public function findClasses($namespace, $options)
23
    {
24
        $classmapEntries = $this->factory->getClassmapEntries();
3✔
25

26
        $matchingEntries = array_filter($classmapEntries, function (ClassmapEntry $entry) use ($namespace, $options) {
3✔
27
            if (!$entry->matches($namespace, $options)) {
3✔
28
                return false;
3✔
29
            }
30

31
            $potentialClass = $entry->getClassName();
3✔
32
            if (function_exists($potentialClass)) {
3✔
33
                // For some reason calling class_exists() on a namespace'd function raises a Fatal Error (tested PHP 7.0.8)
34
                // Example: DeepCopy\deep_copy
35
                return $options & ClassFinder::ALLOW_FUNCTIONS;
×
36
            } elseif (class_exists($potentialClass)) {
3✔
37
                return $options & ClassFinder::ALLOW_CLASSES;
3✔
38
            } elseif (interface_exists($potentialClass, false)) {
3✔
39
                return $options & ClassFinder::ALLOW_INTERFACES;
3✔
40
            } elseif (trait_exists($potentialClass, false)) {
×
41
                return $options & ClassFinder::ALLOW_TRAITS;
×
42
            }
43
        });
3✔
44

45
        return array_map(function (ClassmapEntry $entry) {
3✔
46
            return $entry->getClassName();
3✔
47
        }, $matchingEntries);
3✔
48
    }
49

50
    public function isNamespaceKnown($namespace)
51
    {
52
        $classmapEntries = $this->factory->getClassmapEntries();
3✔
53

54
        foreach ($classmapEntries as $classmapEntry) {
3✔
55
            if ($classmapEntry->knowsNamespace($namespace)) {
3✔
56
                return true;
3✔
57
            }
58
        }
59

60
        // @codeCoverageIgnoreStart
61
        return false;
62
        // @codeCoverageIgnoreEnd
63
    }
64
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc