• Почему Не работают ЧПУ Yii2?

    slo_nik
    @slo_nik Куратор тега Yii
    Переименуйте директорию site, придумайте название для этого локального проекта потому, что в views есть директория site, к которой обращается контроллер SiteController.
    Пусть новое название будет mysite.
    В этой директории Вы расположите весь свой проект на yii2.
    Потом, в корень своего проекта положите .htaccess такого содержания:
    <IfModule mod_rewrite.c>
      Options +FollowSymlinks
      RewriteEngine on
    </IfModule>
    
    <IfModule mod_rewrite.c>
       RewriteCond %{REQUEST_URI} ^/.*
       RewriteRule ^(.*)$ web/$1 [L]
    
       RewriteCond %{REQUEST_URI} !^/web/
       RewriteCond %{REQUEST_FILENAME} !-f [OR]
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^.*$ web/index.php
    
    </IfModule>

    А в директории проекта web оставьте такой:
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php

    Теперь, в файле config/web.php сделайте следующее:
    use \yii\web\Request;
    $baseUrl = str_replace('/web', '', (new Request)->getBaseUrl());
    return [
       'components' => [
           'request' => [
               'baseUrl' => $baseUrl,
           ],
       ],
    
    ];

    Это даст Вам возможность копировать файл конфигурации в разные свои проекты не заботясь о названии директории, в которой будет находиться проект.
    А в urlManager напишите первое, главное правило
    'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => [
                      '' => 'site/index'
                ],
            ],

    Тогда при переходе по адресу localhost/mysite у Вас должна будет открыться главная страница Вашего проекта, без "web" в адресной строке.
    Ответ написан
    2 комментария
  • Как организовать процесс web-разработки?

    @karminski
    Senior React.JS Developer
    1. У вас должно быть два сервера: один для разработки (локальный), второй боевой (vds).
    2. Установите любую IDE, например от JetBrains. В ней настройте деплой.
    3. Как только на локальном сервере внесли новый код, убедились, что он работает правильно, нажимаете кнопку деплоя в IDE.
    4. Вы у цели.

    Это сценарий для новичков. Далее по мере вашего развития вы сами дойдете и до докера, и до много чего ещё интересного. Удачи.
    Ответ написан
    Комментировать
  • Мультиязычность в Yii2: как реализовать правила URL?

    Я использую сдедующий подход:
    1) В базе данных информация о страницах (или товарах, или других сущностях) хранится в двух таблицах: например, page и page_content. Первая таблица - это данные, которые не требуют перевода (например id, дата создания, дата обновления, слаг итд.). Вторая таблица - это текстовые данные, которые будут мультиязычными (meta_title, meta_description, meta_keywords, content). Во второй таблице (с контентом), должно быть поле для связи с первой таблицой (напр. поле page_id), а также поле для указания кода языка. Получается, что для одной записи в первой таблице существует несколько записей во второй таблице, каждая из которых - на разных языках.
    2) В моделях нужно прописать связь один к одному для этих таблиц, в которых связующими будут поля по ID и по полю языка (параметр берётся из настроек приложения Yii::$app->language):
    public function getPageContent()
    {
        return $this->hasOne(PageContent::className(), ['page_id' => 'id'])->andWhere(['page_content.language_code' => Yii::$app->language]);
    }

    Теперь при выборке данных из первой таблицы, будут подтягиваться тексты из второй таблицы, на текущем языке приложения.
    3) Для управления текущим языком приложения и удобного переключения с одного языка на другой (параметр языка хранится в ссылке), существует замечательный компонент Yii2 Locale URLs
    Ответ написан
    1 комментарий
  • Мультиязычность в Yii2: как реализовать правила URL?

    miraage
    @miraage
    Старый прогер
    Думаю, для второго можно сделать так же.
    Читайте с пункта "Прозрачная работа с языковыми адресами" (ctrl+f).

    www.elisdn.ru/blog/39/yii-based-multilanguage-site...
    Ответ написан
    4 комментария
  • Мультиязычность в Yii2: как реализовать правила URL?

    @LAV45
    На самом деле все очень просто организуется, можете подсмотреть вот тут https://github.com/LAV45/yii2-translated-behavior#...
    Ответ написан
    Комментировать
  • Мультиязычность в Yii2: как реализовать правила URL?

    at0m1x
    @at0m1x
    UrlManager переопределять скорее всего все таки предётся, но не обязательно это делать самому, можно использовать например: https://github.com/codemix/yii2-localeurls

    Этот компонент позволяет избежать редактирования URL rules.

    Подробно о том как это использовать можно почитать тут.
    Ответ написан
    Комментировать
  • Пособие по алгоритмам для самых начинающих?

    @stunoff
    Томас Х. Кормен: Алгоритмы. Вводный курс.
    Д. М. Златопольский: Программирование. Типовые задачи, алгоритмы, методы 2012

    и просто сборник задач, вдруг пригодится для практики:
    Д. М. Златопольский: Сборник Задач по программированию
    Ответ написан
    1 комментарий