fsi / teryt-database-bundle
Teryt database bundle
Installs: 15 230
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 12
Forks: 14
Open Issues: 2
Type:symfony-bundle
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 is Poland territorial division database available at http://eteryt.stat.gov.pl This bundle adds commands that download files from teryt API, parse xml files and insert data into database.
Installation
Add to your composer.json
file following line
"require": { "fsi/teryt-database-bundle": "^3.0" }
Register bundles in AppKernel.php
public function registerBundles() { return [ // ... new FSi\Bundle\TerytDatabaseBundle\FSiTerytDbBundle(), new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(), // ... ]; }
Add following configuration:
fsi_teryt_db: api: url: "https://uslugaterytws1.stat.gov.pl/wsdl/terytws1.wsdl" username: "<your username>" password: "<your password>"
From now commands should be available in your application.
Download XML files from teryt page
$ 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
All above commands have an additional argument --target
, that allows you to download files in a place other than
"%kernel.root_dir%/teryt/
(default download target folder).
Import data from XML files to database
First you need to unzip the downloaded .zip files.
$ cd project/app/teryt
$ unzip territorial-division.zip
$ unzip places-dictionary.zip
$ unzip places.zip
$ unzip streets.zip
It is important to execute following commands in the given order:
$ 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