Сценарий выполнения Composer после вызова autoload.php - PullRequest
0 голосов
/ 11 декабря 2018

Я пишу пакет composer, который должен выполнять список проверок безопасности при вызове Composer autoload.php и перед доступом к его классам и методам

У меня есть этот файл composer.json:

{
    "name": "def-studio/logger",
    "description": "Def Studio logger system",
    "type": "library",
    "require": {
        "php": ">=5.3.0"
    },
    "license": "MIT",
    "autoload": {
        "psr-4": {
            "DefStudio\\Logger\\": "src/"
        }
    }
}

После вызова ./vendor/autoload.php и загрузки основного класса DefStudio\Logger\Logger.php мне нужно выполнить этот метод: Logger::perform_checks() каждый раз, когда класс загружается.

мой код на самом деле:

include_once './vendor/autoload.php';
use DefStudio\Logger\Logger;
Logger::perform_checks();


try{
   //random messy code here
}catch(Exception $ex){
   Logger::error("error!", $ex);
}

Мне нужно, чтобы мой пакет вызывал Logger::perform_checks() каждый раз, когда вызывается autoload.php, и я не хочу полагаться на то, что пользователь не забудет вызвать его .. Я хочу, чтобы он вызывался автоматически, когдаautoload.php вызывается

Есть ли способ автоматически выполнить скрипт php при вызове autoload.php?

1 Ответ

0 голосов
/ 11 декабря 2018

Благодаря комментарию Дейва, я нашел полезный ответ в связанном с ним вопросе:

Обновлен мой файл пакета composer.json, чтобы добавить скрипт для автозагрузки:

{
    "name": "def-studio/logger",
    "description": "Def Studio logger system",
    "type": "library",
    "require": {
        "php": ">=5.3.0"
    },
    "license": "MIT",
    "autoload": {
        "psr-4": {
            "DefStudio\\Logger\\": "src/"
        }
        "files": ["src/utilities/autoloader.php"]
    }
}

и в autoloader.php я выполнил свои проверки и код запуска

таким образом, когда разработчик вызывает include_once './vendor/autoload.php', мой код также выполняется

...