Project
- Changed PHPStan level to level 3. remp/crm#2988
- Changed
@inject and @persistent PHPdoc annotations to #[Inject] and #[Persistent] attributes. remp/crm#3061
- Fixed
/tests to follow PSR4 & added entry into PHP_CodeSniffer ruleset. remp/crm#2228
- Added use statements to
/tests for classes where we used FQN. remp/crm#2228
- Added
/bin into PHP_CodeSniffer and PHPStan configuration. remp/crm#2228
CRM Rector (utils)
- Added set
CRM_3_0_PSR4 to help with migration from CRM 2.0 to CRM 3.0 (contains only class and namespace renames related to PSR4 specification). remp/crm#2228
[AdminModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Added
flatpickr_maxdatetime option to flatpickr configuration to set maximum datetime selectable in flatpickr. remp/crm#2201
- Added use statements for classes where we used FQN. remp/crm#2228
[ApiModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
- Added use statements for classes where we used FQN. remp/crm#2228
[AppleAppstoreModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Fixed return types of
AppleAppstoreGateway after interface changed. remp/crm#2988
- Added use statements for classes where we used FQN. remp/crm#2228
[ApplicationModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- BREAKING: Changed how
LazyEventEmitter->removeListener() works. Event listeners are now removed from within LazyEventEmitter->getSortedListeners() and not immediately when removeListener() is called in *Module class. remp/crm#3039
- Before this change, order of modules could affect if event listener was removed or not. If module with
removeListener() was initialized before module which added listener with addListener(), lister would stay active.
- After the change, all listeners marked for removal are queued first. They are removed when
getSortedListeners() is called (which should be after all modules are initialized).
- Note: Calling
LazyEventEmitter->removeAllListeners($event) unsets also listeners (for $event) queued for removal.
- BREAKING: Changed registration of mounted filesystems in configuration. remp/crm#2835
- If you registered your filesystems in configs to
applicationMountManager via setup directive, please replace the applicationMountManager with mountManagerConfig.
- BREAKING: Updated
League\Flysystem to v3. If you used any of the League\Flysystem\MountManager methods, please review their use. remp/crm#2835
- It’s not possible to request
ApplicationMountManager::getAdapter, MountManager will not expose real path to the file anymore.
- BREAKING: Removed
Crm\ApplicationModule\Models\ApplicationMountManager::getMimeType() method in favor of (existing) mimeType() method. remp/crm#2835
- BREAKING: Application now requires use of
psr/log: ^3. remp/crm#3050
- If you implement any of the
Psr\Log interfaces, you might be required to add return types to the implemented methods.
- BREAKING: Updated
robmorgan/phinx library to the latest version. remp/crm#3050
- If you write your own migrations, you might want to test them against an empty DB. Types are now strict and older migrations could be broken if you used incorrect type in the past.
- BREAKING: Changed
WidgetInterface; it now extends Nette\ComponentModel\IComponent. remp/crm#2988
BaseLazyWidget / BaseWidget and LazyWidgetManager / WidgetManager require widgets to extend IComponent. To prevent registrations with incorrect widgets, WidgetInterface now has clear “dependency”.
- In most cases is best to extend
Nette\Application\UI\Control which implements Nette\ComponentModel\IComponent.
- BREAKING: Added return types to
Crm\ApplicationModule\Event\EventManagerInterface. remp/crm#2988
- BREAKING: Application now uses
kdyby/autowired: ^3. remp/crm#3064
- If you actively utilize autowiring features of the library, please review the breaking changes available at https://github.com/Kdyby/Autowired/releases/tag/v3.0.0.
- BREAKING: Removed
nette/finder in favor of nette/utils. remp/crm#3065
- IMPORTANT: Application now uses
nette/robot-loader: ^4 and nette/utils: ^4. remp/crm#3065
- Changed implementation of
Crm\ApplicationModule\ComposerScripts::postAutoloadDump method. remp/crm#3050
- Due to compatibility issues we can’t initialize Console application directly in Composer script anymore. We now execute the console command in a separate process.
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
- Added transaction to database tests (
DatabaseTestCase). remp/crm#3055
- Transaction rollback is faster than truncation of all tables.
- Updated
contributte/forms-multiplier to the latest version. remp/crm#3067
- Updated
sentry/sentry to the latest version. remp/crm#3069
- Fixed
GoogleLineGraphGroupControlFactoryInterface to return GoogleLineGraphGroup. remp/crm#3070
- Added missing dependency
symfony/console. remp/crm#3072
- This si required by commands. It is installed by other packages, but we should keep it as direct dependency with version constraint.
- Added
maskEmail Latte helper (moved from family-module extension). remp/respekt#141
- Added use statements for classes where we used FQN. remp/crm#2228
[ClvModule]
- Added use statements for classes where we used FQN. remp/crm#2228
[CouponModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
- Added use statements for classes where we used FQN. remp/crm#2228
[DashboardModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Added use statements for classes where we used FQN. remp/crm#2228
[FamilyModule]
- BREAKING: Moved
Crm\FamilyModule\Helpers\MaskEmailHelper to application-module.
- If you used this helper directly, please change the import paths from
Crm\FamilyModule\Helpers\MaskEmailHelper to Crm\ApplicationModule\Helpers\MaskEmailHelper. remp/respekt#141
- Added new event
FamilyRequestCreated emitted after every request inserted into database. remp/respekt#68
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
- Added use statements for classes where we used FQN. remp/crm#2228
- Added command
GenerateFamilyRequestsCommand that manually generates missing family requests. remp/novydenik#2404
[GiftsModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Added use statements for classes where we used FQN. remp/crm#2228
[GooglePlayBillingModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- IMPORTANT: Changed Google Play Billing gateway to recurrent. remp/crm#1522
- Run command
google:create-missing-recurrent to create all the missing recurrent payments.
- Fixed grace period subscription end time if subscription purchased. remp/crm#2963
- Added handling of “void purchase” developer notification. remp/crm#3031
- Fixed
developer-notification.schema.json to allow this type of developer notification.
- Hotfixed
DeveloperNotificationPushWebhookApiHandler. Currently, we are ignoring these developer notifications.
- Added use statements for classes where we used FQN. remp/crm#2228
- Added
subscription_purchase column to google_play_billing_developer_notifications table to store SubscriptionPurchase object obtained at the time of notification processing for easier debugging. remp/crm#2686
[GoPayModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
- Fixed return types of
GoPayRecurrent after interface changed. remp/crm#2988
- Added use statements for classes where we used FQN. remp/crm#2228
[InvoicesModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- BREAKING: Fixed
date filter in template for ReceiptGenerator. It now doesn’t override default PHP date filter. remp/novydenik#1084 remp/respekt#51
- Use
$date|date for default PHP filter.
- Use
$date|userDate for Crm\ApplicationModule\Helpers\UserDateHelper filter.
- Use
$date|localizedUserDate for Crm\ApplicationModule\Helpers\LocalizedDateHelper filter.
- BREAKING: Replaced
jkuchar/pdfresponse library with contributte/pdf. remp/crm#3065
- If you use
PdfResponse\PdfResponse in your modules, replace the use with Contributte\PdfResponse\PdfResponse. Refer to InvoiceGenerator class as a reference.
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
- Added use statements for classes where we used FQN. remp/crm#2228
[IssuesModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- BREAKING: Fixed
SyncFtpIssuesCommand after league/flysystem package update. remp/novydenik#1185 remp/crm#2835
- Path of file returned by
listContents now contains also adapter prefix (ftp://). This broke sync of files to local filesystem.
- BREAKING: This command now doesn’t search FTP recursively.
deep flag of FlySystem’s listContents() doesn’t work as expected with FTP servers that do not support deep listing. When deep is set to true, listContents($path, deep:true) always returns zero files.
- Added use statements for classes where we used FQN. remp/crm#2228
[OnboardingModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Added use statements for classes where we used FQN. remp/crm#2228
[PaymentsModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- BREAKING: Changed return type of
PaymentItemsRepository->deletePaymentItem() from int to bool to be consistent with other delete methods. remp/crm#2988
- BREAKING: Fixed return type of
TransactionPayload->getCurrency() from string to int. remp/crm#2988
- BREAKING: Fixed return types of
RecurrentPaymentInterface->getResultCode() and RecurrentPaymentInterface->getResultCode() to ?string. remp/crm#2988
- Fixed return types of gateways
Comfortpay, CsobOneClick and PaypalReference.
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
- Fixed possibly incorrect VAT when copying payment for specific scenarios if the VAT changed. remp/novydenik#1192
- Fixed scenario when payment is confirmed manually in admin without a notification, and yet this signal wasn’t correctly propagated to the scenario triggers. remp/respekt#124
- Fixed CSOB gateway not considering status
8 (settled) as successful. remp/respekt#129
- Added validation for
paid_at field in PaymentFormFactory that it cannot be set in the future. remp/crm#2201
- Fixed missing argument
sendMail in RecurrentPaymentsProcessor->processChargedRecurrent method. remp/helpdesk#2396
[PrintModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Fixed migration issue causing new projects seeing error during migration due to missing default country ID. remp/crm#3030
- Added logging of print export downloads, so the last download time can be displayed in admin. remp/respekt#102
[PrivatbankarModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Fixed return types of
PrivatbankarRecurrent after interface changed. remp/crm#2988
[ProductsModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
[RempMailerModule]
- Fixed incorrect Mailer token check during unsubscribe scenario if unsubscribing different user. remp2020/crm-remp-mailer-module#4
[SalesFunnelModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- BREAKING: Removed
mobiledetect/mobiledetectlib library from dependencies, use provided matomo/device-detector instead.
- Updated Segmenter JS libraries (Vue 3). remp/crm#2518
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
[ScenariosModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- Added payment param into
NotificationEvent also in case payment_id was not provided but subscription is connected to one. remp/helpdesk#2329
- Added check if database is already in transaction (
ScenariosRepository->createOrUpdate()). remp/crm#3055
[SegmentModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- BREAKING: Changed signature of
SegmentFactoryInterface::buildSegment method.
- If you implement your own
SegmentFactory, update the signature to buildSegment(string|ActiveRow $segment): SegmentInterface and handle ActiveRow $segment scenario. remp/crm#2518
- Fixed bugs when loading segments data with datetime parameter in segments visual editor. remp/helpdesk#2307
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
[SlspSporopayModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
[StripeModule]
- BREAKING: Fixed return type of
AbstractStripe->calculateStripeAmount() from int to string. remp/crm#2988
- Fixed return types of
StripeRecurrent after interface changed. remp/crm#2988
[SubscriptionsModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- BREAKING: Added return type to
SubscriptionTypePaymentItem->fromSubscriptionTypeItem(). remp/crm#2988
- Fixed content access matching in
FirstSubscriptionInPeriodCriteria. remp/novydenik#1074
- Checking previous subscription’s content accesses should be treated with
OR operator. If it contains any of provided content accesses, criteria should return false.
- E.g. If current subscription has
web, print accesses and previous has web, mobile, print and criteria filter contains print, it should be enough to match previous subscription and return false.
- Updated conditions in
HasLaterEndingSubscriptionCriteria to treat stopped subscription (start_time=end_time) as no subscription. remp/novydenik#1174
- Fixed
ContentAccessCriteria not evaluating the scenario condition correctly if the single condition contained two chained criteria of this same type. remp/crm#3048
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
- Added
SubscriptionEndsSuppressionManager to be able to suppress subscription ends notifications for selected subscription. remp/respekt#121
[UpgradesModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
[UsersModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
- BREAKING: Changed return type of
UserConnectedAccountsRepository->removeAccountForUser() from int to ?bool to be consistent with other delete methods. remp/crm#2988
- Fixed errors reported by PHPStan (level 3). remp/crm#2988
- BREAKING: Removed
mobiledetect/mobiledetectlib library from dependencies, use provided matomo/device-detector instead.
- BREAKING: Removed
users.last_sign_in_at and users.last_sign_in_ip columns. Both were deprecated from version 2.7. remp/crm#2871 remp/crm#2876
[VubEplatbyModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
[WalletPayModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.
[WordpressModule]
- BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
- Use package
remp/crm-rector:^3.0 to automatically fix these renames.