Install Yii2 extension manually without using Composer

一曲冷凌霜 提交于 2019-12-17 15:28:55

问题


I want to install Select 2 extension widget manually with Yii2 Framework without using composer.

I done the following steps but it's not working.

1) Added yii2-widget-select2 to vendor/yii-soft

2) Added following code in my 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) Added display in view form:

use kartik\select2\Select2;

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

And It shows the following error:

PHP Fatal Error – yii\base\ErrorException. Class 'kartik\select2\Select2' not found


回答1:


It's highly recommended to use composer instead.

But if you want to do it manually:

1) Download archive of needed version from Github.

2) Open composer.json.

3) Find PSR-4 autoload section and remember it, in your case: kartik/select2.

4) Extract files to corresponding folder in vendor: vendor/kartik/select2 (not yiisoft!).

5) Add to vendor/composer/autoload_psr4.php:

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

6) Add to vendor/yiisoft/extensions.php:

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

samdark, one of the core contributors has the article in russian about it on his official blog here. It's basically brief translated version.

As you can see it's quite a lot of work to do. Multiply it by number of extensions and it becomes pain.

Seriously, use composer. If the hoster doesn't support it, find another one.




回答2:


You can use yii2-workbench package. It designed for easy intergrate package without composer. It support composer autoload and bootstrap




回答3:


It is subrepository .GIT , delete .git from vendor\kartik-v\yii2-widget-select2 and git rm --cached yii2-widget-select2

Stash, Commit,Push.



来源:https://stackoverflow.com/questions/30480329/install-yii2-extension-manually-without-using-composer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!