fsi/teryt-database-bundle

Teryt 数据库包

安装次数: 15,160

依赖关系: 0

建议者: 0

安全性: 0

星级: 5

关注者: 12

分支: 14

公开问题: 2

类型:symfony-bundle

3.0.2 2019-08-07 13:26 UTC

This package is auto-updated.

Last update: 2024-09-17 11:40:49 UTC


README

Teryt 是波兰行政区划数据库,可在 http://eteryt.stat.gov.pl 获取。此包添加了从 teryt API 下载文件、解析 XML 文件并将数据插入数据库的命令。

安装

将以下行添加到您的 composer.json 文件中

"require": {
    "fsi/teryt-database-bundle": "^3.0"
}

AppKernel.php 中注册包

public function registerBundles()
{
    return [
        // ...
        new FSi\Bundle\TerytDatabaseBundle\FSiTerytDbBundle(),
        new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
        // ...
    ];
}

添加以下配置

fsi_teryt_db:
    api:
        url: "https://uslugaterytws1.stat.gov.pl/wsdl/terytws1.wsdl"
        username: "<your username>"
        password: "<your password>"

从现在起,命令应在您的应用程序中可用。

从 teryt 页面下载 XML 文件

$ cd project
$ php app/console teryt:download:territorial-division
$ php app/console teryt:download:places-dictionary
$ php app/console teryt:download:places
$ php app/console teryt:download:streets

以上所有命令都有一个额外的参数 --target,允许您将文件下载到除 "%kernel.root_dir%/teryt/(默认下载目标文件夹)之外的位置。

从 XML 文件导入数据到数据库

首先,您需要解压下载的 .zip 文件。

$ cd project/app/teryt
$ unzip territorial-division.zip
$ unzip places-dictionary.zip
$ unzip places.zip
$ unzip streets.zip

以下命令必须按给定顺序执行,这是非常重要的。

$ cd project
$ php app/console doctrine:schema:update --force
$ php app/console doctrine:fixtures:load
$ php app/console teryt:import:territorial-division app/teryt/TERC.xml
$ php app/console teryt:import:places-dictionary app/teryt/WMRODZ.xml
$ php app/console teryt:import:places app/teryt/SIMC.xml
$ php app/console teryt:import:streets app/teryt/ULIC.xml