fsi / teryt-database-bundle
Teryt 数据库包
3.0.2
2019-08-07 13:26 UTC
Requires
- php: >=7.1
- ext-dom: *
- ext-simplexml: *
- ext-soap: *
- doctrine/common: ^2.6
- doctrine/doctrine-fixtures-bundle: ^3.1
- hobnob/xml-stream-reader: ^1.0
- robrichards/wse-php: ^2.0
- robrichards/xmlseclibs: ^3.0
- symfony/console: ^3.4|^4.0
- symfony/css-selector: ^3.4|^4.0
- symfony/dom-crawler: ^3.4|^4.0
- symfony/framework-bundle: ^3.4|^4.0
Requires (Dev)
- ext-pdo_sqlite: *
- behat/behat: ^3.3
- behat/mink-browserkit-driver: ^1.3
- behat/mink-extension: ^2.0
- behat/symfony2-extension: ^2.0
- bossa/phpspec2-expect: ^3.0
- doctrine/doctrine-bundle: ^1.2
- doctrine/orm: ^2.4
- phpspec/phpspec: ^5.0
- phpstan/phpstan: ^0.11.4
- phpstan/phpstan-doctrine: ^0.11.2
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