Свойства модели Laravel - PullRequest
       4

Свойства модели Laravel

0 голосов
/ 12 февраля 2019

Я не уверен, как лучше задать вопрос.Я пытаюсь написать СУХОЙ код, и у меня есть модель Job.Работа может иметь типы (например: полный рабочий день, неполный рабочий день и т. Д.).Если я хочу определить типы только один раз, куда бы я поместил их, чтобы я мог использовать их везде?Является ли лучший способ сделать это что-то вроде:

class Job extends Model
{
    private static $jobTypes = [
        'full-time',
        'part-time',
    ];

    public static function jobTypes()
    {
        return self::$jobTypes;
    }
}

Или делать совершенно отдельный класс имеет больше смысла / повысить гибкость?

class JobTypes
{
    private static $jobTypes = [
        'full-time',
        'part-time',
    ];

    public static function jobTypes()
    {
        return self::$jobTypes;
    }
}

Или что-то еще ...

1 Ответ

0 голосов
/ 12 февраля 2019

Исходя из требований, ваш первый ответ будет наилучшей практикой:

class Job extends Model
{
    private static $jobTypes = [
        'full-time',
        'part-time',
    ];

    public static function jobTypes()
    {
        return self::$jobTypes;
    }
}

Однако иногда бывает полезно, чтобы все эти переменные были определены в одном месте, чтобы вы могли легко их изменить.Поэтому, если у вас есть больше статических опций, подобных этой, для различных моделей или по любой другой причине, я бы предложил использовать конфигурационный файл и определить их в: config->app.php

, а затем вы можете получить к ним доступ из любого места, например:

config('app.jobTypes')

Имеет смысл?

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