nicholasricci/anagrafiche-anpr-istat

ANPRR和ISTAT的序列化数据

v1.1.0 2024-08-07 14:25 UTC

This package is auto-updated.

Last update: 2024-09-07 14:45:47 UTC


README

官方意大利贝尔菲奥雷代码列表(地籍代码),代表一个comune

更新

要更新数据库,您必须克隆项目并安装dev-dependencies。然后,控制台将可用以下载和转储标准化数据集

composer install
php -d memory_limit=-1 bin/console update

就绪。

使用方法

安装

PHP

composer require nicholasricci/anagrafiche-anpr-istat

序列化数据

您可以在任何语言的dist/文件夹中获取最新的comune和外国地区的序列化数据库CSV、JSON、XML和YAML。

API

PHP

有一个nicholasricci\AnagraficheANPRISTAT\Collection\ComuneCollection和一个nicholasricci\AnagraficheANPRISTAT\BelfioreCode\Collection\RegionCollection,可以获取一个填充了两个数据库的ArrayCollection。这使您可以直接像数组一样遍历它们,甚至可以执行列查询。

查询

您可以通过其registry_code(也称为cadastral codebelfiore code)获取一个comune。

<?php

use nicholasricci\AnagraficheANPRISTAT\Collection\ComuneCollection;
use nicholasricci\AnagraficheANPRISTAT\Collections\Criteria;
use Doctrine\Common\Collections\Expr\Comparison;

$comunes = new ComuneCollection();

$criteria = new Criteria();
$criteria
    ->where(new Comparison('registry_code', Comparison::IS, 'A001'))
;

var_dump($comunes->matching($criteria)));

这将为您获取一个新的匹配注册代码的集合。如您所见,有一个名为"ABANO"的comune,于1924-11-13停止使用,还有一个名为"ABANO TERME"的活跃comune。

object(nicholasricci\AnagraficheANPRISTAT\Collection\ComuneCollection)#49 (1) {
  ["elements":"Doctrine\Common\Collections\ArrayCollection":private]=>
  array(2) {
    [0]=>
    array(18) {
      ["id"]=>
      string(5) "12560"
      ["institution_date"]=>
      string(10) "1866-11-19"
      ["end_date"]=>
      string(10) "1924-11-13"
      ["istat_id"]=>
      string(6) "028001"
      ["registry_code"]=>
      string(4) "A001"
      ["name_it"]=>
      string(5) "ABANO"
      ["name_transliterated"]=>
      string(5) "ABANO"
      ["alternative_name"]=>
      string(0) ""
      ["alternative_name_transliterated"]=>
      string(0) ""
      ["anpr_id"]=>
      string(2) "28"
      ["istat_province_id"]=>
      string(3) "028"
      ["istat_region_id"]=>
      string(2) "05"
      ["istat_prefecture_id"]=>
      string(0) ""
      ["status"]=>
      string(12) "discontinued"
      ["provincial_code"]=>
      string(2) "PD"
      ["source"]=>
      string(0) ""
      ["last_update"]=>
      string(10) "2016-06-17"
      ["istat_discontinued_code"]=>
      string(6) "028500"
    }
    [1]=>
    array(18) {
      ["id"]=>
      string(1) "1"
      ["institution_date"]=>
      string(10) "1924-11-14"
      ["end_date"]=>
      string(10) "9999-12-31"
      ["istat_id"]=>
      string(6) "028001"
      ["registry_code"]=>
      string(4) "A001"
      ["name_it"]=>
      string(11) "ABANO TERME"
      ["name_transliterated"]=>
      string(11) "ABANO TERME"
      ["alternative_name"]=>
      string(0) ""
      ["alternative_name_transliterated"]=>
      string(0) ""
      ["anpr_id"]=>
      string(2) "28"
      ["istat_province_id"]=>
      string(3) "028"
      ["istat_region_id"]=>
      string(2) "05"
      ["istat_prefecture_id"]=>
      string(2) "PD"
      ["status"]=>
      string(6) "active"
      ["provincial_code"]=>
      string(2) "PD"
      ["source"]=>
      string(0) ""
      ["last_update"]=>
      string(10) "2016-06-17"
      ["istat_discontinued_code"]=>
      string(0) ""
    }
  }
}

您可能想通过其registry_code找到一个活跃的comune。为了实现这一点,只需参考Doctrine Collections文档

<?php

use nicholasricci\AnagraficheANPRISTAT\Collection\ComuneCollection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\Common\Collections\Expr\Comparison;

$comunes = new ComuneCollection();

$criteria = new Criteria();
$criteria
    ->where(new Comparison('registry_code', Comparison::IS, 'A001'))
    ->andWhere(new Comparison('status', Comparison::IS, 'active'))
;

var_dump($comunes->matching($criteria)));

它将为您抓取所需的条件

object(nicholasricci\AnagraficheANPRISTAT\Collection\ComuneCollection)#55 (1) {
  ["elements":"Doctrine\Common\Collections\ArrayCollection":private]=>
  array(1) {
    [1]=>
    array(18) {
      ["id"]=>
      string(1) "1"
      ["institution_date"]=>
      string(10) "1924-11-14"
      ["end_date"]=>
      string(10) "9999-12-31"
      ["istat_id"]=>
      string(6) "028001"
      ["registry_code"]=>
      string(4) "A001"
      ["name_it"]=>
      string(11) "ABANO TERME"
      ["name_transliterated"]=>
      string(11) "ABANO TERME"
      ["alternative_name"]=>
      string(0) ""
      ["alternative_name_transliterated"]=>
      string(0) ""
      ["anpr_id"]=>
      string(2) "28"
      ["istat_province_id"]=>
      string(3) "028"
      ["istat_region_id"]=>
      string(2) "05"
      ["istat_prefecture_id"]=>
      string(2) "PD"
      ["status"]=>
      string(6) "active"
      ["provincial_code"]=>
      string(2) "PD"
      ["source"]=>
      string(0) ""
      ["last_update"]=>
      string(10) "2016-06-17"
      ["istat_discontinued_code"]=>
      string(0) ""
    }
  }
}

排序

排序也可以通过Doctrine Collections完成。请参阅他们的文档以查看可用的API

<?php

use nicholasricci\AnagraficheANPRISTAT\Collection\ComuneCollection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\Common\Collections\Expr\Comparison;

$comunes = new ComuneCollection();

$criteria = new Criteria();
$criteria->orderBy(['last_update' => Criteria::ASC]);

var_dump($comunes->matching($criteria)));

归属

devnix/belfiore-code分支