Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
419 views
in Technique[技术] by (71.8m points)

php - Install Yii2 extension manually without using Composer

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 kartikselect2Select2;

<?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 – yiiaseErrorException. Class 'kartikselect2Select2' not found

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...