Laravel организует вспомогательные функции - PullRequest
3 голосов
/ 19 октября 2019

Пожалуйста, не говорите с техническим в ответах: -Я не хардкорный программист.

Что такое хороший способ хранить определенные функции в Laravel? У меня есть функции, которые применяются только к «post» или «media», например getAttributeList или getComponents. Я говорю «Post» и «Media», потому что оба имеют свой собственный контроллер, модель и представления. Чувствовать себя неправильно в модели, потому что это должно быть хорошо для базы данных? И черты больше для повторяющихся функций повсюду, верно? Итак, сейчас у меня есть один большой файл под названием Helpers.php. И это становится большим ... я должен просто отделить это в PostHelpers.php, MediaHelpers.php и т. Д.? Или в Laravel есть более элегантный способ сделать это?

Ответы [ 2 ]

1 голос
/ 19 октября 2019

Это довольно просто: просто проверьте файл composer.json в корневом каталоге вашего приложения. и в разделе автозагрузки добавьте:

 "autoload": {
    "psr-4": {
        "App\\": "app/"
    },
    "files": ["app/helper.php"],
    "classmap": [
        "database/seeds",
        "database/factories"
    ]

"files": ["app / helper.php"], это строка, которую вам нужно добавить в ваш файл composer и указать путь к файлу. В моем случае я создал файл helper.php в каталоге приложения, где я храню все свои функции. после этого выполните эту команду: composer dump-autoload

Теперь вы можете получить доступ к своим функциям где угодно.

0 голосов
/ 19 октября 2019

В вашем JS-файле композитора проверьте этот фрагмент

"autoload": {
        "files": [
                "app/Helpers/global_helper.php"
            ],

Как вы видите, я автоматически загрузил 1 единственный файл с именем global_helper.php в папку с именем Helpers. Теперь в этом файле у меня есть функция с именем * 1005. * Эта функция делает

if (!function_exists('loadHelper')) {
    function loadHelper(...$file_names)
    {
        foreach ($file_names as $file) {
            include_once __DIR__ . '/' . $file . '_helper.php';
        }
    }
}

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

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

Я не уверен, что есть какое-либо лучшее решение, но пока я делаю все свои проекты так.

Надеюсь, это поможет вам;)

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