wertex / yii2-fias-2019
您的网站使用的Fias基础
dev-master
2019-04-14 11:16 UTC
Requires
- ext-soap: *
- yiisoft/yii2: *
- yiisoft/yii2-jui: ^2.0
Requires (Dev)
- codeception/codeception: ^2.4
This package is auto-updated.
Last update: 2024-09-14 23:56:08 UTC
README
该fias模块旨在与国家地址目录 http://fias.nalog.ru/ 一起工作
分支与原始模块的区别
- 仅支持MySQL(使用REPLACE INTO和TRUNCATE TABLE操作)。
- 在模块设置中添加了配置单独数据库连接的功能。
- 更新按版本顺序应用。
- 执行导入的组件被纳入模块,即可以被重写。请参阅模块配置。
- 添加了用于测试的Docker环境以及FIAS安装/更新的功能测试。
模块结构
actions содержит действия
console содержит логику для работы приложения в консоли
base содержит модели необходимые для работы модуля в консоли
controllers содержит контроллер консольных команд
models содержит модели для работы с данными в консоли
traits содержит трейты
controllers содержит основные контроллеры модуля
helpers содержит классы хелперы
models сожержит основные модели модуля
searches содержит модели поиска
widgets содержит виджеты модуля
Module.php базовый класс модуля
依赖关系
模块运行需要官方的jquery ui扩展(yiisoft/yii2-jui)。
安装
使用composer安装模块
composer require solbianca/yii2-fias "dev-master"
应用迁移
php yii migrate/up --migrationPath=@vendor/solbianca/yii2-fias/migrations
配置
在配置文件中连接模块
'modules' => [
'fias' => [
'class' => \solbianca\fias\Module::class,
'components' => [
'loader' => [
'class' => \solbianca\fias\console\base\Loader::class,
],
'importFias' => [
'class' => \solbianca\fias\console\components\ImportFiasComponent::class,
],
'updateFias' => [
'class' => \solbianca\fias\console\components\UpdateFiasComponent::class
]
]
],
....
],
只有在这个记录下它才开始工作
'modules' => [
'fias' => [
'class' => \solbianca\fias\Module::class,
],
....
],
'components' => [
'loader' => [
'class' => \solbianca\fias\console\base\Loader::class,
],
'importFias' => [
'class' => \solbianca\fias\console\components\ImportFiasComponent::class,
],
'updateFias' => [
'class' => \solbianca\fias\console\components\UpdateFiasComponent::class
]
...
]
配置单独的数据库连接
'modules' => [
'fias' => [
'class' => \solbianca\fias\Module::class,
'components' => [
'loader' => [
'class' => \solbianca\fias\console\base\Loader::class,
],
'importFias' => [
'class' => \solbianca\fias\console\components\ImportFiasComponent::class,
],
'updateFias' => [
'class' => \solbianca\fias\console\components\UpdateFiasComponent::class
],
'db' => [
'class' => \yii\db\Connection::class
]
]
],
....
],
设置控制器映射
'controllerMap' => [
'fias' => [
'class' => 'solbianca\fias\console\controllers\FiasController'
]
],
模块可以指定下载存档/解压缩数据库的目录。默认尝试在@app/runtime/fias文件夹中下载/解压缩
'modules' => [
....
'fias' => [
'class' => \solbianca\fias\Module::class,
'components' => [
'loader' => [
'class' => \solbianca\fias\console\base\Loader::class,
'fileDirectory' => '@path_alias/to/directory'
],
'importFias' => [
'class' => \console\components\ImportFiasComponent::class
],
'updateFias' => [
'class' => \solbianca\fias\console\components\UpdateFiasComponent::class
]
]
],
....
],
控制台命令
要初始化fias数据库,请输入以下命令
php yii fias/install
这种方法需要花费很长时间,因为应用程序首先会下载3.5GB的存档,然后提取它,然后再导入数据。
初始化数据库的更优方法。首先下载数据库,解压缩,上传到服务器,然后在控制台命令中指定其路径。
php yii fias/install /path/to/files
由于数据库大小很大(约20GB),完整数据库的导入可能需要很长时间,几个小时。
使用该命令更新fias数据库。应用程序将检查服务器上的最新数据版本和服务器上导入的版本。如果它们不同,将下载最新的delta_fias版本并应用它。
php yii fias/update
清除下载/解压缩文件的目录(默认为@app/runtime/fias)
php yii fias/clear-directory
小部件
为了使用小部件,需要在相应的视图文件中指定
<?= solbianca\fias\widgets\autocomplete\Autocomplete::widget() ?>
运行测试
启动之前需要安装docker和docker-compose。
./console.sh ./yii migrate ./vendor/bin/codecept run