FontMetrics   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 4
dl 0
loc 27
ccs 7
cts 7
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A calculateSize() 0 6 1
1
<?php
2
3
namespace SixtyNine\Cloud;
4
5
use SixtyNine\Cloud\Factory\FontsFactory;
6
use SixtyNine\DataTypes\Box;
7
8
class FontMetrics
9
{
10
    /** @var \SixtyNine\Cloud\Factory\FontsFactory  */
11
    protected $fontsFactory;
12
13
    /**
14
     * @param FontsFactory $fontsFactory
15
     */
16 13
    public function __construct(FontsFactory $fontsFactory)
17
    {
18 13
        $this->fontsFactory = $fontsFactory;
19 13
    }
20
21
    /**
22
     * @param string $text
23
     * @param string $font
24
     * @param int $fontSize
25
     * @param int $angle
26
     * @return Box
27
     */
28 13
    public function calculateSize($text, $font, $fontSize, $angle = 0)
29
    {
30 13
        $imagineFont = $this->fontsFactory->getImagineFont($font, $fontSize);
31 13
        $imagineBox = $imagineFont->box($text, $angle);
32 13
        return new Box(0, 0, $imagineBox->getWidth(), $imagineBox->getHeight());
33
    }
34
}
35