Подтвердить что ты не робот

Установите расширение Yii2 вручную без использования Composer

Я хочу установить виджет 2 расширения вручную с помощью Yii2 Framework без использования композитора.

Я сделал следующие шаги, но он не работает.

1) Добавлено yii2-widget-select2 в vendor/yii-soft

2) Добавил следующий код в мой yii-soft/extensions.php:

'yiisoft/yii2-widget-select2' => array(
    'name' => 'yiisoft/yii2-widget-select2',
    'version' => '2.0.3.0',
    'alias' =>
    array(
        '@yii/kartik' => $vendorDir . '/yiisoft/yii2-widget-select2',
    ),
),

3) Добавлен дисплей в форме просмотра:

use kartik\select2\Select2;

<?php echo Select2::widget([
    'model' => $model,
    'attribute' => 'state_2',
    'data' => $data,
    'options' => ['placeholder' => 'Select a state ...'],
    'pluginOptions' => [
        'allowClear' => true,
    ],
]); ?>

И появляется следующая ошибка:

Неустранимая ошибка PHP - yii\base\ErrorException. Класс 'kartik\select2\Select2' не найден

4b9b3361

Ответ 1

Настоятельно рекомендуется использовать композитор.

Но если вы хотите сделать это вручную:

1) Загрузите архив необходимой версии из Github.

2) Откройте composer.json.

3) Найдите раздел автозагрузки PSR-4 и запомните его, в вашем случае: kartik/select2.

4) Извлеките файлы в соответствующую папку в vendor: vendor/kartik/select2 (not yiisoft!).

5) Добавить в vendor/composer/autoload_psr4.php:

'kartik\\select2\\' => array($vendorDir . '/kartik/select2'),

6) Добавить в vendor/yiisoft/extensions.php:

'kartik/select2' => array (
    'name' => 'kartik/select2',
    'version' => '2',
    'alias' => array (
        '@kartik/select2' => $vendorDir . '/kartik/select2',
    ),
),

samdark, один из основных участников имеет статью об этом в своем официальном блоге здесь. Это в основном краткая переведенная версия.

Как вы видите, достаточно много работы. Умножьте его на количество расширений, и это станет болью.

Серьезно, используйте composer. Если хост не поддерживает его, найдите еще один.

Ответ 2

Вы можете использовать yii2-workbench пакет. Он предназначен для простого пакета intergrate без композитора. Он поддерживает автозагрузку и загрузку композитора.

Ответ 3

Это subrepository.GIT, удалить .git из поставщика \kartik-v\yii2-widget-select2 и git rm --cached yii2-widget-select2

Штамп, Commit, Pusdh.