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

api-platform / core / 16050929464

03 Jul 2025 12:51PM UTC coverage: 22.065% (+0.2%) from 21.821%
16050929464

push

github

soyuka
chore: todo improvement

11516 of 52192 relevant lines covered (22.06%)

22.08 hits per line

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

38.46
/src/Metadata/Util/ClassInfoTrait.php
1
<?php
2

3
/*
4
 * This file is part of the API Platform project.
5
 *
6
 * (c) Kévin Dunglas <dunglas@gmail.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

12
declare(strict_types=1);
13

14
namespace ApiPlatform\Metadata\Util;
15

16
/**
17
 * Retrieves information about a class.
18
 *
19
 * @internal
20
 *
21
 * @author Kévin Dunglas <dunglas@gmail.com>
22
 */
23
trait ClassInfoTrait
24
{
25
    /**
26
     * Get class name of the given object.
27
     */
28
    private function getObjectClass(object $object): string
29
    {
30
        return $this->getRealClassName($object::class);
518✔
31
    }
32

33
    /**
34
     * Get the real class name of a class name that could be a proxy.
35
     */
36
    private function getRealClassName(string $className): string
37
    {
38
        // __CG__: Doctrine Common Marker for Proxy (ODM < 2.0 and ORM < 3.0)
39
        // __PM__: Ocramius Proxy Manager (ODM >= 2.0)
40
        $positionCg = strrpos($className, '\\__CG__\\');
564✔
41
        $positionPm = strrpos($className, '\\__PM__\\');
564✔
42

43
        if (false === $positionCg && false === $positionPm) {
564✔
44
            return $className;
564✔
45
        }
46

47
        if (false !== $positionCg) {
×
48
            return substr($className, $positionCg + 8);
×
49
        }
50

51
        $className = ltrim($className, '\\');
×
52

53
        return substr(
×
54
            $className,
×
55
            8 + $positionPm,
×
56
            strrpos($className, '\\') - ($positionPm + 8)
×
57
        );
×
58
    }
59
}
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