Контакты
Местоположение
Украина

Достижения

Все достижения (15)

Наибольший вклад в теги

Все теги (106)

Лучшие ответы пользователя

Все ответы (444)
  • Как управлять ролями и правами Laravel 5 и VUE.JS?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Реализуется легко:

    на беке юзаете баунсер + $this->authorize/Gate::allows и проверяете нужные права, вне зависимости от фронта.
    на фронт с бека передаете берете массив пермишенов (абилитис в баунсере), в том же месте, где передаете юзера (не важно, отдельным запросом или сразу при загрузке страницы). Пишите во vuex'е нужные геттеры, как пример из моего проекта:

    export const can = (state) => (perm) => this.loggedIn(state) && state.authUser.abilities.includes(perm);
    export const canAny = (state) => (perms) => perms.some(x => this.can(state)(x));


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

    v-if="can('chat.mute')"

    PS: не стоит писать свои директивы "v-can", ибо:
    1) они не информативны (непонятно, что они делают, если прав нет)
    2) прийдется написать с десяток таких, на все случаи жизни, типа "can-show", "can-if" и прочая лабудень.

    PS2: про "переход по страницам" и любые запросы на бек - ларавель сам кинет forbidden 403, проверяете интерцептором в axios'е на этот статус и кидаете на страницу с ошибкой/показываете окошко/нотификацию/птичку/кошку.
    Ответ написан
    Комментировать
  • Laravel 5.5 время работы и рендер hello world = ~ 500 мс?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    composer dumpautoload
    php artisan config:cache
    php artisan route:cache
    Ответ написан
    3 комментария
  • Может ли быть API не как API?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Нет, не "должен", но может. Лично я пришел к такой схеме:
    - 200-ые статус коды отправляются ТОЛЬКО тогда, когда все прошло успешно. В таком случае не будет никаких success: true или response: {} - а нужные данные, прямо на первом уровне нестинга. Собственно если взять за правило, что 200-ые коды возвращаются когда все ок, то можно полностью избавлятся от этих плохих проверок на наличие ключа в респонсе.
    - 400-ые и 500-ые будут попадать в отдельный колбек/реджектить промис, опять же избавляя от нужды проверять какие-то ключи. Для всех кодов ответов, кроме 400 и 422 - в ответе нету нихрена. Ни code, ни message, ни response. Вообще ничего. Вся инфа находится в самом http status коде. Для 400 и 422 прибавляется параметр code, который является номером ВНУТРЕННЕЙ ошибки (ну, например, есть какие-то предусловия для выполнения запроса - уникальность эмейл адреса при регистрации как пример) - по ней фронт может показывать отдельные ошибки либо выполнять какую-то логику.

    Плюс ко всему этому у себя локально и на сервере для фронта включен дебаг, добавляющий некий параметр _debug к каждому ответу. В нем может хранится любая инфа - сообщение с ошибкой (даже если ее можно понять по http коду или внутреннему), стак трэйс 500-ой ошибки и тд.
    Ответ написан
    Комментировать
  • Можно ли использовать .env в production?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    .env файл не загружается в гит. На то он и env (environment - среда), что бы каждый раз настраивать его под нужную среду. Так что в проде он тоже используется.

    "It is important to remember that this setup should only be used for development. For production you should still set your environment variables in the standard way" - написано в статье. Дочитывайте до конца) the standard way = .env
    Ответ написан
  • С чего начать изучение Laravel?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    1. Да
    2. В 6 почти ничего в сравнении с 5-кой не удаляли, бери 6
    3. Нету смысла в lumen
    4. laracasts.com
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (69)