Helpers::rGlob()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 2
1
<?php
2
3
namespace Arrilot\BitrixMigrations;
4
5
use Bitrix\Main\Application;
6
7
class Helpers
8
{
9
    protected static $hls = [];
10
    protected static $ufs = [];
11
12
    /**
13
     * Convert a value to studly caps case.
14
     *
15
     * @param  string  $value
16
     * @return string
17
     */
18
    public static function studly($value)
19
    {
20
        $value = ucwords(str_replace(['-', '_'], ' ', $value));
21
22
        return str_replace(' ', '', $value);
23
    }
24
25
    /**
26
     * Рекурсивный поиск миграций с поддирректориях
27
     * @param $pattern
28
     * @param int $flags Does not support flag GLOB_BRACE
29
     * @return array
30
     */
31
    public static function rGlob($pattern, $flags = 0) {
32
        $files = glob($pattern, $flags);
33
        foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir) {
34
            $files = array_merge($files, static::rGlob($dir.'/'.basename($pattern), $flags));
35
        }
36
        return $files;
37
    }
38
39
    /**
40
     * Получить ID HL по названию таблицы
41
     * @param $table_name
42
     * @return mixed
43
     */
44
    public static function getHlId($table_name)
45
    {
46
        if (!isset(static::$hls[$table_name])) {
47
            $dbRes = Application::getConnection()->query('SELECT `ID`, `NAME`, `TABLE_NAME` FROM b_hlblock_entity');
48
            while ($block = $dbRes->fetch()) {
49
                static::$hls[$block['TABLE_NAME']] = $block;
50
            }
51
        }
52
53
        return static::$hls[$table_name]['ID'];
54
    }
55
56
    /**
57
     * Получить ID UF
58
     * @param $obj
59
     * @param $field_name
60
     * @return mixed
61
     */
62
    public static function getFieldId($obj, $field_name)
63
    {
64
        if (!isset(static::$ufs[$obj][$field_name])) {
65
            $dbRes = Application::getConnection()->query('SELECT * FROM b_user_field');
66
            while ($uf = $dbRes->fetch()) {
67
                static::$ufs[$uf['ENTITY_ID']][$uf['FIELD_NAME']] = $uf;
68
            }
69
        }
70
71
        return static::$ufs[$obj][$field_name]['ID'];
72
    }
73
}
74