Completed
Push — 2.0 ( 143803...4e64fa )
by grégoire
08:42 queued 04:22
created

PgLtree::fromPg()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 10
rs 9.4285
cc 2
eloc 5
nc 2
nop 3
1
<?php
2
/*
3
 * This file is part of the Pomm package.
4
 *
5
 * (c) 2014 - 2015 Grégoire HUBERT <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
namespace PommProject\Foundation\Converter;
11
12
use PommProject\Foundation\Session\Session;
13
14
/**
15
 * PgLtree
16
 *
17
 * Ltree converter.
18
 *
19
 * @package   Foundation
20
 * @copyright 2014 - 2015 Grégoire HUBERT
21
 * @author    Grégoire HUBERT
22
 * @license   X11 {@link http://opensource.org/licenses/mit-license.php}
23
 * @see       ConverterInterface
24
 */
25
class PgLtree extends ArrayTypeConverter
26
{
27
    /**
28
     * fromPg
29
     *
30
     * @see ConverterInterface
31
     */
32
    public function fromPg($data, $type, Session $session)
33
    {
34
        $data = trim($data);
35
36
        if ($data === '') {
37
            return null;
38
        }
39
40
        return preg_split('/\./', $data);
41
    }
42
43
    /**
44
     * toPg
45
     *
46
     * @see ConverterInterface
47
     */
48 View Code Duplication
    public function toPg($data, $type, Session $session)
49
    {
50
        return
51
            $data !== null
52
            ? sprintf("ltree '%s'", join('.', $this->checkArray($data)))
53
            : sprintf("NULL::%s", $type)
54
            ;
55
    }
56
57
58
    /**
59
     * toPgStandardFormat
60
     *
61
     * @see ConverterInterface
62
     */
63 View Code Duplication
    public function toPgStandardFormat($data, $type, Session $session)
64
    {
65
        return
66
            $data !== null
67
            ? sprintf("%s", join('.', $this->checkArray($data)))
68
            : null
69
            ;
70
    }
71
}
72