• Фрейморк для REST API, на замену Silex?

    @bestauction Автор вопроса
    Ответ на свой вопрос спустя время. Сначала выбрал slim, так как по описанию он похож на silex, на котором я писал ранее.

    Начав разбираться, понял, что в последней версии slim 4, это уже не то что микрофреймворк, а скорее конструктор фреймворка: убрали вообще всё что можно, в угоду кастомизации. Такое мне не подошло, так как придется сращивать все библиотеки самому. Банально даже эммитер писать самому.

    Дальше выбор пал на Lumen: посмотрел что в нем вырезано относительно Laravel, что можно будет добавить от старшего брата и что нельзя. Устроило, начал писать на Lumen. Не всё так гибко, как могло быть на slim, но лишняя свобода тоже не всегда хорошо.

    Из плюсов: легкая версия Laravel. Подходит многое из библиотек для Laravel

    Из минусов: Lumen не подойдет новичкам, как первый фреймворк. Всё из-за документации. Некоторые моменты в ней не очевидны, если ранее не писал на Laravel (или вообще на каком то фреймворке). Например:

    Где хранятся дефолтные значения конфигов?
    Какие могут быть конфиги?
    Какие могут быть команды artisan?
    Нужно ли генерировать APP_KEY?

    И вот таких не очевидных мелочей будет много для новичка
    Ответ написан
  • Как сделать перевод страницы на PHP?

    @bestauction
    То что вы ищете, называется i18n (принятое сокращение от internationalization). Есть множество способов реализации. Если используете фреймворк, то там этот механизм скорее всего уже есть (гуглите по *названиефреймворка* i18n). Если самопис, то вот простой пример.

    Весь статичный текст из кода можно вынести в отдельный файл json (или просто php файл который возвращает массив, и инклудить его).

    В файле должен быть многомерный массив вида

    return [
                'ru' => [
                    'text1' => 'текст 1',
                    'text2' => 'текст 2'
                ],
                'en' => [
                    'text1' => 'text 1',
                    'text2' => 'text 2'
                ],
                'es' => [
                    'text1' => 'texto 1',
                    'text2' => 'texto 2'
                ]
            ];


    Если различные языки будут еще и в БД, то нужно либо дублировать таблицы, либо заводить доп поля с префиксами языков. Это уже зависит от структуры БД
    Ответ написан
    Комментировать
  • Как настроить Laravel + vue template?

    @bestauction Автор вопроса
    Нашел примерное решение: Laravue

    Можно использовать это, или посмотреть как делается, и наваять что то самому. Но тут уже есть почти всё, и ui element, и разные компоненты, и права. Останется вырезать то что не нужно
    Ответ написан
    Комментировать