wmde / fundraising-store
围绕筹款数据库的持久化服务
Requires
- php: >=7.1
- doctrine/dbal: ^2.5
- doctrine/migrations: ~1.8
- doctrine/orm: ^2.5
- gedmo/doctrine-extensions: ^2.4
- ramsey/uuid: ^3.7
- symfony/yaml: ~4.1
Requires (Dev)
- ockcyp/covers-validator: ~0.6.1
- phpunit/phpunit: ~6.2
- squizlabs/php_codesniffer: ~3.0
- 10.5.0
- 10.4.1
- 10.4.0
- 10.3.3
- 10.3.2
- 10.3.1
- 10.3.0
- 10.2.0
- 10.1.1
- 10.1.0
- dev-master / 10.0.x-dev
- 10.0.0
- 9.0.0
- 8.0.1
- 8.0.0
- 8.0.0-beta.3
- 8.0.0-beta.2
- 8.0.0-beta
- 7.0.1
- 7.0.0
- 6.1.0
- 6.0.1
- 6.0.0
- 5.0.0
- 4.2.0
- 4.1.0
- 4.0.0
- 3.0.1
- 3.0.0
- 2.1.0
- 2.0.1
- 2.0.0
- 1.0.0
- 0.2.x-dev
- v0.1
- dev-update-doctrine
- dev-payments
- dev-deprecated-setstatus
This package is auto-updated.
Last update: 2024-09-18 06:20:12 UTC
README
筹款存储 包含 WMDE 筹款代码库的持久化服务。
安装
您可以使用 Composer 下载并安装此软件包以及其依赖项。
要将此软件包添加为本地、项目特定的依赖项,请运行
composer require wmde/fundraising-store
此软件包提供了 Doctrine 控制台所需的 vendor/bin/cli-config.php
文件。一个与集成测试使用的容器兼容的默认数据库配置(见 docker-compose.yml
)可以在 local-db-config.php
中找到。希望使用此软件包并结合 Doctrine 控制台的应用程序应提供自己的 cli-config.php
。
架构和未来
此库及其创建的表被筹款 Bounded Contexts 和筹款运营中心应用程序使用。想法是将此库通过将特定于 Bounded Context 的所有代码移动到该 Bounded Context 以及将特定于应用程序的所有代码移动到该应用程序来迁移出去。这样,Bounded Contexts 可以有真正的私有持久性并遵循 Clean Architecture + Bounded Contexts 架构规则。
有关我们如何得到这个库的简要历史,请参阅 Wikimedia 筹款软件中的 Bounded Contexts
开发
为了为开发创造一个公平的竞争环境,该项目使用 docker & docker-compose,以及 composer 进行依赖项管理。
提供系统
docker-compose build
安装依赖项
docker run -it --rm --user $(id -u):$(id -g) -v "$PWD":/code -v ~/.composer:/composer -w /code composer composer install
测试
docker-compose run --rm app vendor/bin/phpunit
使用 composer 运行测试和代码风格检查
所有提交的代码都由我们的 CI 与单元测试和编码风格指南进行验证。这些工具的配置可以在根目录中找到。通过 composer 安装后,您可以直接从 vendor/bin
中的位置调用这些工具,或使用提供的 composer
任务。
composer ci # Run all checks
composer cs # Run style checks
composer test # Run unit tests
请注意,Composer 作为脚本运行器和容器化的概念可能不会直接一起工作。
发布说明
计划在下一个版本(11.x)中发布
- 将捐赠和会员与 AddressChange 的关系反转。警告:这将删除“级联”功能(在创建捐赠/会员时自动创建 AddressChange 记录)。FundraisingFrontend 将必须实现一个事件处理器来完成创建。
版本 10.5.0(2020-01-31)
- 将
$additionalMetadataDrivers
参数添加到Factory
以支持 XML 映射实体(例如,在 AddressChange Bounded Context 中)。
版本 10.4.1(2020-01-30)
- 将
donationReceipt
默认值更改为true
版本 10.4.0(2019-05-29)
- 将
donationReceipt
添加到AddressChange
版本 10.3.3(2019-02-04)
- 修复地址更改迁移
版本 10.3.2(2019-01-31)
- 允许
getAddress
在AddressChange
中返回 null
版本 10.3.1(2019-01-30)
- 修复数据库中
createdAt
和modifiedAt
列的列名,以AddressChange
为例
版本 10.3.0(2019-01-29)
- 将
createdAt
和modifiedAt
添加到AddressChange
版本 10.2.0 (2019-01-18)
- 将
exportDate
添加到AddressChange
版本 10.1.0 (2019-01-16)
- 从
AddressChange
中删除thirdPartyIdentifier
版本 10.0.0 (2019-01-11)
- 将
addressType
和thirdPartyIdentifier
添加到AddressChange
版本 9.0.0 (2018-08-16)
- 删除 doctrine 实体
User
、ActionLog
、BackendBanner
、BackendImpression
并将它们移动到fundraising-backend
存储库
版本 8.0.0 (2018-06-06)
- 为地址导出功能添加
AddressChange
实体
版本 7.0.1 (2017-12-05)
- 将默认时间戳值从 "0" 改为 "当前时间",以防止在新版本的 MySQL 上出错
版本 7.0.0 (2017-11-01)
- 引入了
MembershipApplication::setDonationReceipt()
等等
版本 6.1.0 (2017-08-16)
- 出于历史原因,引入了常量
Donation::STATUS_EXPORTED
版本 6.0.1 (2017-08-02)
- 更新了 Doctrine DBAL 和 ORM 的最小版本。
版本 6.0.0 (2017-07-18)
- 添加了
DonationPayments\SofortPayment
实体
版本 5.0.0 (2017-03-30)
破坏性更改
- 为捐赠和会员资格添加全文索引。这破坏了 MySQL 版本 < 5.6 的向后兼容性。
- 将所有捐赠索引的前缀设置为
d_
。 - 将
MembershipApplication
中的donation_id
标记为已弃用。它不再由筹资前端写入,但仍然在后端的一些地方被引用,因此我们现在只是将其标记为已弃用而不是删除它。
版本 4.2.0 (2017-01-04)
- 添加了
MembershipApplication::isDeleted()
版本 4.1.0 (2016-12-06)
- 为 Factory 添加了设置代理目录的参数。出于向后兼容性的考虑,它是可选的,默认为
/tmp
。
版本 4.0.0 (2016-11-25)
破坏性更改
- 订阅确认码现在是一个普通字符串,而不是二进制(blob)。这使得它更容易阅读和测试。
版本 3.0.0 (2016-11-16)
破坏性更改
- 已删除订阅状态标志,并建议不再使用 setStatus 和 getStatus。
- 将最低 PHP 版本更改为 7.0
新功能
- 向
subscription
表添加了source
字段。此字段指示导致订阅的原因,例如“稍后提醒”功能。 - 添加了
Subscription::getSource
和Subscription::setSource
- 添加了
Subscription::markAsConfirmed
- 添加了
Subscription::markForModeration
- 添加了
Subscription::needsModeration
错误修复
Subscription::isUnconfirmed
现在在订阅被标记为需要审核时正确返回 true。
版本 2.1.0 (2016-10-10)
- 模式更改:在
request
表中添加了payment_type
字段列 - 添加了
MembershipApplication::setPaymentType
和MembershipApplication::getPaymentType
- 在应用程序中包含
FundraisingStore
时,删除了重新使用cli-config.php
文件的能力。
版本 2.0.1 (2016-09-28)
根据语义版本控制规则,此版本应该是 2.1,但错误地标记了。
- 添加了
MembershipApplicationData::setPreservedStatus
和MembershipApplicationData::getPreservedStatus
。这用于在状态从正值变为负值时存储之前的状态。
版本 2.0.0 (2016-08-03)
破坏性更改
- 重命名了几个实体。数据库表名没有更改,以保持向后兼容。
Spenden
=>Donation
。Users
=>User
BackendImpressions
=>BackendImpression
Request
被拆分为MembershipApplication
和Subscription
(已删除类型字段)
Donation
和MembershipApplication
的公共 PHP 接口已更改为英文。- 现在自动添加到捐赠、会员申请和订阅的创建时间戳。捐赠创建时间戳
dt_new
现在是强制性的(不可为空)。 - 从
MembershipApplication
中删除了guid
字段。 - 将最低 PHP 版本更改为 5.6
新功能
- 添加了
Address
实体 - 添加了
DonationData
类以提供更便捷的数据字段访问 - 向
Donation
添加了新的方法setId
getDecodedData
encodeAndSetData
getDataObject
setDataObject
modifyDataObject
- 添加了
MembershipApplicationData
类,以提供更便捷的数据字段访问 - 向
MembershipApplication
添加了新的方法setId
getDecodedData
encodeAndSetData
getDataObject
setDataObject
modifyDataObject
版本 1.0 (2016-01-11)
- 为 Doctrine ORM 壳命令添加了 CLI 配置
- 添加了请求类型和状态常量
- 当设置首字母或姓氏时,自动在请求中设置全名。
- 将最低 PHP 版本更改为 5.5
版本 0.1 (2015-07-10)
初始版本,包括 Store\Factory
、Store\Installer
以及这些实体
- ActionLog
- BackendBanner
- BackendImpressions
- Request
- Spenden
- Users
未来计划
- 将支付元数据从
Donation::data
迁移到DonationPayment
抽象类的特定子类。