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.