Как автоматически загружать вспомогательные функции в Composer? - PullRequest
0 голосов
/ 11 ноября 2018

Скажем, у вас есть 1 файл для каждой функции:

/ SRC / Помощники / fooHelper.php

<?php

namespace MyHelper;

function fooHelper() {};

/ SRC / Помощники / barHelper.php

<?php

namespace MyHelper;

function barHelper() {};

Я вижу, что есть

"autoload": {
    "files": ["src/Helpers/functions.php"]
}

Можно ли автоматически загружать эти функции через Composer по запросу вместо каждого запроса?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Можно ли автоматически загружать эти функции через Composer по требованию вместо каждого запроса?

Нет, в PHP нет поддержки автозагрузки для функций. Вам нужно либо загрузить их вручную, либо добавить файлы с объявлением функций в autoload.files config в composer.json - они будут загружаться при каждом запросе, даже если вы никогда его не используете.

Единственный разумный обходной путь на данный момент - это обернуть помощников в некоторый статический класс, который может быть загружен без каких-либо проблем.

class MyHelper {

    public static function fooHelper() {}

    public static function barHelper() {}
}

MyHelper::fooHelper();
MyHelper::barHelper();
0 голосов
/ 11 ноября 2018

Если вы хотите добавить его для каждого вспомогательного файла, вы должны сделать следующее:

"autoload": {
    "files" : [
        "path_to file_1.php",
        "path_to file_2.php",
        "and so on"
    ]
}

Должно работать после запуска команды: composer dump-autoload или composer dumpautoload.

...