четверг, 19 января 2017 г.

Использование расширений в обход композера

Иногда необходимо подключить расширение Yii2 в обход Composer.

Например, в каком-то расширении обнаружился досадный баг. Сообщили разработчикам, ждём исправления... Но что делать с нашим приложением, пока баг не исправлен?

Можно исправить код прямо в папке "vendor". Но этого делать не стоит - в первую очередь потому, что править придётся на каждой машине, где установлено приложение, включая продакшн. И при любом обновлении файлы затрутся.

Выход - подключить расширение в обход стандартного механизма Composer. Это делается легко.

1. Удаляем расширение из зависимостей Composer.
composer remove coolvendor/coolextension

2. Качаем нужную версию расширения из репозитория в виде архива, распаковываем в какую-нибудь папку проекта. Например, "common/external/coolvendor/coolextension-1.0.0".

3. Указываем алиас в соответствии с именем расширения.
return [
    ...
    'aliases' => [
        '@coolvendor/coolextension' => '@common/external/coolvendor/coolextension-1.0.0',
        ...
    ]
];

Готово!

Можем пользоваться расширением, с тем же удобством, как если оно было подключено через Composer.

Когда необходимость в отдельном подключении отпадёт - например, разработчики исправили мешающий баг - можно легко и быстро вернуть расширение на своё место. Удаляем папку расширения, удаляем алиас, подключаем расширение через Composer.

среда, 18 января 2017 г.

Подключение AdminLTE в приложении Advanced

AdminLTE - симпатичная и простая тема для админки сайта.

Разберём, как подключить её в Advanced-приложение Yii2 вместо стандартной темы.

1. Подключаем расширение с темой AdminLTE.
composer require dmstr/yii2-adminlte-asset

2. Удаляем файл стандартной вёрстки - он нам уже не нужен.
"backend/web/css/site.css"

3. Открываем папку "vendor\dmstr\yii2-adminlte-asset\example-views\yiisoft\yii2-app".
Берём оттуда шаблоны, копируем в свой проект в папку "backend\views", заменяем содержимое по своему вкусу, настраиваем внешний вид, вёрстку.
Пример уже обработанных файлов, можно посмотреть в моём проекте "nex-otaku/yii2-app-ganimede".

4. При необходимости, настроить некоторые параметры темы можно в яваскрипте.
https://almsaeedstudio.com/themes/AdminLTE/documentation/index.html#adminlte-options

Отладка htaccess в OpenServer

Правильная настройка htaccess - та ещё морока.

Иногда, всё настроил вроде бы правильно, но где-то что-то не работает, по неизвестным причинам.

Выяснить, в чём же дело, нам поможет отладка.

Открываем в меню Опенсервера:
Отладка -> Конфигурация -> Apache-2.4

В блокнотах откроются два шаблона конфигурации. Нас интересует большой конфигурационный файл от сервера: Apache-2.4_server.conf

Ищем строку "LogLevel warn" в разделе "Конфигурация сообщений об ошибках".

Меняем на следующий текст:
LogLevel warn rewrite:trace8

Теперь модуль mod_rewrite расскажет нам всё о своей работе в логе Апача.

В меню Опенсервера выбираем
Просмотр логов -> Apache отладка

По завершению отладки, не забываем поменять настройку обратно. Иначе файл лога расплодится до неприличных размеров.

вторник, 3 января 2017 г.

Очистка кеша "aptitude"

Чистим кеш "aptitude" - стандартного менеджера пакетов в Ubuntu.

sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove

Зачем это может понадобиться? Чтобы освободить побольше места.

После установки Ubuntu и накатывания последних обновлений, кеш aptitude сильно разрастается. Файлы кеша могут занимать сотни мегабайт. Для тарифов с малым объёмом диска это может быть критично.

Чистим кеш после всех обновлений, и у нас снова полно свободного места )