Больше любви к выразительному коду и меньше к этим многословным строкам

Одна из вещей, которые мне нравятся в любом проекте PHP, - это наличие глобальных помощников. Вы знаете, эти функции можно вызывать где угодно и удалять или сохранять много строк или многословие в одну, может быть, две, при этом размещая в одном месте любую логику.

$expected = from($this)->do('foo');

Проблема с самим Laravel заключается в том, что иногда не хватает помощников, которые он включает. Включены в основном быстрый доступ к службам (например, cache()) или фабрикам (например, response()), а также некоторые, которые помогут вам получить ожидаемый результат (например, data_get).

Например, предположим, что мы хотим, чтобы функция вызывалась несколько раз, но в режиме ожидания между выполнениями, как будто нам нужно избежать ограничения скорости для внешнего API. Без помощника нам придется прибегнуть к созданию класса и поместить логику в общедоступный статический метод и, надеюсь, запомнить, где он находится.

class Logics
{
    public static function logic_sleep($times, $sleep, $callback)
    {
        // Run and sleep between calls.
    }
}
Logics::sleep(4, 10, function() {
    // ...
});

Использование этой техники делает ваш глобальный не таким глобальным. Поскольку это одна из многих вещей, которые мне нужны в моих проектах, я решил создать пакет с более глобальными помощниками:

Ларахелп

Те помощники, о которых вы всегда мечтали

Основная идея глобального помощника, по крайней мере для меня, состоит в том, чтобы иметь фрагмент кода, который предлагает простоту, удобочитаемость и гибкость. Думайте о них как о маленьких швейцарских ножах, которые можно положить в карман.

Например, указанная выше функция может стать отдельной глобальной функцией, и мы можем вызывать ее буквально где угодно.

public function handle()
{
    logic_sleep(10, 5, function () {
        $this->uploadRecords();
    });
}

Помощник очень прост в использовании, но мы не узнаем, что, черт возьми, он делает за кулисами, если не углубимся в исходный код, что справедливо. В любом случае наличие глобальной функции одного или двух слов делает весь код более читабельным. А поскольку это наш собственный помощник, мы можем называть его как угодно.

Как добавить собственных помощников

Но это только один из множества помощников, которые я решил создать для вещей, которыми часто пользуюсь.

Чтобы добавить глобальные помощники в свой проект, вы можете просто добавить файл PHP с глобальными функциями в любом месте вашего проекта (желательно в корневой папке PSR-4) и сказать Composer, чтобы он загрузил его.

Вы можете добавлять сколько угодно файлов. Я решил разделить их на категории, как я сделал для своего пакета, чтобы не создавать стену текста, полную функций.

"autoload": {
    "psr-4": {            
        "App\\": "app"
    },
    "files": [
        "app/Helpers/datetime.php",
        "app/Helpers/filesystem.php",
        "app/Helpers/http.php",
        "app/Helpers/objects.php",
        "app/Helpers/services.php"
    ]
},

Я тоже открыт для предложений, так что попробуйте, если вы считаете, что это может быть полезно для вас: