-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathModule.php
63 lines (54 loc) · 1.88 KB
/
Module.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
namespace bookin\composer\gui;
use bookin\composer\api\Composer;
use \Yii;
/**
* Class Module
* @package app\modules\composerGui
*
*/
class Module extends \yii\base\Module
{
public $controllerNamespace = 'bookin\composer\gui\controllers';
public $_assetsBase, $_assetsPath;
public function init()
{
parent::init();
if (!isset(Yii::$app->i18n->translations['bookin-composer-module'])) {
Yii::$app->i18n->translations['bookin-composer-module'] = [
'class' => 'yii\i18n\PhpMessageSource',
'sourceLanguage' => 'en',
'basePath' => '@bookin/composer/module/messages'
];
}
}
//отдаем путь до assets
public static function getAssetsPath()
{
return dirname(__FILE__) . '/assets';
}
//отдаем полный путь до папки assets с файлами модуля
public function getPublishedUrl()
{
return Yii::$app->assetManager->getPublishedUrl($this->assetsPath);
}
//публикуем файлы из папки assets и возвращаем путь до нее
public function getAssetsBase()
{
if ($this->_assetsBase === null) {
$assets = $this->assetsPath;
list(,$url)=Yii::$app->assetManager->publish($assets, ['forceCopy'=>YII_ENV_DEV]);
$this->_assetsBase = $url;
}
return $this->_assetsBase;
}
public function getComposer(){
if(file_exists(Yii::getAlias('@app/composer.json'))){
//приложение Basic
return Composer::getInstance(Yii::getAlias('@app/composer.json'), Yii::getAlias('@app'));
} else {
//приложение Advanced и т.п.
return Composer::getInstance(Yii::getAlias('@vendor/../composer.json'), Yii::getAlias('@vendor/..'));
}
}
}