cultuurnet / cdb
PHP 库,用于填充/操作 CultuurNet 的 Cdb XML 文档
Requires
- ext-simplexml: *
Requires (Dev)
- phing/phing: ~2.11
- phpunit/phpunit: ~4.8
- satooshi/php-coveralls: ~0.7
- squizlabs/php_codesniffer: ~2.3
This package is auto-updated.
Last update: 2024-08-29 03:27:08 UTC
README
CultuurNet\Cdb 旨在成为一款流畅的 PHP 库,用于操作、序列化和反序列化 CultuurNet 的 CdbXML 格式中的数据。该库目前支持 CdbXML 3.2。
历史
在 2012 年夏天首次出现时,这个库是 Drupal 模块 Culturefeed 的一个重要组成部分。它由 Krimson 开发,基于 2009 年早期 Statik 的一个原型。然而,这个库从一开始就被设计为可以通用的,而不是紧密耦合在 Drupal 模块中。因此,在 2013 年 2 月,它从 Culturefeed 模块中提取出来。
为了将向后兼容的更改降到最低,保留了 PEAR 风格的命名约定,并且类保留了历史 CultureFeed_Cdb 前缀。在未来的一个主要版本中,它们可能会被重命名并使用 PHP 5.3 的 CultuurNet\Cdb 命名空间。
安装
您可以根据自己的需要以任何方式安装 CultuurNet\Cdb PHP 库。但是,我们建议使用 Composer。
在项目的 composer.json 文件中需要 cultuurnet/cdb 包(它在 Packagist 上注册了 Packagist)。
{ "require": { "cultuurnet/cdb": "2.*@dev" } }
然后运行 composer install
该库符合 PSR-0 规范,因此您可以使用任何 PSR-0 规范的自动加载器来加载其类。如果您使用 Composer,可以简单地包含 Composer 生成的自动加载器。
当使用 Drupal 时,使用 Composer 的自动加载器有一个非常简单的方法
- 在 Drupal 根目录中放置一个名为 composer.json 的文件,并包含 json 内容
- 运行
composer install
- 在网站的 settings.php 文件中包含此内容
require 'vendor/autoload.php';
向后兼容性
本节包含有关可能的后向兼容性中断的信息,并概述了使用 CultuurNet\Cdb 库升级第三方代码所需的必要步骤。
2013-03-18
CultureFeed_Cdb_Data_Url 的 setMailAddress() 和 isMainMail() 成员方法的更名
CultureFeed_Cdb_Data_Url 的以下方法已被重命名,以正确描述其目的
- setMailAddress() 现在称为 setUrl()
- isMainMail 现在称为 isMain()
2013-03-07
CultureFeed_ParseException 被替换为 CultureFeed_Cdb_ParseException
CultuurNet\Cdb 库仍在使用 culturefeed 模块中的 CultureFeed_ParseException,这是一个不希望有的依赖项。已引入一个名为 CultureFeed_Cdb_ParseException 的新类,现在正在使用它而不是 CultureFeed_ParseException。
CultureFeed_Cdb_Default 中的 addItem 的参数从 $item 改为 $item
addItem 方法使用 2 个参数:type, $item。这已被更改为只使用 $item。类型将根据 $item 的类内部决定。
CultureFeed_Cdb_Default 中的 getXml 更改为 __toString
CultureFeed_Cdb_Default 中的 getXml 方法已被 __toString 方法所取代。
2013-01-23
删除 CultureFeed_SimpleXMLElement 依赖
所有 CultureFeed_SimpleXMLElement 出现的位置都已替换为 SimpleXMLElement,因为实际上并未使用 CultureFeed_SimpleXMLElement 的任何附加功能。由于 Drupal CultureFeed 模块中的 CultureFeed_SimpleXMLElement 扩展了 SimpleXMLElement,因此这次更改通常不会对现有代码产生影响。如果您在此更改后仍然遇到问题,请告诉我们!
为符合 PSR-0 规范重命名类
为了符合 PSR-0 规范,一些类名需要进行重命名
- CultureFeed_Cdb_Data_VirtualAddress 变更为 CultureFeed_Cdb_Data_Address_VirtualAddress
- CultureFeed_Cdb_Data_PhysicalAddress 变更为 CultureFeed_Cdb_Data_Address_PhysicalAddress
第三方代码应使用新的类,这些类在功能上相同。
CultureFeed_Cdb_Item_Event::parseFromCdbXml() 逻辑变更
CultureFeed_Cdb_Item_Event::parseFromCdbXml() 之前期望一个包含 events 元素的 SimpleXMLElement 参数,并解析该 events 元素中的第一个事件元素。然而,CultureFeed_Cdb_Item_Event 应该代表一个单一事件,因此 CultureFeed_Cdb_Item_Event::parseFromCdbXml() 应只对单个 'event' XML 元素及其内容有期望,这与 CultuurNet\Cdb 库中其他类从 XML 解析的方式一致。从现在起,第三方代码应将单个事件 XML 元素传递给 CultureFeed_Cdb_Item_Event::parseFromCdbXml()。
事件外部 ID 与 CdbId
使用 CultureFeed_Cdb_Item_Event::parseFromCdbXml() 解析 CdbXML 时,CdbId 错误地被设置为一个外部 ID,通过 CultureFeed_Cdb_Item_Event::setExternalId()。第三方代码可以使用 CultureFeed_Cdb_Item_Event::getExternalId() 获取 CdbId。从现在起,应使用 CultureFeed_Cdb_Item_Event::getCdbId() 或 CultureFeed_Cdb_Item_Event::setCdbId() 获取 CdbId。CultureFeed_Cdb_Item_Event::getExternalId() 和 CultureFeed_Cdb_Item_Event::setExternalId() 应仅用于检索和设置事件的外部 ID,而不是 CdbId。