atnvtk/yii2-fias-2021

Fias 基础库,适用于您的网站

安装: 16

依赖: 0

建议者: 0

安全: 0

星级: 0

关注者: 0

分支: 24

类型:yii2-extension

dev-master 2021-06-01 15:37 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:27 UTC


README

模块 fias 旨在与国家地址注册系统 http://fias.nalog.ru/ 进行工作

分支与原始模块的不同之处

  1. 仅支持 MySQL (使用 REPLACE INTO 和 TRUNCATE TABLE 操作符)。
  2. 在模块设置中增加了配置单独数据库连接的能力。
  3. 更新按版本顺序应用。
  4. 执行导入的组件被内置于模块中,即可以被重写。参见模块配置。
  5. 添加了用于测试的 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.5 GB 的存档,然后解压缩,最后导入数据。

更优的初始化数据库方法。预先下载数据库,解压缩,上传到服务器,然后在控制台命令中指定其路径。

    php yii fias/install /path/to/files

由于数据库文件很大(约 20 GB),完整数据库的导入可能需要很长时间,可能需要几个小时。

使用命令更新 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