Development
- Reference tags now support fallback values when no attribute is specified. (#17688)
- Deprecated support for categories, global sets, and tags. (#18009)
Extensibility
- Added
CraftCms\Cms\Support\Arr. - Added
CraftCms\Cms\Support\DateTimeHelper. - Added
CraftCms\Cms\Support\File. - Added
CraftCms\Cms\Support\Facades\Path. - Added
CraftCms\Cms\Support\Facades\Markdown. - Added
CraftCms\Cms\Support\Path. - Added
CraftCms\Cms\Support\Str. - Added
CraftCms\Cms\Support\URL. - Added
CraftCms\Cms\action_url(),CraftCms\Cms\cp_url(), andCraftCms\Cms\site_url()helper functions. craft\services\Elements::stopCollectingCacheInfo()no longer sets the returned duration to thecacheDurationconfig setting if a duration wasn’t explicitly declared. (#16796)- Deprecated
craft\helpers\ArrayHelper.CraftCms\Cms\Support\Arrshould be used instead. - Deprecated
craft\helpers\ConfigHelper.CraftCms\Cms\Support\Configshould be used instead. - Deprecated
craft\helpers\DateTimeHelper.CraftCms\Cms\Support\DateTimeHelpershould be used instead. - Deprecated
craft\helpers\Diff.CraftCms\Cms\Support\Diffshould be used instead. - Deprecated
craft\helpers\ElementHelper.CraftCms\Cms\Element\ElementHelpershould be used for core element helper APIs,CraftCms\Cms\Element\ElementSourcesfor source lookup,CraftCms\Cms\Element\ElementAttributeRendererfor attribute rendering,CraftCms\Cms\Element\Draftsfor provisional draft helpers,CraftCms\Cms\Field\Enums\TranslationMethodfor translation helpers, andIlluminate\Support\Facades\ContextwithCraftCms\Cms\Element\Drafts::CONTEXT_PREVIEW_USER_IDfor preview-user context. - Deprecated
craft\helpers\Html.CraftCms\Cms\Support\Htmlshould be used instead. - Deprecated
craft\helpers\HtmlPurifier.CraftCms\Cms\Support\HtmlSanitizer\HtmlSanitizersshould be used for HTML sanitization, andCraftCms\Cms\Support\Strshould be used for UTF-8 cleanup instead. - Deprecated
craft\helpers\HtmlPurifier::process().CraftCms\Cms\Support\HtmlSanitizer\HtmlSanitizers::sanitize()should be used instead. - Deprecated
craft\helpers\HtmlPurifier::cleanUtf8(). - Deprecated
craft\helpers\HtmlPurifier::convertToUtf8().CraftCms\Cms\Support\Str::convertToUtf8()should be used instead. - Deprecated
craft\helpers\HtmlPurifier::configure().CraftCms\Cms\Support\HtmlSanitizer\HtmlSanitizers::defaults()or a custom sanitizer registration should be used instead. - Deprecated
config/craft/htmlpurifier/*.jsonsanitizer config files. Sanitizers should be registered onCraftCms\Cms\Support\HtmlSanitizer\HtmlSanitizersinstead. - Deprecated
craft\services\Path.CraftCms\Cms\Support\Pathshould be used instead. - Deprecated
craft\helpers\SessionHelper.Illuminate\Support\Facades\Sessionshould be used instead. - Deprecated
craft\helpers\Sequence.CraftCms\Cms\Support\Sequenceshould be used instead. - Deprecated
craft\helpers\StringHelper.CraftCms\Cms\Support\Strshould be used instead. - Deprecated
Craft::$app->getConfig()->getGeneral().CraftCms\Cms\Config\GeneralConfigshould be used instead. This can be used through dependency injection or throughapp(CraftCms\Cms\Config\GeneralConfig::class). - Deprecated
craft.app.config.generalin Twig.app.config.craft.generalshould be used instead. - Deprecated
craft\helpers\App::env(),CraftCms\Cms\Support\Env::get()should be used instead. - Deprecated
craft\markdown\Markdown,craft\markdown\GithubMarkdown,craft\markdown\MarkdownExtra, andcraft\markdown\PreEncodedMarkdown.CraftCms\Cms\Support\Facades\Markdownshould be used instead. - Deprecated
craft\helpers\DateRange.CraftCms\Cms\Shared\Enums\DateRangeTypeandCraftCms\Cms\Shared\Enums\DateRangePeriodshould be used instead. - Deprecated
craft\helpers\Cp. One of the following classes should be used instead:CraftCms\Cms\Cp\AlertsCraftCms\Cms\Cp\FormFieldsCraftCms\Cms\Cp\Html\ContentHtmlCraftCms\Cms\Cp\Html\ElementHtmlCraftCms\Cms\Cp\Html\ElementIndexHtmlCraftCms\Cms\Cp\Html\MenuHtmlCraftCms\Cms\Cp\Html\PreviewHtmlCraftCms\Cms\Cp\Html\StatusHtmlCraftCms\Cms\Cp\IconsCraftCms\Cms\Cp\RequestedSite
- Deprecated
craft\helpers\Json.CraftCms\Cms\Support\Jsonshould be used instead. - Deprecated
craft\services\Composer.CraftCms\Cms\Support\Composershould be used instead. - Deprecated
craft\enums\Color.CraftCms\Cms\Support\Enums\Colorshould be used instead. - Deprecated
craft\enums\AttributeStatus.CraftCms\Cms\Element\Enums\AttributeStatusshould be used instead. - Deprecated
craft\enums\CmsEdition.CraftCms\Cms\Editionshould be used instead. - Deprecated
craft\enums\ElementIndexViewMode.CraftCms\Cms\Element\Enums\ElementIndexViewModeshould be used instead. - Deprecated
craft\enums\LicenseKeyStatus.CraftCms\Cms\Support\Enums\LicenseKeyStatusshould be used instead. - Deprecated
craft\enums\MenuItemType.CraftCms\Cms\Element\Enums\MenuItemTypeshould be used instead. - Deprecated
craft\enums\PropagationMethod.CraftCms\Cms\Element\Enums\PropagationMethodshould be used instead. - Deprecated
craft\enums\TimePeriod.CraftCms\Cms\Support\Enums\TimePeriodshould be used instead. - Deprecated
craft\services\Gc.CraftCms\Cms\GarbageCollection\GarbageCollectionshould be used instead. - Deprecated
craft\services\Api.CraftCms\Cms\Support\Apishould be used instead. - Deprecated
craft\helpers\Api.CraftCms\Cms\Support\Apishould be used instead. - Deprecated
craft\nameparsing\CustomLanguage.CraftCms\Cms\Shared\Nameparser\CustomLanguageshould be used instead. - Deprecated
craft\helpers\App. The following classes/methods should be used instead:-
General helpers
App:devMode()->app()->hasDebugModeEnabled()App:parseBooleanEnv()-->\CraftCms\Cms\Support\Env::parseBoolean()App:normalizeValue()-->\CraftCms\Cms\normalizeValue()App:maxPowerCaptain()-->\CraftCms\Cms\maxPowerCaptain()App:silence()-->\CraftCms\Cms\silence()App:backtrace()-->\CraftCms\Cms\backtraceAsString()-
Env
App:env()-->\CraftCms\Cms\Support\Env::get()App:parseEnv()-->\CraftCms\Cms\Support\Env::parse()-
PHP
App:phpVersion()-->\CraftCms\Cms\Support\PHP::version()App:extensionVersion()-->\CraftCms\Cms\Support\PHP::extensionVersion()App:phpConfigValueAsBool()-->\CraftCms\Cms\Support\PHP::configValueAsBool()App:phpConfigValueInBytes()-->\CraftCms\Cms\Support\PHP::configValueInBytes()App:phpSizeToBytes()-->\CraftCms\Cms\Support\PHP::sizeToBytes()App:phpConfigValueAsPaths()-->\CraftCms\Cms\Support\PHP::configValueAsPaths()App:normalizePhpPaths()-->\CraftCms\Cms\Support\PHP::normalizePaths()App:isPathAllowed()-->\CraftCms\Cms\Support\PHP::isPathAllowed()App:phpExecutable()-->\CraftCms\Cms\Support\PHP::executable()App:testIniSet()-->\CraftCms\Cms\Support\PHP::testIniSet()App:checkForValidIconv()-->\CraftCms\Cms\Support\PHP::checkForValidIconv()App:supportsIdn()-->\CraftCms\Cms\Support\PHP::supportsIdn()-
License
App:licenseKey()-->app(\CraftCms\Cms\License\License::class)->key()App:licensingIssues()-->app(\CraftCms\Cms\License\License::class)->issues()App:licenseShunCookieName()-->app(\CraftCms\Cms\License\License::class)->shunCookieName()App:licensingIssuesHash()-->app(\CraftCms\Cms\License\License::class)->issuesHash()
-
- Deprecated
Craft::createGuzzleClient().CraftCms\Cms\Support\Facades\Http::create()should be used instead. - Deprecated
craft\helpers\FileHelper.CraftCms\Cms\Support\Fileshould be used instead. - Deprecated
craft\helpers\UrlHelper.CraftCms\Cms\Support\URLshould be used instead.
Deprecator
- Added
CraftCms\Cms\Support\Facades\Deprecator. - Added
CraftCms\Cms\Deprecator\Commands\ClearDeprecations. - Removed
craft\console\controllers\ClearDeprecationsController.php. - Deprecated
craft\services\Deprecator.CraftCms\Cms\Deprecator\Deprecatorshould be used instead. - Deprecated
craft\models\DeprecationError.CraftCms\Cms\Deprecator\Models\DeprecationErrorshould be used instead. - Deprecated
craft\errors\DeprecationException.CraftCms\Cms\Deprecator\Exceptions\DeprecationExceptionshould be used instead.
Console commands
- Added
php craft twig:cache- Precompile Twig views - Added
php craft twig:clear- Clear precompiled Twig views craft\console\controllers\EnvControllerhas been removed in favor of the classes below:CraftCms\Cms\Console\Commands\Env\EnvRemoveCommand=>php craft env:removeCraftCms\Cms\Console\Commands\Env\EnvSetCommand=>php craft env:setCraftCms\Cms\Console\Commands\Env\EnvShowCommand=>php craft env:show
craft\console\controllers\IndexAssetsControllerhas been removed in favor of the classes below:CraftCms\Cms\Asset\Commands\CleanupAssetIndexesCommand=>php craft index-assets:cleanupCraftCms\Cms\Asset\Commands\IndexAllAssetsCommand=>php craft index-assets:allCraftCms\Cms\Asset\Commands\IndexOneAssetCommand=>php craft index-assets:one
craft\console\controllers\BaseSystemStatusController,craft\console\controllers\OnController, andcraft\console\controllers\OffControllerhave been removed in favor of the classes below:CraftCms\Cms\Console\Commands\System\OnCommand=>php craft onCraftCms\Cms\Console\Commands\System\OffCommand=>php craft off
craft\console\controllers\ElementsControllerhas been removed in favor of the classes below:CraftCms\Cms\Element\Commands\DeleteCommand=>php craft elements:deleteCraftCms\Cms\Element\Commands\DeleteAllOfTypeCommand=>php craft elements:delete-all-of-typeCraftCms\Cms\Element\Commands\RestoreCommand=>php craft elements:restore
craft\console\controllers\UpdateStatusesControllerhas been removed in favor of the class below:CraftCms\Cms\Entry\Commands\UpdateStatusesCommand=>php craft update-statuses
craft\console\controllers\utils\FixElementUidsControllerhas been removed in favor of the class below:CraftCms\Cms\Console\Commands\Utils\FixElementUidsCommand=>php craft utils:fix-element-uids
craft\console\controllers\utils\FixFieldLayoutUidsControllerhas been removed in favor of the class below:CraftCms\Cms\Console\Commands\Utils\FixFieldLayoutUidsCommand=>php craft utils:fix-field-layout-uids
craft\console\controllers\utils\PruneOrphanedEntriesControllerhas been removed in favor of the class below:CraftCms\Cms\Console\Commands\Utils\PruneOrphanedEntriesCommand=>php craft utils:prune-orphaned-entries
craft\console\controllers\utils\PruneProvisionalDraftsControllerhas been removed in favor of the class below:CraftCms\Cms\Console\Commands\Utils\PruneProvisionalDraftsCommand=>php craft utils:prune-provisional-drafts
craft\console\controllers\utils\PruneRevisionsControllerhas been removed in favor of the class below:CraftCms\Cms\Console\Commands\Utils\PruneRevisionsCommand=>php craft utils:prune-revisions
craft\console\controllers\utils\RepairController::actionProjectConfig()has been removed in favor of the class below:CraftCms\Cms\ProjectConfig\Commands\RepairCommand=>php craft project-config:repair
Mutex
Craft's Mutex classes have been deprecated. Laravel's atomic locking should be used instead.
- Deprecated
craft\mutex\Mutex - Deprecated
craft\mutex\MutexTrait - Deprecated
Craft::$app->getMutex()
Components
- Deprecated
craft\base\ComponentInterface.CraftCms\Cms\Component\Contracts\ComponentInterfaceshould be used instead. - Deprecated
craft\base\ConfigurableComponentInterface.CraftCms\Cms\Component\Contracts\ConfigurableComponentInterfaceshould be used instead. - Deprecated
craft\base\SavableComponentInterface.CraftCms\Cms\Component\Contracts\SavableComponentInterfaceshould be used instead.
Dashboard & Widgets
Controllers
- Removed
craft\controllers\DashboardController. The following controllers now implement this functionality:CraftCms\Cms\Http\Controllers\Dashboard\DashboardControllerCraftCms\Cms\Http\Controllers\Dashboard\WidgetsControllerCraftCms\Cms\Http\Controllers\Dashboard\Widgets\CraftSupportControllerCraftCms\Cms\Http\Controllers\Dashboard\Widgets\FeedController
Deprecations
- Deprecated
Craft::$app->getDashboard().app(\CraftCms\Cms\Dashboard\Dashboard::class)should be used instead. - Deprecated
craft\services\Dashboard.CraftCms\Cms\Dashboard\Dashboardshould be used instead. - Deprecated
craft\base\Widget.CraftCms\Cms\Dashboard\Widgets\Widgetshould be used instead. - Deprecated
craft\base\WidgetInterface.CraftCms\Cms\Dashboard\Contracts\WidgetInterfaceshould be used instead. - Deprecated
craft\base\WidgetTrait. - Deprecated
craft\widgets\CraftSupport.CraftCms\Cms\Dashboard\Widgets\CraftSupportshould be used instead. - Deprecated
craft\widgets\Feed.CraftCms\Cms\Dashboard\Widgets\Feedshould be used instead. - Deprecated
craft\widgets\MissingWidget.CraftCms\Cms\Dashboard\Widgets\MissingWidgetshould be used instead. - Deprecated
craft\widgets\MyDrafts.CraftCms\Cms\Dashboard\Widgets\MyDraftsshould be used instead. - Deprecated
craft\widgets\NewUsers.CraftCms\Cms\Dashboard\Widgets\NewUsersshould be used instead. - Deprecated
craft\widgets\QuickPost.CraftCms\Cms\Dashboard\Widgets\QuickPostshould be used instead. - Deprecated
craft\widgets\RecentEntries.CraftCms\Cms\Dashboard\Widgets\RecentEntriesshould be used instead. - Deprecated
craft\widgets\Updates.CraftCms\Cms\Dashboard\Widgets\Updatesshould be used instead. - Deprecated
craft\records\Widget.CraftCms\Cms\Dashboard\Models\Widgetshould be used instead.
Events
- Deprecated
craft\services\Dashboard::EVENT_REGISTER_WIDGET_TYPES.CraftCms\Cms\Dashboard\Events\WidgetTypesResolvingshould be used instead. - Deprecated
craft\events\WidgetEventin favor of the following new events:craft\services\Dashboard::EVENT_BEFORE_SAVE_WIDGET=>CraftCms\Cms\Dashboard\Events\WidgetSavingcraft\services\Dashboard::EVENT_AFTER_SAVE_WIDGET=>CraftCms\Cms\Dashboard\Events\WidgetSavedcraft\services\Dashboard::EVENT_BEFORE_DELETE_WIDGET=>CraftCms\Cms\Dashboard\Events\WidgetDeletingcraft\services\Dashboard::EVENT_AFTER_DELETE_WIDGET=>CraftCms\Cms\Dashboard\Events\WidgetDeleted
Address
- Added
CraftCms\Cms\Support\Facades\Addresses.
Assets
- Added
CraftCms\Cms\Asset\AssetsHelper. - Added
CraftCms\Cms\Support\Facades\Assets. - Added
CraftCms\Cms\Support\Facades\AssetIndexerfacade. - Added
CraftCms\Cms\Support\Facades\Folders. - Deprecated
craft\helpers\Assets.CraftCms\Cms\Asset\AssetsHelpershould be used instead. - Deprecated
craft\services\Assets.CraftCms\Cms\Asset\AssetsandCraftCms\Cms\Asset\Foldersshould be used instead. - Deprecated
\craft\records\Asset.\CraftCms\Cms\Asset\Models\Assetshould be used instead. - Deprecated
\craft\records\AssetIndexData.\CraftCms\Cms\Asset\Models\AssetIndexDatashould be used instead. - Deprecated
\craft\records\AssetIndexingSession.\CraftCms\Cms\Asset\Models\AssetIndexingSessionshould be used instead. - Deprecated
\craft\records\Volume.\CraftCms\Cms\Asset\Models\Volumeshould be used instead. - Deprecated
\craft\records\VolumeFolder.\CraftCms\Cms\Asset\Models\VolumeFoldershould be used instead. - Deprecated
\craft\controllers\AssetIndexesController.\CraftCms\Cms\Http\Controllers\Utilities\AssetIndexesControllershould be used instead. - Deprecated
craft\services\AssetIndexer.CraftCms\Cms\Asset\AssetIndexershould be used instead. - Deprecated
craft\models\AssetIndexData.CraftCms\Cms\Asset\Data\AssetIndexEntryshould be used instead. - Deprecated
craft\models\AssetIndexingSession.CraftCms\Cms\Asset\Data\IndexingSessionshould be used instead. - Deprecated
craft\errors\AssetException.CraftCms\Cms\Asset\Exceptions\AssetExceptionshould be used instead. - Deprecated
craft\errors\AssetDisallowedExtensionException.CraftCms\Cms\Asset\Exceptions\AssetDisallowedExtensionExceptionshould be used instead. - Deprecated
craft\errors\AssetNotIndexableException.CraftCms\Cms\Asset\Exceptions\AssetNotIndexableExceptionshould be used instead. - Deprecated
craft\errors\FileException.CraftCms\Cms\Asset\Exceptions\FileExceptionshould be used instead. - Deprecated
craft\errors\ImageException.CraftCms\Cms\Asset\Exceptions\ImageExceptionshould be used instead. - Deprecated
craft\errors\ImageTransformException.CraftCms\Cms\Asset\Exceptions\ImageTransformExceptionshould be used instead. - Deprecated
craft\errors\MissingAssetException.CraftCms\Cms\Asset\Exceptions\MissingAssetExceptionshould be used instead. - Deprecated
craft\errors\MissingVolumeFolderException.CraftCms\Cms\Asset\Exceptions\MissingVolumeFolderExceptionshould be used instead. - Deprecated
craft\errors\VolumeException.CraftCms\Cms\Asset\Exceptions\VolumeExceptionshould be used instead.
Events
- Added
CraftCms\Cms\Asset\Events\AssetFileKindsResolving. - Added
CraftCms\Cms\Asset\Events\SetAssetFilename. - Deprecated
craft\events\SetAssetFilenameEvent.CraftCms\Cms\Asset\Events\SetAssetFilenameshould be used instead. - Deprecated
craft\events\RegisterAssetFileKindsEvent.CraftCms\Cms\Asset\Events\AssetFileKindsResolvingshould be used instead. - Deprecated
craft\events\ReplaceAssetEventin favor of the following new events:craft\services\Assets::EVENT_BEFORE_REPLACE_ASSET=>CraftCms\Cms\Asset\Events\AssetReplacingcraft\services\Assets::EVENT_AFTER_REPLACE_ASSET=>CraftCms\Cms\Asset\Events\AssetReplaced
- Deprecated
craft\events\DefineAssetThumbUrlEvent.CraftCms\Cms\Asset\Events\ThumbUrlResolvingshould be used instead. - Deprecated
craft\events\AssetPreviewEvent.CraftCms\Cms\Asset\Events\PreviewHandlerResolvingshould be used instead.
Auth
- Refactored the authentication system to use Laravel's authentication system.
- Added
CraftCms\Cms\Auth\Events\SettingPassword. - Added
CraftCms\Cms\User\Notifications\ResetPasswordNotification. - Deprecated
craft\services\Auth.CraftCms\Cms\Auth\Authshould be used instead. - Deprecated
craft\web\User.auth('craft')->user()orCraftCms\Cms\User\Elements\Usermethods should be used instead. - Deprecated
craft\events\AuthenticateUserEvent.CraftCms\Cms\Auth\Events\UserAuthenticatingshould be used instead. - Deprecated
\craft\records\Authenticator.\CraftCms\Cms\Auth\Models\Authenticatorshould be used instead. - Deprecated
\craft\records\RecoveryCodes.\CraftCms\Cms\Auth\Models\RecoveryCodesshould be used instead. - Deprecated
\craft\records\SsoIdentity.\CraftCms\Cms\Auth\Models\SsoIdentityshould be used instead. - Deprecated
\craft\records\WebAuthn.\CraftCms\Cms\Auth\Models\WebAuthnshould be used instead. - Deprecated
craft\behaviors\SessionBehavior::authorize.CraftCms\Cms\Auth\SessionAuth::authorizeshould be used instead. - Deprecated
craft\behaviors\SessionBehavior::deauthorize.CraftCms\Cms\Auth\SessionAuth::deauthorizeshould be used instead. - Deprecated
craft\behaviors\SessionBehavior::checkAuthorization.CraftCms\Cms\Auth\SessionAuth::checkAuthorizationshould be used instead. - Deprecated
craft\services\Users::isVerificationCodeValidForUser().Password::broker('craft')->tokenExists($user, $code)should be used instead. - Deprecated
GeneralConfig::elevatedSessionDuration(). Theauth.password_timeoutconfig value should be used instead. To disable password confirmation (elevated sessions), you now set this value to-1instead of0.- Elevated sessions now work through Laravel's password confirmation system.
- Removed
craft\controllers\AuthController. The following controllers now implement this functionality:CraftCms\Cms\Http\Controllers\Users\AuthMethodControllerCraftCms\Cms\Http\Controllers\Users\PasskeysControllerCraftCms\Cms\Http\Controllers\Users\RecoveryCodesController
- Removed
verificationCodeandverificationCodeIssuedDatecolumns on theuserstable in favor of thepassword_reset_tokenstable.
Authorization
Craft 6 now uses Laravel's authorization system for element authorization checks.
Added
- Added
CraftCms\Cms\Auth\Events\ElementAuthorizingevent for customizing element authorization. - Added
CraftCms\Cms\Element\Policies\ElementPolicybase policy for element authorization. - Added element-specific authorization policies:
CraftCms\Cms\Address\Policies\AddressPolicyCraftCms\Cms\Asset\Policies\AssetPolicyCraftCms\Cms\Entry\Policies\EntryPolicyCraftCms\Cms\User\Policies\UserPolicyCraftCms\Cms\Field\Policies\ContentBlockPolicy
Passkeys
- Added
CraftCms\Cms\Auth\Passkeys\Passkeys. - Deprecated
craft\services\Authpasskey methods. The following should be used instead:Auth::hasPasskeys()->app(Passkeys::class)->hasPasskeys()Auth::getPasskeys()->app(Passkeys::class)->getPasskeys()Auth::getPasskeyCreationOptions()->app(Passkeys::class)->getPasskeyCreationOptions()Auth::verifyPasskeyCreationResponse()->app(Passkeys::class)->verifyPasskeyCreationResponse()Auth::getPasskeyRequestOptions()->app(Passkeys::class)->getPasskeyRequestOptions()Auth::verifyPasskey()->app(Passkeys::class)->verifyPasskey()Auth::deletePasskey()->app(Passkeys::class)->deletePasskey()
- Deprecated
craft\auth\passkeys\CredentialRepository.CraftCms\Cms\Auth\Passkeys\CredentialRepositoryshould be used instead. - Deprecated
craft\auth\passkeys\WebauthnServer.CraftCms\Cms\Auth\Passkeys\WebauthnServershould be used instead.
Conditions
Added
- Added
CraftCms\Cms\Support\Facades\Conditions.
Controllers
- Removed
craft\controllers\ConditionsController.CraftCms\Cms\Http\Controllers\ConditionsControllershould be used instead.
Deprecations
Service
- Deprecated
craft\services\Conditions.CraftCms\Cms\Condition\Conditionsshould be used instead.
Base Conditions
- Deprecated
craft\base\conditions\ConditionInterface.CraftCms\Cms\Condition\Contracts\ConditionInterfaceshould be used instead. - Deprecated
craft\base\conditions\ConditionRuleInterface.CraftCms\Cms\Condition\Contracts\ConditionRuleInterfaceshould be used instead. - Deprecated
craft\base\conditions\BaseCondition.CraftCms\Cms\Condition\BaseConditionshould be used instead. - Deprecated
craft\base\conditions\BaseConditionRule.CraftCms\Cms\Condition\BaseConditionRuleshould be used instead. - Deprecated
craft\base\conditions\BaseTextConditionRule.CraftCms\Cms\Condition\BaseTextConditionRuleshould be used instead. - Deprecated
craft\base\conditions\BaseNumberConditionRule.CraftCms\Cms\Condition\BaseNumberConditionRuleshould be used instead. - Deprecated
craft\base\conditions\BaseSelectConditionRule.CraftCms\Cms\Condition\BaseSelectConditionRuleshould be used instead. - Deprecated
craft\base\conditions\BaseMultiSelectConditionRule.CraftCms\Cms\Condition\BaseMultiSelectConditionRuleshould be used instead. - Deprecated
craft\base\conditions\BaseLightswitchConditionRule.CraftCms\Cms\Condition\BaseLightswitchConditionRuleshould be used instead. - Deprecated
craft\base\conditions\BaseDateRangeConditionRule.CraftCms\Cms\Condition\BaseDateRangeConditionRuleshould be used instead. - Deprecated
craft\base\conditions\BaseElementSelectConditionRule.CraftCms\Cms\Condition\BaseElementSelectConditionRuleshould be used instead.
Elements
- Deprecated
craft\elements\conditions\ElementCondition.CraftCms\Cms\Element\Conditions\ElementConditionshould be used instead. - Deprecated
craft\elements\conditions\ElementConditionInterface.CraftCms\Cms\Element\Conditions\Contracts\ElementConditionInterfaceshould be used instead. - Deprecated
craft\elements\conditions\ElementConditionRuleInterface.CraftCms\Cms\Element\Conditions\Contracts\ElementConditionRuleInterfaceshould be used instead. - Deprecated
craft\elements\conditions\HintableConditionRuleTrait.CraftCms\Cms\Element\Conditions\HintableConditionRuleTraitshould be used instead. - Deprecated
craft\elements\conditions\TitleConditionRule.CraftCms\Cms\Element\Conditions\TitleConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\SlugConditionRule.CraftCms\Cms\Element\Conditions\SlugConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\UriConditionRule.CraftCms\Cms\Element\Conditions\UriConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\IdConditionRule.CraftCms\Cms\Element\Conditions\IdConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\StatusConditionRule.CraftCms\Cms\Element\Conditions\StatusConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\HasUrlConditionRule.CraftCms\Cms\Element\Conditions\HasUrlConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\HasDescendantsRule.CraftCms\Cms\Element\Conditions\HasDescendantsRuleshould be used instead. - Deprecated
craft\elements\conditions\LevelConditionRule.CraftCms\Cms\Element\Conditions\LevelConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\DateCreatedConditionRule.CraftCms\Cms\Element\Conditions\DateCreatedConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\DateUpdatedConditionRule.CraftCms\Cms\Element\Conditions\DateUpdatedConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\SiteConditionRule.CraftCms\Cms\Element\Conditions\SiteConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\SiteGroupConditionRule.CraftCms\Cms\Element\Conditions\SiteGroupConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\LanguageConditionRule.CraftCms\Cms\Element\Conditions\LanguageConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\RelatedToConditionRule.CraftCms\Cms\Element\Conditions\RelatedToConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\NotRelatedToConditionRule.CraftCms\Cms\Element\Conditions\NotRelatedToConditionRuleshould be used instead.
Entries
- Deprecated
craft\elements\conditions\entries\EntryCondition.CraftCms\Cms\Entry\Conditions\EntryConditionshould be used instead. - Deprecated
craft\elements\conditions\entries\PostDateConditionRule.CraftCms\Cms\Entry\Conditions\PostDateConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\entries\ExpiryDateConditionRule.CraftCms\Cms\Entry\Conditions\ExpiryDateConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\entries\SectionConditionRule.CraftCms\Cms\Entry\Conditions\SectionConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\entries\TypeConditionRule.CraftCms\Cms\Entry\Conditions\TypeConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\entries\AuthorConditionRule.CraftCms\Cms\Entry\Conditions\AuthorConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\entries\AuthorGroupConditionRule.CraftCms\Cms\Entry\Conditions\AuthorGroupConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\entries\ViewableConditionRule.CraftCms\Cms\Entry\Conditions\ViewableConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\entries\SavableConditionRule.CraftCms\Cms\Entry\Conditions\SavableConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\entries\FieldConditionRule.CraftCms\Cms\Entry\Conditions\FieldConditionRuleshould be used instead.
Users
- Deprecated
craft\elements\conditions\users\UserCondition.CraftCms\Cms\User\Conditions\UserConditionshould be used instead. - Deprecated
craft\elements\conditions\users\UsernameConditionRule.CraftCms\Cms\User\Conditions\UsernameConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\users\EmailConditionRule.CraftCms\Cms\User\Conditions\EmailConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\users\FirstNameConditionRule.CraftCms\Cms\User\Conditions\FirstNameConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\users\LastNameConditionRule.CraftCms\Cms\User\Conditions\LastNameConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\users\GroupConditionRule.CraftCms\Cms\User\Conditions\GroupConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\users\AdminConditionRule.CraftCms\Cms\User\Conditions\AdminConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\users\CredentialedConditionRule.CraftCms\Cms\User\Conditions\CredentialedConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\users\LastLoginDateConditionRule.CraftCms\Cms\User\Conditions\LastLoginDateConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\users\AffiliatedSiteConditionRule.CraftCms\Cms\User\Conditions\AffiliatedSiteConditionRuleshould be used instead.
Assets
- Deprecated
craft\elements\conditions\assets\AssetCondition.CraftCms\Cms\Asset\Conditions\AssetConditionshould be used instead. - Deprecated
craft\elements\conditions\assets\VolumeConditionRule.CraftCms\Cms\Asset\Conditions\VolumeConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\assets\FilenameConditionRule.CraftCms\Cms\Asset\Conditions\FilenameConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\assets\FileTypeConditionRule.CraftCms\Cms\Asset\Conditions\FileTypeConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\assets\FileSizeConditionRule.CraftCms\Cms\Asset\Conditions\FileSizeConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\assets\HeightConditionRule.CraftCms\Cms\Asset\Conditions\HeightConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\assets\WidthConditionRule.CraftCms\Cms\Asset\Conditions\WidthConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\assets\DateModifiedConditionRule.CraftCms\Cms\Asset\Conditions\DateModifiedConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\assets\HasAltConditionRule.CraftCms\Cms\Asset\Conditions\HasAltConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\assets\UploaderConditionRule.CraftCms\Cms\Asset\Conditions\UploaderConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\assets\SavableConditionRule.CraftCms\Cms\Asset\Conditions\SavableConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\assets\ViewableConditionRule.CraftCms\Cms\Asset\Conditions\ViewableConditionRuleshould be used instead.
Addresses
- Deprecated
craft\elements\conditions\addresses\AddressCondition.CraftCms\Cms\Address\Conditions\AddressConditionshould be used instead. - Deprecated
craft\elements\conditions\addresses\FullNameConditionRule.CraftCms\Cms\Address\Conditions\FullNameConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\OrganizationConditionRule.CraftCms\Cms\Address\Conditions\OrganizationConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\OrganizationTaxIdConditionRule.CraftCms\Cms\Address\Conditions\OrganizationTaxIdConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\LocalityConditionRule.CraftCms\Cms\Address\Conditions\LocalityConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\DependentLocalityConditionRule.CraftCms\Cms\Address\Conditions\DependentLocalityConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\PostalCodeConditionRule.CraftCms\Cms\Address\Conditions\PostalCodeConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\SortingCodeConditionRule.CraftCms\Cms\Address\Conditions\SortingCodeConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\CountryConditionRule.CraftCms\Cms\Address\Conditions\CountryConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\AdministrativeAreaConditionRule.CraftCms\Cms\Address\Conditions\AdministrativeAreaConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\AddressLine1ConditionRule.CraftCms\Cms\Address\Conditions\AddressLine1ConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\AddressLine2ConditionRule.CraftCms\Cms\Address\Conditions\AddressLine2ConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\AddressLine3ConditionRule.CraftCms\Cms\Address\Conditions\AddressLine3ConditionRuleshould be used instead. - Deprecated
craft\elements\conditions\addresses\FieldConditionRule.CraftCms\Cms\Address\Conditions\FieldConditionRuleshould be used instead.
Fields
- Deprecated
craft\fields\conditions\FieldConditionRuleInterface.CraftCms\Cms\Field\Conditions\Contracts\FieldConditionRuleInterfaceshould be used instead. - Deprecated
craft\fields\conditions\FieldConditionRuleTrait.CraftCms\Cms\Field\Conditions\FieldConditionRuleTraitshould be used instead. - Deprecated
craft\fields\conditions\GeneratedFieldConditionRule.CraftCms\Cms\Field\Conditions\GeneratedFieldConditionRuleshould be used instead. - Deprecated
craft\fields\conditions\TextFieldConditionRule.CraftCms\Cms\Field\Conditions\TextFieldConditionRuleshould be used instead. - Deprecated
craft\fields\conditions\NumberFieldConditionRule.CraftCms\Cms\Field\Conditions\NumberFieldConditionRuleshould be used instead. - Deprecated
craft\fields\conditions\MoneyFieldConditionRule.CraftCms\Cms\Field\Conditions\MoneyFieldConditionRuleshould be used instead. - Deprecated
craft\fields\conditions\OptionsFieldConditionRule.CraftCms\Cms\Field\Conditions\OptionsFieldConditionRuleshould be used instead. - Deprecated
craft\fields\conditions\RelationalFieldConditionRule.CraftCms\Cms\Field\Conditions\RelationalFieldConditionRuleshould be used instead. - Deprecated
craft\fields\conditions\LightswitchFieldConditionRule.CraftCms\Cms\Field\Conditions\LightswitchFieldConditionRuleshould be used instead. - Deprecated
craft\fields\conditions\EmptyFieldConditionRule.CraftCms\Cms\Field\Conditions\EmptyFieldConditionRuleshould be used instead. - Deprecated
craft\fields\conditions\DateFieldConditionRule.CraftCms\Cms\Field\Conditions\DateFieldConditionRuleshould be used instead. - Deprecated
craft\fields\conditions\CountryFieldConditionRule.CraftCms\Cms\Field\Conditions\CountryFieldConditionRuleshould be used instead. - Deprecated
craft\fields\conditions\LinkFieldConditionRule.CraftCms\Cms\Field\Conditions\LinkFieldConditionRuleshould be used instead.
Events
- Deprecated
craft\events\RegisterConditionRulesEvent.CraftCms\Cms\Condition\Events\ConditionRulesResolvingshould be used instead.
Drafts
- Deprecated
craft\services\Drafts.CraftCms\Cms\Element\Draftsshould be used instead. - Deprecated
craft\events\DraftEvent. One of the events extendingCraftCms\Cms\Element\Events\DraftEventshould be used instead. - Deprecated
craft\behaviors\DraftBehavior.CraftCms\Cms\Element\Concerns\Draftableshould be used instead.
Elements
- Added
CraftCms\Cms\Element\ElementCachesandCraftCms\Cms\Support\Facades\ElementCaches.- Deprecated
craft\services\Elements::getIsCollectingCacheInfo().CraftCms\Cms\Element\ElementCaches::isCollectingCacheInfo()should be used instead. - Deprecated
craft\services\Elements::startCollectingCacheInfo().CraftCms\Cms\Element\ElementCaches::startCollectingCacheInfo()should be used instead. - Deprecated
craft\services\Elements::collectCacheTags().CraftCms\Cms\Element\ElementCaches::collectCacheTags()should be used instead. - Deprecated
craft\services\Elements::setCacheExpiryDate().CraftCms\Cms\Element\ElementCaches::setCacheExpiryDate()should be used instead. - Deprecated
craft\services\Elements::collectCacheInfoForElement().CraftCms\Cms\Element\ElementCaches::collectCacheInfoForElement()should be used instead. - Deprecated
craft\services\Elements::stopCollectingCacheInfo().CraftCms\Cms\Element\ElementCaches::stopCollectingCacheInfo()should be used instead. - Deprecated
craft\services\Elements::invalidateAllCaches().CraftCms\Cms\Element\ElementCaches::invalidateAll()should be used instead. - Deprecated
craft\services\Elements::invalidateCachesForElementType().CraftCms\Cms\Element\ElementCaches::invalidateForElementType()should be used instead. - Deprecated
craft\services\Elements::invalidateCachesForElement().CraftCms\Cms\Element\ElementCaches::invalidateForElement()should be used instead.
- Deprecated
- Added
CraftCms\Cms\Element\BulkOp\BulkOps,CraftCms\Cms\Element\BulkOp\BulkOpDeferrals, andCraftCms\Cms\Support\Facades\BulkOps.- Deprecated
craft\services\Elements::getBulkOpKeys().CraftCms\Cms\Element\BulkOp\BulkOps::activeKeys()should be used instead. - Deprecated
craft\services\Elements::beginBulkOp().CraftCms\Cms\Element\BulkOp\BulkOps::start()should be used instead. - Deprecated
craft\services\Elements::resumeBulkOp().CraftCms\Cms\Element\BulkOp\BulkOps::resume()should be used instead. - Deprecated
craft\services\Elements::endBulkOp().CraftCms\Cms\Element\BulkOp\BulkOps::end()should be used instead. - Deprecated
craft\services\Elements::trackElementInBulkOps().CraftCms\Cms\Element\BulkOp\BulkOps::trackElement()should be used instead. - Deprecated
craft\services\Elements::ensureBulkOp().CraftCms\Cms\Element\BulkOp\BulkOps::ensure()should be used instead. - Deprecated
craft\events\BulkOpEvent::defer().CraftCms\Cms\Element\BulkOp\BulkOps::defer()should be used instead.
- Deprecated
- Added
CraftCms\Cms\Element\ElementActivity,CraftCms\Cms\Element\Data\ElementActivity,CraftCms\Cms\Element\Enums\ElementActivityType, andCraftCms\Cms\Support\Facades\ElementActivity.- Deprecated
craft\services\Elements::getRecentActivity().CraftCms\Cms\Element\ElementActivity::getRecentActivity()should be used instead. - Deprecated
craft\services\Elements::trackActivity().CraftCms\Cms\Element\ElementActivity::trackActivity()should be used instead.
- Deprecated
- Added
CraftCms\Cms\Element\Actions\ElementAction,CraftCms\Cms\Element\ElementActions,CraftCms\Cms\Element\Contracts\DeleteActionInterface,CraftCms\Cms\Element\Contracts\ElementActionInterface,CraftCms\Cms\Element\Events\ElementActionPerformed,CraftCms\Cms\Element\Events\ElementActionPerforming,CraftCms\Cms\Http\Controllers\Elements\PerformElementActionController, andCraftCms\Cms\Support\Facades\ElementActions. - Added Laravel-native element action classes under
CraftCms\Cms\Element\Actions,CraftCms\Cms\Asset\Actions,CraftCms\Cms\Entry\Actions, andCraftCms\Cms\User\Actions. - Added
CraftCms\Cms\Element\ElementExporters,CraftCms\Cms\Element\Contracts\ElementExporterInterface,CraftCms\Cms\Element\Exporters\ElementExporter,CraftCms\Cms\Http\Controllers\Elements\ElementIndex\ExportElementIndexController, andCraftCms\Cms\Support\Facades\ElementExporters. - Added Laravel-native element exporter classes under
CraftCms\Cms\Element\Exporters. - Deprecated
craft\errors\InvalidTypeException.CraftCms\Cms\Element\Exceptions\InvalidTypeExceptionshould be used instead. - Deprecated
craft\errors\UnsupportedSiteException.CraftCms\Cms\Element\Exceptions\UnsupportedSiteExceptionshould be used instead. - Deprecated
craft\base\ElementAction,craft\base\ElementActionInterface,craft\elements\actions\DeleteActionInterface, and the legacycraft\elements\actions\*classes. The correspondingCraftCms\Cms\Element\Actions\*,CraftCms\Cms\Asset\Actions\*,CraftCms\Cms\Entry\Actions\*, andCraftCms\Cms\User\Actions\*classes should be used instead. - Deprecated
craft\base\ElementExporter,craft\base\ElementExporterInterface, and the legacycraft\elements\exporters\*classes. The correspondingCraftCms\Cms\Element\Exporters\*classes should be used instead.
Validation
Craft 6 introduces a new validation system that uses Laravel's Validator instead of Yii2's model validation.
Added
- Added
CraftCms\Cms\Validation\Contracts\Validatableinterface for classes that support Laravel-style validation. - Added
CraftCms\Cms\Validation\Contracts\ValidatableWithRulesetinterface for classes that use aRulesetclass to define validation rules. - Added
CraftCms\Cms\Validation\Rulesetabstract class for defining validation rules, messages, and preparation logic. - Added
CraftCms\Cms\Validation\Attributes\RulesetPHP attribute for specifying a component's ruleset class. - Added
CraftCms\Cms\Validation\Concerns\Validatestrait for simple validation support. - Added
CraftCms\Cms\Validation\Concerns\ValidatesWithRulesettrait for ruleset-based validation. - Added
CraftCms\Cms\Validation\Concerns\HasScenariostrait for scenario-based validation filtering. - Added
CraftCms\Cms\Validation\Concerns\InteractsWithValidatortrait providing common validator interactions. - Added
CraftCms\Cms\Element\Validation\ElementRulesabstract class for defining element-specific validation rules. - Added
CraftCms\Cms\Element\Validation\Events\ValidationRulesResolvingevent for plugins to modify element validation rules. - Added
CraftCms\Cms\Element\Validation\Rules\ElementUriRulefor validating element URIs. - Added element-specific ruleset classes:
CraftCms\Cms\Address\Validation\AddressRulesCraftCms\Cms\Asset\Validation\AssetRulesCraftCms\Cms\Entry\Validation\EntryRulesCraftCms\Cms\User\Validation\UserRulesCraftCms\Cms\Field\Elements\ContentBlockRules
- Added
CraftCms\Cms\Asset\Validation\Rules\AssetLocationRulefor validating asset locations. - Added
CraftCms\Cms\User\Validation\Rules\UserPasswordRulefor validating user passwords. - Added
CraftCms\Cms\User\Validation\Rules\UsernameRulefor validating usernames. - Added
CraftCms\Cms\Validation\Rules\UniqueCaseInsensitiveRulefor case-insensitive unique validation. - Added
CraftCms\Cms\Validation\Rules\DisallowMb4for disallowing 4-byte UTF-8 characters. - Added
CraftCms\Cms\Validation\Rules\MoneyRulefor validating money values.
Changed
FieldInterface::getElementValidationRules()has been replaced byFieldInterface::getElementRules()which returns rules in Laravel's validation format.- Added
FieldInterface::prepareForElementValidation()for preparing field values before validation. - Validation rules are now defined as Laravel-style arrays (e.g.,
['required', 'string', 'max:255']).
Deprecations
- Deprecated
craft\base\Model::hasErrors(). Use->errors()->has($attribute)or->errors()->isNotEmpty()instead. - Deprecated
craft\base\Model::getErrors(). Use->errors()->get($attribute)or->errors()->getMessages()instead. - Deprecated
craft\base\Model::addErrors(). Use->errors()->add($attribute, $message)instead. - Deprecated
craft\base\Model::clearErrors(). Use->errors()->forget()instead. - Deprecated
CraftCms\Cms\Component\Concerns\ValidatableComponent. UseCraftCms\Cms\Validation\Concerns\Validatesinstead. - Deprecated
CraftCms\Cms\Component\Contracts\ValidatableComponentInterface. UseCraftCms\Cms\Validation\Contracts\Validatableinstead. - Deprecated
\craft\records\ContentBlock.\CraftCms\Cms\Element\Models\ContentBlockshould be used instead. - Deprecated
\craft\records\Draft.\CraftCms\Cms\Element\Models\Draftshould be used instead. - Deprecated
\craft\records\Element.\CraftCms\Cms\Element\Models\Elementshould be used instead. - Deprecated
\craft\records\Element_SiteSettings.\CraftCms\Cms\Element\Models\ElementSiteSettingsshould be used instead. - Deprecated
\craft\records\Revision.\CraftCms\Cms\Element\Models\Revisionshould be used instead.
ElementSources
- Deprecated
craft\services\ElementSources.CraftCms\Cms\Element\ElementSourcesshould be used instead. - Deprecated
craft\events\DefineSourceSortOptionsEvent.CraftCms\Cms\Element\Events\ElementSourceSortOptionsResolvingshould be used instead. - Deprecated
craft\events\DefineSourceTableAttributesEvent.CraftCms\Cms\Element\Events\ElementSourceTableAttributesResolvingshould be used instead.
Element Queries
- Deprecated
craft\elements\db\ElementRelationParamParser.CraftCms\Cms\Database\ElementRelationParamFiltershould be used instead. - Deprecated
craft\elements\db\NestedElementQueryInterface.CraftCms\Cms\Element\Queries\Contracts\NestedElementQueryInterfaceshould be used instead. - Deprecated
craft\elements\db\NestedElementQueryTrait.CraftCms\Cms\Element\Queries\Concerns\QueriesNestedElementsshould be used instead. - Deprecated
craft\elements\db\OrderByPlaceholderExpression.CraftCms\Cms\Database\Expressions\OrderByPlaceholderExpressionshould be used instead. - Deprecated
\craft\elements\db\AddressQuery.\CraftCms\Cms\Element\Queries\AddressQueryshould be used instead. - Deprecated
\craft\elements\db\AssetQuery\CraftCms\Cms\Element\Queries\AssetQueryshould be used instead. - Deprecated
\craft\elements\db\ContentBlockQuery\CraftCms\Cms\Element\Queries\ContentBlockQueryshould be used instead. - Deprecated
\craft\elements\db\ElementQuery\CraftCms\Cms\Element\Queries\ElementQueryshould be used instead. - Deprecated
\craft\elements\db\ElementQueryInterface - Deprecated
\craft\elements\db\EntryQuery\CraftCms\Cms\Element\Queries\EntryQueryshould be used instead. - Deprecated
\craft\elements\db\UserQuery\CraftCms\Cms\Element\Queries\UserQueryshould be used instead.
Entries & Entry Types
- Updated entry type table pagination to return Laravel-style pagination metadata and use the configured
GeneralConfig::$pageTriggerquery parameter. - Deprecated
craft\services\Entries.CraftCms\Cms\Entry\EntriesandCraftCms\Cms\Entry\EntryTypesshould be used instead. - Deprecated
craft\models\EntryType.CraftCms\Cms\Entry\Data\EntryTypeshould be used instead. - Deprecated
craft\records\EntryType.CraftCms\Cms\Entry\Models\EntryTypeshould be used instead. - Deprecated
craft\records\Entry.CraftCms\Cms\Entry\Models\Entryshould be used instead. - Deprecated
craft\errors\EntryTypeNotFoundException.CraftCms\Cms\Entry\Exceptions\EntryTypeNotFoundExceptionshould be used instead. - Deprecated
craft\events\EntryTypeEvent. One of these should be used instead:craft\services\Entries::EVENT_BEFORE_DELETE_ENTRY_TYPE=>CraftCms\Cms\Section\Events\DeletingEntryTypecraft\services\Entries::EVENT_BEFORE_APPLY_ENTRY_TYPE_DELETE=>CraftCms\Cms\Entry\Events\ApplyingEntryTypeDeletecraft\services\Entries::EVENT_AFTER_DELETE_ENTRY_TYPE=>CraftCms\Cms\Entry\Events\EntryTypeDeletedcraft\services\Entries::EVENT_BEFORE_SAVE_ENTRY_TYPE=>CraftCms\Cms\Entry\Events\EntryTypeSavingcraft\services\Entries::EVENT_AFTER_SAVE_ENTRY_TYPE=>CraftCms\Cms\Entry\Events\EntryTypeSaved
- Removed
craft\controllers\EntriesController. The following controllers now implement this functionality:CraftCms\Cms\Http\Controllers\Entries\CreateEntryControllerCraftCms\Cms\Http\Controllers\Entries\EntriesIndexControllerCraftCms\Cms\Http\Controllers\Entries\MoveEntryToSectionControllerCraftCms\Cms\Http\Controllers\Entries\StoreEntryController
- Removed
craft\controllers\EntryTypesControllerin favor ofCraftCms\Cms\Http\Controllers\EntryTypesController - Removed
craft\console\controllers\EntryTypesControllerin favor of:CraftCms\Cms\Entry\Commands\MergeEntryTypesCommand
Component
- Added
CraftCms\Cms\Component\Componentbase class, replacing Yii2'sBaseObject/Componentwith config hydration, magic getters/setters, andArrayablesupport. - Added
CraftCms\Cms\Component\Exceptions\InvalidCallException, replacingyii\base\InvalidCallException. - Added
CraftCms\Cms\Component\Exceptions\UnknownPropertyException, replacingyii\base\UnknownPropertyException.
Field Layouts
Added
- Added
CraftCms\Cms\FieldLayout\FieldLayoutForm. - Added
CraftCms\Cms\FieldLayout\FieldLayoutFormTab. - Added
CraftCms\Cms\FieldLayout\FieldLayoutFormElement. - Added
CraftCms\Cms\FieldLayout\FieldLayoutServiceProvider. - Added
CraftCms\Cms\FieldLayout\Concerns\HasFieldLayouttrait.
Deprecations
- Deprecated
craft\models\FieldLayout.CraftCms\Cms\FieldLayout\FieldLayoutshould be used instead. - Deprecated
craft\models\FieldLayoutTab.CraftCms\Cms\FieldLayout\FieldLayoutTabshould be used instead. - Deprecated
craft\base\FieldLayoutComponent.CraftCms\Cms\FieldLayout\FieldLayoutComponentshould be used instead. - Deprecated
craft\base\FieldLayoutElement.CraftCms\Cms\FieldLayout\FieldLayoutElementshould be used instead. - Deprecated
craft\base\FieldLayoutProviderInterface.CraftCms\Cms\FieldLayout\Contracts\FieldLayoutProviderInterfaceshould be used instead. - Deprecated
craft\records\FieldLayout.CraftCms\Cms\FieldLayout\Models\FieldLayoutshould be used instead. - Deprecated
craft\fieldlayoutelements\BaseField.CraftCms\Cms\FieldLayout\LayoutElements\BaseFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\BaseNativeField.CraftCms\Cms\FieldLayout\LayoutElements\BaseNativeFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\BaseUiElement.CraftCms\Cms\FieldLayout\LayoutElements\BaseUiElementshould be used instead. - Deprecated
craft\fieldlayoutelements\CustomField.CraftCms\Cms\FieldLayout\LayoutElements\CustomFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\Heading.CraftCms\Cms\FieldLayout\LayoutElements\Headingshould be used instead. - Deprecated
craft\fieldlayoutelements\HorizontalRule.CraftCms\Cms\FieldLayout\LayoutElements\HorizontalRuleshould be used instead. - Deprecated
craft\fieldlayoutelements\Html.CraftCms\Cms\FieldLayout\LayoutElements\Htmlshould be used instead. - Deprecated
craft\fieldlayoutelements\LineBreak.CraftCms\Cms\FieldLayout\LayoutElements\LineBreakshould be used instead. - Deprecated
craft\fieldlayoutelements\Markdown.CraftCms\Cms\FieldLayout\LayoutElements\Markdownshould be used instead. - Deprecated
craft\fieldlayoutelements\Template.CraftCms\Cms\FieldLayout\LayoutElements\Templateshould be used instead. - Deprecated
craft\fieldlayoutelements\TextField.CraftCms\Cms\FieldLayout\LayoutElements\TextFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\TextareaField.CraftCms\Cms\FieldLayout\LayoutElements\TextareaFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\Tip.CraftCms\Cms\FieldLayout\LayoutElements\Tipshould be used instead. - Deprecated
craft\fieldlayoutelements\TitleField.CraftCms\Cms\FieldLayout\LayoutElements\TitleFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\FullNameField.CraftCms\Cms\FieldLayout\LayoutElements\FullNameFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\addresses\AddressField.CraftCms\Cms\FieldLayout\LayoutElements\addresses\AddressFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\addresses\CountryCodeField.CraftCms\Cms\FieldLayout\LayoutElements\addresses\CountryCodeFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\addresses\LabelField.CraftCms\Cms\FieldLayout\LayoutElements\addresses\LabelFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\addresses\LatLongField.CraftCms\Cms\FieldLayout\LayoutElements\addresses\LatLongFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\addresses\OrganizationField.CraftCms\Cms\FieldLayout\LayoutElements\addresses\OrganizationFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\addresses\OrganizationTaxIdField.CraftCms\Cms\FieldLayout\LayoutElements\addresses\OrganizationTaxIdFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\assets\AssetTitleField.CraftCms\Cms\FieldLayout\LayoutElements\assets\AssetTitleFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\assets\AltField.CraftCms\Cms\FieldLayout\LayoutElements\assets\AltFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\entries\EntryTitleField.CraftCms\Cms\FieldLayout\LayoutElements\Entries\EntryTitleFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\users\UsernameField.CraftCms\Cms\FieldLayout\LayoutElements\Users\UsernameFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\users\FullNameField.CraftCms\Cms\FieldLayout\LayoutElements\Users\FullNameFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\users\EmailField.CraftCms\Cms\FieldLayout\LayoutElements\Users\EmailFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\users\AffiliatedSiteField.CraftCms\Cms\FieldLayout\LayoutElements\Users\AffiliatedSiteFieldshould be used instead. - Deprecated
craft\fieldlayoutelements\users\PhotoField.CraftCms\Cms\FieldLayout\LayoutElements\Users\PhotoFieldshould be used instead. - Deprecated
craft\events\CreateFieldLayoutFormEvent.CraftCms\Cms\FieldLayout\Events\FieldLayoutFormCreatingshould be used instead. - Deprecated
craft\events\DefineFieldLayoutCustomFieldsEvent.CraftCms\Cms\FieldLayout\Events\FieldLayoutCustomFieldsResolvingshould be used instead. - Deprecated
craft\events\DefineFieldLayoutElementsEvent.CraftCms\Cms\FieldLayout\Events\FieldLayoutUIElementsResolvingshould be used instead. - Deprecated
craft\events\DefineFieldLayoutFieldsEvent.CraftCms\Cms\FieldLayout\Events\NativeFieldsResolvingshould be used instead. - Deprecated
craft\events\DefineShowFieldLayoutComponentInFormEvent.CraftCms\Cms\FieldLayout\Events\FieldLayoutComponentShowInFormResolvingshould be used instead. - Deprecated
craft\events\DefineFieldActionsEvent.CraftCms\Cms\FieldLayout\Events\FieldLayoutActionMenuItemsResolvingshould be used instead.
Fields
- Updated field index pagination to return Laravel-style pagination metadata and use the configured
GeneralConfig::$pageTriggerquery parameter. - Removed
craft\controllers\FieldsControllerin favor ofCraftCms\Cms\Http\Controllers\FieldsController. - Removed
craft\controllers\MatrixController.CraftCms\Cms\Http\Controllers\MatrixControllershould be used instead. - Removed
craft\controllers\RelationalFieldsController.CraftCms\Cms\Http\Controllers\RelationalFieldsControllershould be used instead. - Deprecated
craft\errors\InvalidFieldException.CraftCms\Cms\Field\Exceptions\InvalidFieldExceptionshould be used instead. - Deprecated
craft\fields\data\ColorData.CraftCms\Cms\Field\Data\ColorDatashould be used instead. - Deprecated
craft\fields\data\IconData.CraftCms\Cms\Field\Data\IconDatashould be used instead. - Deprecated
craft\fields\data\JsonData.CraftCms\Cms\Field\Data\JsonDatashould be used instead. - Deprecated
craft\fields\data\LinkData.CraftCms\Cms\Field\Data\LinkDatashould be used instead. - Deprecated
craft\fields\data\MultiOptionsFieldData.CraftCms\Cms\Field\Data\MultiOptionsFieldDatashould be used instead. - Deprecated
craft\fields\data\OptionData.CraftCms\Cms\Field\Data\OptionDatashould be used instead. - Deprecated
craft\fields\data\SingleOptionFieldData.CraftCms\Cms\Field\Data\SingleOptionFieldDatashould be used instead. - Deprecated
craft\fields\linktypes\Asset.CraftCms\Cms\Field\LinkTypes\Assetshould be used instead. - Deprecated
craft\fields\linktypes\BaseElementLinkType.CraftCms\Cms\Field\LinkTypes\BaseElementLinkTypeshould be used instead. - Deprecated
craft\fields\linktypes\BaseLinkType.CraftCms\Cms\Field\LinkTypes\BaseLinkTypeshould be used instead. - Deprecated
craft\fields\linktypes\BaseTextLinkType.CraftCms\Cms\Field\LinkTypes\BaseTextLinkTypeshould be used instead. - Deprecated
craft\fields\linktypes\Category.CraftCms\Cms\Field\LinkTypes\Categoryshould be used instead. - Deprecated
craft\fields\linktypes\Email.CraftCms\Cms\Field\LinkTypes\Emailshould be used instead. - Deprecated
craft\fields\linktypes\Entry.CraftCms\Cms\Field\LinkTypes\Entryshould be used instead. - Deprecated
craft\fields\linktypes\Phone.CraftCms\Cms\Field\LinkTypes\Phoneshould be used instead. - Deprecated
craft\fields\linktypes\Sms.CraftCms\Cms\Field\LinkTypes\Smsshould be used instead. - Deprecated
craft\fields\linktypes\Url.CraftCms\Cms\Field\LinkTypes\Urlshould be used instead. - Deprecated
craft\fields\Addresses.CraftCms\Cms\Field\Addressesshould be used instead. - Deprecated
craft\fields\Assets.CraftCms\Cms\Field\Assetsshould be used instead. - Deprecated
craft\fields\BaseOptionsField.CraftCms\Cms\Field\BaseOptionsFieldshould be used instead. - Deprecated
craft\fields\BaseRelationField.CraftCms\Cms\Field\BaseRelationFieldshould be used instead. - Deprecated
craft\fields\ButtonGroup.CraftCms\Cms\Field\ButtonGroupshould be used instead. - Deprecated
craft\fields\Categories.CraftCms\Cms\Field\Categoriesshould be used instead. - Deprecated
craft\fields\Checkboxes.CraftCms\Cms\Field\Checkboxesshould be used instead. - Deprecated
craft\fields\Color.CraftCms\Cms\Field\Colorshould be used instead. - Deprecated
craft\fields\ContentBlock.CraftCms\Cms\Field\ContentBlockshould be used instead. - Deprecated
craft\fields\Country.CraftCms\Cms\Field\Countryshould be used instead. - Deprecated
craft\fields\Date.CraftCms\Cms\Field\Dateshould be used instead. - Deprecated
craft\fields\Dropdown.CraftCms\Cms\Field\Dropdownshould be used instead. - Deprecated
craft\fields\Email.CraftCms\Cms\Field\Emailshould be used instead. - Deprecated
craft\fields\Entries.CraftCms\Cms\Field\Entriesshould be used instead. - Deprecated
craft\fields\Icon.CraftCms\Cms\Field\Iconshould be used instead. - Deprecated
craft\fields\Json.CraftCms\Cms\Field\Jsonshould be used instead. - Deprecated
craft\fields\Lightswitch.CraftCms\Cms\Field\Lightswitchshould be used instead. - Deprecated
craft\fields\Link.CraftCms\Cms\Field\Linkshould be used instead. - Deprecated
craft\fields\Matrix.CraftCms\Cms\Field\Matrixshould be used instead. - Deprecated
craft\fields\MissingField.CraftCms\Cms\Field\MissingFieldshould be used instead. - Deprecated
craft\fields\Money.CraftCms\Cms\Field\Moneyshould be used instead. - Deprecated
craft\fields\MultiSelect.CraftCms\Cms\Field\MultiSelectshould be used instead. - Deprecated
craft\fields\Number.CraftCms\Cms\Field\Numbershould be used instead. - Deprecated
craft\fields\PlainText.CraftCms\Cms\Field\PlainTextshould be used instead. - Deprecated
craft\fields\RadioButtons.CraftCms\Cms\Field\RadioButtonsshould be used instead. - Deprecated
craft\fields\Range.CraftCms\Cms\Field\Rangeshould be used instead. - Deprecated
craft\fields\Table.CraftCms\Cms\Field\Tableshould be used instead. - Deprecated
craft\fields\Tags.CraftCms\Cms\Field\Tagsshould be used instead. - Deprecated
craft\fields\Time.CraftCms\Cms\Field\Timeshould be used instead. - Deprecated
craft\fields\Url.CraftCms\Cms\Field\Urlshould be used instead. - Deprecated
craft\fields\Users.CraftCms\Cms\Field\Usersshould be used instead. - Deprecated
craft\services\Fields.CraftCms\Cms\Field\Fieldsshould be used instead.
Filesystems
- Deprecated
craft\errors\InvalidSubpathException.CraftCms\Cms\Filesystem\Exceptions\InvalidSubpathExceptionshould be used instead.
GQL
- Deprecated
\craft\records\GqlSchema.\CraftCms\Cms\Gql\Models\GqlSchemashould be used instead. - Deprecated
\craft\records\GqlToken.\CraftCms\Cms\Gql\Models\GqlTokenshould be used instead.
HTTP
- Deprecated
craft\config\GeneralConfig::$errorTemplatePrefixandcraft\config\GeneralConfig::errorTemplatePrefix(). Configure Laravel's custom error pages instead. - Deprecated
craft\filters\BasicHttpAuthLogin. Use theauth.basicmiddleware instead. (see https://laravel.com/docs/12.x/authentication#http-basic-authentication) - Deprecated
craft\filters\BasicHttpAuthStatic. Use theauth.basicmiddleware instead. (see https://laravel.com/docs/12.x/authentication#http-basic-authentication) - Deprecated
craft\filters\BasicHttpAuthTrait. Use theauth.basicmiddleware instead. (see https://laravel.com/docs/12.x/authentication#http-basic-authentication) - Deprecated
craft\filters\Cors. Use Laravel's CORS settings instead. (see https://laravel.com/docs/12.x/routing#cors) - Deprecated
craft\filters\Headers. Use Laravel middleware instead. (see https://laravel.com/docs/middleware) - Deprecated
craft\filters\ConditionalFilterTrait. - Deprecated
craft\filters\SiteFilterTrait. - Deprecated
craft\filters\UtilityAccess. - Deprecated
craft\controllers\AppController::actionLicensingIssues().CraftCms\Cms\Http\Middleware\EnforceLicensesshould be used instead. - Removed
craft\controllers\AppController::actionHealthCheck().CraftCms\Cms\Http\Controllers\App\HealthCheckControllershould be used instead. - Removed
craft\controllers\AppController::actionGetCpAlerts()andactionShunCpAlert().CraftCms\Cms\Http\Controllers\App\CpAlertsControllershould be used instead. - Removed
craft\controllers\AppController::actionIconPickerOptions(). UseCraftCms\Cms\Http\Controllers\IconController::pickerOptions()instead. - Removed
craft\controllers\AppController::actionSetLicenseShunCookie().CraftCms\Cms\Http\Controllers\App\LicensesController::setShunCookie()should be used instead. - Removed
craft\controllers\AppController::actionGetPluginLicenseInfo()andactionUpdatePluginLicense().CraftCms\Cms\Http\Controllers\App\PluginsControllershould be used instead. - Removed
craft\controllers\AppController::actionBrokenImage().CraftCms\Cms\Http\Middleware\ShowBrokenImageshould be used instead. - Removed
craft\controllers\AppController::actionRenderElements()andactionRenderComponents().CraftCms\Cms\Http\Controllers\App\RenderControllershould be used instead. - Removed
craft\controllers\NotFoundController. Laravel's exception handling should be used instead. - Removed the header-setting logic in
yii2-adapter\legacy\web\Application. The new\CraftCms\Cms\Http\Middleware\SetHeadersmiddleware handles this functionality. - Removed the licensing issues screen logic in
yii2-adapter\legacy\web\Application. The new\CraftCms\Cms\Http\Middleware\EnforceLicensesmiddleware handles this functionality. - Removed
craft\controllers\AppController::actionTryEdition()andactionSwitchToLicensedEdition()in favor ofCraftCms\Cms\Http\Controllers\EditionController.
- Added
CraftCms\Cms\Email\Commands\SendTestMailCommand. - Added
CraftCms\Cms\Email\Mailables\CraftMailable, a base mailable class that automatically applies project config email settings (from, replyTo, mailer) with site-specific overrides. - Added
CraftCms\Cms\SystemMessage\Mailables\SystemMessageMailable. - Deprecated
Craft::$app->getMailer(). Laravel mailers/drivers andCraftCms\Cms\SystemMessage\SystemMessages::mailable()should be used instead. - Deprecated
craft\mail\Mailer. Laravel mailers/drivers andCraftCms\Cms\SystemMessage\SystemMessages::mailable()should be used instead. - Deprecated
craft\helpers\MailerHelper. Laravel mail configuration and drivers should be used instead. - Deprecated
craft\config\GeneralConfig::$testToEmailAddressandcraft\config\GeneralConfig::testToEmailAddress().Illuminate\Support\Facades\Mail::alwaysTo()should be used instead. - Deprecated
craft\mail\Mailer::$template,craft\mail\Mailer::$siteOverrides,craft\models\MailSettings::$template, andcraft\models\MailSettings::$siteOverrides. Laravel mailable views and environment-specific Laravel mailers should be used instead. - Removed legacy
projectConfig.emailmail settings and mail transport adapter configuration in favor of Laravel'smailconfig and drivers.
Migrations
Craft and Yii's migrations have been removed in favor of Laravel migrations.
The php craft fields:merge and php craft entry-types:merge commands will now generate Laravel migrations.
- Deprecated
craft\db\Migration.CraftCms\Cms\Database\Migrationshould be used instead. - Deprecated
craft\db\MigrationManager - Removed
craft\helpers\MigrationHelperas it was deprecated since 4.0.0. - Removed
craft\console\controllers\InstallControllerin favor of:CraftCms\Cms\Console\Commands\InstallCommandCraftCms\Cms\Console\Commands\InstallCheckCommand
- Removed
craft\console\controllers\MigrateControllerin favor of:CraftCms\Cms\Database\Commands\MigrateCommand
- Removed
craft\console\controllers\UpControllerin favor of:CraftCms\Cms\Console\Commands\UpCommand
Plugins
Added
- The base
CraftCms\Cms\Plugin\Pluginclass is now a Laravel ServiceProvider which provides a new way to register components for your plugins.
Deprecations
- Deprecated
craft\services\Plugins.CraftCms\Cms\Plugin\Pluginsshould be used instead. - Deprecated
craft\base\Plugin.CraftCms\Cms\Plugin\Pluginshould be used instead. - Deprecated
craft\base\PluginTrait. - Deprecated
craft\base\PluginInterface.CraftCms\Cms\Plugin\Contracts\PluginInterfaceshould be used instead. - Deprecated
craft\errors\InvalidPluginException.CraftCms\Cms\Plugin\Exceptions\InvalidPluginExceptionshould be used instead. - Deprecated
craft\errors\InvalidLicenseKeyException.CraftCms\Cms\Plugin\Exceptions\InvalidLicenseKeyExceptionshould be used instead.
Controllers
- Removed
craft\controllers\PluginsController. UseCraftCms\Cms\Http\Controllers\PluginsControllerinstead.
Commands
- Removed
craft\console\controllers\PluginControllerin favor of:CraftCms\Cms\Plugin\Commands\DisableCommand->php craft plugin:disableCraftCms\Cms\Plugin\Commands\EnableCommand->php craft plugin:enableCraftCms\Cms\Plugin\Commands\InstallCommand->php craft plugin:installCraftCms\Cms\Plugin\Commands\UninstallCommand->php craft plugin:uninstallCraftCms\Cms\Plugin\Commands\ListCommand->php craft plugin:list
Events
- Deprecated
craft\events\PluginEventin favor of the following new events:craft\base\Plugin::EVENT_BEFORE_SAVE_SETTINGS=>CraftCms\Cms\Component\Events\ComponentEventcraft\base\Plugin::EVENT_AFTER_SAVE_SETTINGS=>CraftCms\Cms\Component\Events\ComponentEventcraft\services\Plugins::EVENT_BEFORE_DISABLE_PLUGIN=>CraftCms\Cms\Plugin\Events\PluginDisabling;craft\services\Plugins::EVENT_BEFORE_ENABLE_PLUGIN=>CraftCms\Cms\Plugin\Events\PluginEnabling;craft\services\Plugins::EVENT_BEFORE_INSTALL_PLUGIN=>CraftCms\Cms\Plugin\Events\PluginInstalling;craft\services\Plugins::EVENT_BEFORE_LOAD_PLUGINS=>CraftCms\Cms\Plugin\Events\PluginsLoading;craft\services\Plugins::EVENT_BEFORE_SAVE_PLUGIN_SETTINGS=>CraftCms\Cms\Plugin\Events\SavingPluginSettings;craft\services\Plugins::EVENT_BEFORE_UNINSTALL_PLUGIN=>CraftCms\Cms\Plugin\Events\PluginUninstalling;craft\services\Plugins::EVENT_AFTER_DISABLE_PLUGIN=>CraftCms\Cms\Plugin\Events\PluginDisabled;craft\services\Plugins::EVENT_AFTER_ENABLE_PLUGIN=>CraftCms\Cms\Plugin\Events\PluginEnabled;craft\services\Plugins::EVENT_AFTER_INSTALL_PLUGIN=>CraftCms\Cms\Plugin\Events\PluginInstalled;craft\services\Plugins::EVENT_AFTER_LOAD_PLUGINS=>CraftCms\Cms\Plugin\Events\PluginsLoaded;craft\services\Plugins::EVENT_AFTER_SAVE_PLUGIN_SETTINGS=>CraftCms\Cms\Plugin\Events\PluginSettingsSaved;craft\services\Plugins::EVENT_AFTER_UNINSTALL_PLUGIN=>CraftCms\Cms\Plugin\Events\PluginUninstalled;
Request
- Added
Request::isPreview()macro for detecting preview requests viax-craft-previeworx-craft-live-previewparameters. - Added
Request::isCpRequest(),Request::isSiteRequest(),Request::isActionRequest(),Request::actionSegments(),Request::actionSegmentsToRoute(),Request::duplicateWithUri(),Request::getToken(), andRequest::getSigned()macros. - Updated paginated requests to resolve the current page from the configured
GeneralConfig::$pageTriggerquery parameter rather than path-style pagination segments.
Security
- Added
CraftCms\Cms\Support\Security. - Added
CraftCms\Cms\Support\Facades\Security. - Added
CraftCms\Cms\Http\Middleware\AddLogContext. - Deprecated
Craft::$app->getSecurity()in favor of Laravel's Hash and Crypt facades, orCraftCms\Cms\Support\Facades\Security. - Deprecated
GeneralConfig::$blowfishHashCostin favor of Laravel's hashing.bcrypt.rounds config or the BCRYPT_ROUNDS environment variable.
Updates
The craft\services\Updates internal service has been removed. CraftCms\Cms\Update\Updates should be used instead.
Moved the following controllers:
craft\controllers\ConfigSyncController=>CraftCms\Cms\Http\Controllers\ConfigSyncControllercraft\controllers\InstallController=>CraftCms\Cms\Http\Controllers\InstallControllercraft\controllers\MigrateController=>CraftCms\Cms\Http\Controllers\MigrateControllercraft\controllers\PluginStoreController=>CraftCms\Cms\Http\Controllers\PluginStore\PluginStoreControllercraft\controllers\PluginStore\InstallController=>CraftCms\Cms\Http\Controllers\PluginStore\InstallControllercraft\controllers\PluginStore\RemoveController=>CraftCms\Cms\Http\Controllers\PluginStore\RemoveControllercraft\controllers\UpdaterController=>CraftCms\Cms\Http\Controllers\Updates\UpdaterControllercraft\controllers\UpdatesController=>CraftCms\Cms\Http\Controllers\Updates\UpdatesControllercraft\console\controllers\UpdateControllerin favor of these commands:CraftCms\Cms\Update\Commands\UpdateCommandCraftCms\Cms\Update\Commands\ComposerInstallCommandCraftCms\Cms\Update\Commands\InfoCommand
Deprecations & removals
- Deprecated
craft\helpers\Install.CraftCms\Cms\Site\Concerns\SiteDefaultsshould be used instead. - Deprecated
craft\helpers\Update. The only method wascheckPhpConstraintwhich is now available onCraftCms\Cms\Support\PHP::checkConstraint() - Removed
craft\events\UpdateReleaseEventin favor ofCraftCms\Cms\Update\Events\CriticalUpdateReleasedEvent - Removed
craft\models\Update.CraftCms\Cms\Update\Data\Updateshould be used instead. - Removed
craft\models\UpdateRelease.CraftCms\Cms\Update\Data\UpdateReleaseshould be used instead. - Removed
craft\models\Updates.CraftCms\Cms\Update\Data\Updatesshould be used instead.
Users
- Removed
craft\console\controllers\UsersControllerin favor of the following commands (signatures are the same):CraftCms\Cms\User\Commands\ActivationUrlCommandCraftCms\Cms\User\Commands\CreateCommandCraftCms\Cms\User\Commands\DeleteCommandCraftCms\Cms\User\Commands\ImpersonateCommandCraftCms\Cms\User\Commands\ListAdminsCommandCraftCms\Cms\User\Commands\LogoutAllCommandCraftCms\Cms\User\Commands\PasswordResetUrlCommandCraftCms\Cms\User\Commands\Remove2faCommandCraftCms\Cms\User\Commands\SetPasswordCommandCraftCms\Cms\User\Commands\UnlockCommand
Project Config
- Deprecated
craft\services\ProjectConfig.CraftCms\Cms\ProjectConfig\ProjectConfigshould be used instead. - Removed
craft\controllers\ProjectConfigControllerin favor ofCraftCms\Cms\Http\Controllers\Utilities\ProjectConfigController - Removed
craft\console\controllers\PcController&craft\console\controllers\ProjectConfigControllerin favor of the following commands:CraftCms\Cms\ProjectConfig\Commands\ApplyCommandCraftCms\Cms\ProjectConfig\Commands\DiffCommandCraftCms\Cms\ProjectConfig\Commands\ExportCommandCraftCms\Cms\ProjectConfig\Commands\GetCommandCraftCms\Cms\ProjectConfig\Commands\RebuildCommandCraftCms\Cms\ProjectConfig\Commands\RemoveCommandCraftCms\Cms\ProjectConfig\Commands\SetCommandCraftCms\Cms\ProjectConfig\Commands\TouchCommandCraftCms\Cms\ProjectConfig\Commands\WriteCommand- All commands can be called using either
php craft project-configorphp craft pc
- Deprecated
craft\events\ConfigEventin favor of the following events:CraftCms\Cms\ProjectConfig\Events\ProjectConfigItemAddingCraftCms\Cms\ProjectConfig\Events\ItemAddedCraftCms\Cms\ProjectConfig\Events\ProjectConfigItemUpdatedCraftCms\Cms\ProjectConfig\Events\ItemUpdatedCraftCms\Cms\ProjectConfig\Events\ProjectConfigItemRemovedCraftCms\Cms\ProjectConfig\Events\ItemRemoved
- Deprecated
craft\services\ProjectConfig::EVENT_AFTER_APPLY_CHANGES- Added
CraftCms\Cms\ProjectConfig\Events\ChangesApplied
- Added
- Deprecated
craft\services\ProjectConfig::EVENT_AFTER_WRITE_YAML_FILES - Added
CraftCms\Cms\ProjectConfig\Events\YamlFilesWritten - Deprecated
craft\services\ProjectConfig::EVENT_REBUILD- Added
CraftCms\Cms\ProjectConfig\Events\ProjectConfigRebuilt
- Added
- Removed
craft\errors\BusyResourceExceptionin favor ofCraftCms\Cms\ProjectConfig\Exceptions\BusyResourceException - Removed
craft\errors\StaleResourceExceptionin favor ofCraftCms\Cms\ProjectConfig\Exceptions\StaleResourceException - Added
CraftCms\Cms\ProjectConfig\Exceptions\ReadonlyException - Removed
craft\models\ProjectConfigDatain favor ofCraftCms\Cms\ProjectConfig\Data\ProjectConfigData - Removed
craft\models\ReadOnlyProjectConfigDatain favor ofCraftCms\Cms\ProjectConfig\Data\ReadOnlyProjectConfigData - Deprecated
craft\helpers\ProjectConfig.CraftCms\Cms\ProjectConfig\ProjectConfigHelpershould be used instead.
Revisions
- Deprecated
craft\services\Revisions.CraftCms\Cms\Element\Revisionsshould be used instead. - Deprecated
craft\events\RevisionEvent. One of the events extendingCraftCms\Cms\Element\Events\RevisionEventshould be used instead. - Deprecated
craft\behaviors\RevisionBehavior.CraftCms\Cms\Element\Concerns\Revisionableshould be used instead.
Routes
- Deprecated
craft\services\Routes.CraftCms\Cms\Route\Routesshould be used instead. - Using routes in
config/routes.phpis no longer supported. Register routes using Laravel's routing instead.
Search
- Added
CraftCms\Cms\Support\Facades\Search. - Deprecated
craft\services\Search.CraftCms\Cms\Search\Searchshould be used instead. - Deprecated
Craft::$app->getSearch().CraftCms\Cms\Support\Facades\Searchorapp(CraftCms\Cms\Search\Search::class)should be used instead. - Deprecated
craft\search\SearchQuery.CraftCms\Cms\Search\SearchQueryshould be used instead. - Deprecated
craft\search\SearchQueryTerm.CraftCms\Cms\Search\SearchQueryTermshould be used instead. - Deprecated
craft\search\SearchQueryTermGroup.CraftCms\Cms\Search\SearchQueryTermGroupshould be used instead. - Deprecated
craft\events\SearchEventin favor of the following new events:craft\services\Search::EVENT_BEFORE_SEARCH=>CraftCms\Cms\Search\Events\SearchStartingcraft\services\Search::EVENT_AFTER_SEARCH=>CraftCms\Cms\Search\Events\SearchPerformedcraft\services\Search::EVENT_BEFORE_SCORE_RESULTS=>CraftCms\Cms\Search\Events\ScoringResults
- Deprecated
craft\events\IndexKeywordsEvent.CraftCms\Cms\Search\Events\KeywordsIndexingshould be used instead.
Sections
- Updated section index pagination to return Laravel-style pagination metadata and use the configured
GeneralConfig::$pageTriggerquery parameter. - Deprecated the section related methods in
craft\services\Entries.CraftCms\Cms\Section\Sectionsshould be used instead. - Deprecated
craft\models\Section.CraftCms\Cms\Section\Data\Sectionshould be used instead. - Deprecated
craft\records\Section.CraftCms\Cms\Section\Models\Sectionshould be used instead. - Deprecated
craft\models\Section_SiteSettings.CraftCms\Cms\Section\Data\SectionSiteSettingsshould be used instead. - Deprecated
craft\records\Section_SiteSettings.CraftCms\Cms\Section\Models\SectionSiteSettingsshould be used instead. - Deprecated
craft\events\SectionEvent. One of these should be used instead:craft\services\Entries::EVENT_BEFORE_DELETE_SECTION=>CraftCms\Cms\Section\Events\SectionDeletingcraft\services\Entries::EVENT_BEFORE_APPLY_SECTION_DELETE=>CraftCms\Cms\Section\Events\SectionDeletionApplyingcraft\services\Entries::EVENT_AFTER_DELETE_SECTION=>CraftCms\Cms\Section\Events\SectionDeletedcraft\services\Entries::EVENT_BEFORE_SAVE_SECTION=>CraftCms\Cms\Section\Events\SectionSavingcraft\services\Entries::EVENT_AFTER_SAVE_SECTION=>CraftCms\Cms\Section\Events\SectionSaved
- Removed
craft\controllers\SectionsControllerin favor ofCraftCms\Cms\Http\Controllers\SectionsController - Removed
craft\console\controllers\SectionsControllerin favor of:CraftCms\Cms\Section\Commands\CreateCommandCraftCms\Cms\Section\Commands\DeleteCommand
- Added
CraftCms\Cms\Section\Enums\DefaultPlacement - Added
CraftCms\Cms\Section\Enums\SectionType - Deprecated
craft\errors\SectionNotFoundException.CraftCms\Cms\Section\Exceptions\SectionNotFoundExceptionshould be used instead.
Sites
-
Deprecated
craft\services\Sites.CraftCms\Cms\Site\Sitesshould be used instead. -
Deprecated
craft\models\Site.CraftCms\Cms\Site\Data\Siteshould be used instead. -
Deprecated
craft\models\SiteGroup.CraftCms\Cms\Site\Data\SiteGroupshould be used instead. -
Deprecated
craft\records\Site.CraftCms\Cms\Site\Models\Siteshould be used instead. -
Deprecated
craft\records\SiteGroup.CraftCms\Cms\Site\Models\SiteGroupshould be used instead. -
Deprecated
craft\events\SiteEvent. One ofCraftCms\Cms\Site\Events\*should be used instead. -
Deprecated
craft\events\DeleteSiteEvent. One ofCraftCms\Cms\Site\Events\SiteDeletingorCraftCms\Cms\Site\Events\SiteDeletedshould be used instead. -
Deprecated
craft\events\ReorderSitesEvent. One ofCraftCms\Cms\Site\Events\SitesReorderingorCraftCms\Cms\Site\Events\SitesReorderedshould be used instead. -
Deprecated
craft\events\SiteGroupEvent. One ofCraftCms\Cms\Site\Events\*should be used instead. -
Deprecated
craft\errors\SiteNotFoundException.CraftCms\Cms\Site\Exceptions\SiteNotFoundExceptionshould be used instead. -
Deprecated
craft\errors\SiteGroupNotFoundException. -
Removed
craft\controllers\SitesControllerin favor of:CraftCms\Cms\Http\Controllers\Settings\SitesControllerCraftCms\Cms\Http\Controllers\Settings\SiteGroupsController
Structures
- Deprecated
craft\services\Structures.CraftCms\Cms\Structure\Structuresshould be used instead. - Deprecated
craft\models\Structure.CraftCms\Cms\Structure\Data\Structureshould be used instead. - Deprecated
craft\records\Structure.CraftCms\Cms\Structure\Models\Structureshould be used instead. - Deprecated
craft\records\StructureElement.CraftCms\Cms\Structure\Models\StructureElementshould be used instead. - Replaced
craft\controllers\StructuresController.CraftCms\Cms\Http\Controllers\StructuresController. - Replaced structure related commands in
craft\console\controllers\RepairControllerwith:\CraftCms\Cms\Structure\Commands\RepairCategoryGroupStructureCommand\CraftCms\Cms\Structure\Commands\RepairSectionStructureCommand
System Messages
- Deprecated
craft\services\SystemMessages.CraftCms\Cms\SystemMessage\SystemMessagesshould be used instead. - Deprecated
craft\models\SystemMessageandcraft\records\SystemMessage.CraftCms\Cms\SystemMessage\Models\SystemMessageshould be used instead. - Replaced
craft\controllers\SystemMessagesControllerwithCraftCms\Cms\Http\Controllers\Utilities\SystemMessagesController
Tokens
- Deprecated
craft\services\Tokens.CraftCms\Cms\RouteToken\RouteTokensshould be used instead. - Deprecated
craft\records\Token.CraftCms\Cms\RouteToken\Models\RouteTokenshould be used instead.
Twig
- Updated Twig
{% paginate %}queries to use Laravel paginators and generate query-string pagination URLs based onGeneralConfig::$pageTrigger. - Added
CraftCms\Cms\Twig\Twigservice for managing Twig environments, replacing the Twig management logic previously incraft\web\View. - Added
CraftCms\Cms\Twig\TemplateRendererfor rendering templates, replacing the rendering logic previously incraft\web\View. - Added
CraftCms\Cms\Twig\PageLifecyclefor managing the page rendering lifecycle (head/body placeholder replacement), replacing the page lifecycle logic previously incraft\web\View. - Added
CraftCms\Cms\Support\Facades\Twigfacade, resolving toCraftCms\Cms\Twig\TemplateRenderer. - Added
CraftCms\Cms\Twig\Environment, moved fromcraft\web\twig\Environment. - Added
CraftCms\Cms\Twig\TemplateResolver. - Added
CraftCms\Cms\Twig\TemplateLoader. - Added
CraftCms\Cms\Twig\Exceptions\TemplateLoaderException. - Added helper functions in the
CraftCms\Cmsnamespace:template(),sandboxedTemplate(),pageTemplate(),renderString(),renderSandboxedString(),renderObjectTemplate(),renderSandboxedObjectTemplate(). - Added
sanitizeTwig filter for sanitizing HTML withCraftCms\Cms\Support\HtmlSanitizer\HtmlSanitizers. - Deprecated
craft\web\View::getTwig().CraftCms\Cms\Twig\Twig::get()should be used instead. - Deprecated
craft\web\View::setTwig().CraftCms\Cms\Twig\Twig::set()should be used instead. - Deprecated
craft\web\View::createTwig().CraftCms\Cms\Twig\Twig::create()should be used instead. - Deprecated
craft\web\View::registerCpTwigExtension().CraftCms\Cms\Twig\Twig::registerExtension()should be used instead. - Deprecated
craft\web\View::registerSiteTwigExtension().CraftCms\Cms\Twig\Twig::registerExtension()should be used instead. - Deprecated
craft\web\View::registerTwigExtension().CraftCms\Cms\Twig\Twig::registerExtension()should be used instead. - Deprecated
craft\web\View::renderTemplate().CraftCms\Cms\Twig\TemplateRenderer::renderTemplate()or thetemplate()helper should be used instead. - Deprecated
craft\web\View::renderSandboxedTemplate().CraftCms\Cms\Twig\TemplateRenderer::renderSandboxedTemplate()or thesandboxedTemplate()helper should be used instead. - Deprecated
craft\web\View::renderPageTemplate().CraftCms\Cms\Twig\TemplateRenderer::renderPageTemplate()or thepageTemplate()helper should be used instead. - Deprecated
craft\web\View::renderString().CraftCms\Cms\Twig\TemplateRenderer::renderString()or therenderString()helper should be used instead. - Deprecated
craft\web\View::renderSandboxedString().CraftCms\Cms\Twig\TemplateRenderer::renderSandboxedString()or therenderSandboxedString()helper should be used instead. - Deprecated
craft\web\View::renderObjectTemplate().CraftCms\Cms\Twig\TemplateRenderer::renderObjectTemplate()or therenderObjectTemplate()helper should be used instead. - Deprecated
craft\web\View::renderSandboxedObjectTemplate().CraftCms\Cms\Twig\TemplateRenderer::renderSandboxedObjectTemplate()or therenderSandboxedObjectTemplate()helper should be used instead. - Deprecated
craft\web\View::normalizeObjectTemplate().CraftCms\Cms\Twig\TemplateRenderer::normalizeObjectTemplate()should be used instead. - Deprecated
craft\web\View::getIsRenderingTemplate().CraftCms\Cms\Twig\TemplateRenderer::isRenderingTemplateshould be used instead. - Deprecated
craft\web\View::getIsRenderingPageTemplate().CraftCms\Cms\Twig\TemplateRenderer::isRenderingPageTemplateshould be used instead. - Deprecated
craft\web\twig\Environment.CraftCms\Cms\Twig\Environmentshould be used instead. - Deprecated
craft\web\View::EVENT_AFTER_CREATE_TWIG.CraftCms\Cms\Twig\Events\TwigCreatedshould be used instead. - Deprecated
craft\web\View::doesTemplateExist().CraftCms\Cms\Twig\TemplateResolver::doesTemplateExist()should be used instead. - Deprecated
craft\web\View::resolveTemplate().CraftCms\Cms\Twig\TemplateResolver::resolveTemplate()should be used instead. - Deprecated
craft\web\twig\TemplateLoader.CraftCms\Cms\Twig\TemplateLoadershould be used instead. - Deprecated
craft\web\twig\TemplateLoaderException.CraftCms\Cms\Twig\Exceptions\TemplateLoaderExceptionshould be used instead.
Events
- Added
CraftCms\Cms\Twig\Events\TwigCreated, dispatched when a Twig environment is created. - Added
CraftCms\Cms\Twig\Events\TemplateRendering, dispatched before a template is rendered. Supports cancellation viaValidatableEvent. - Added
CraftCms\Cms\Twig\Events\TemplateRendered, dispatched after a template is rendered. Has a mutableoutputproperty. - Added
CraftCms\Cms\Twig\Events\PageTemplateRendering, dispatched before a page template is rendered. Supports cancellation viaValidatableEvent. - Added
CraftCms\Cms\Twig\Events\PageTemplateRendered, dispatched after a page template is rendered. Has a mutableoutputproperty. - Added
CraftCms\Cms\Twig\Events\PageStarting, dispatched when page rendering begins. - Added
CraftCms\Cms\Twig\Events\PageEnded, dispatched when page rendering ends. Has nullableheadHtml,bodyBeginHtml, andbodyEndHtmlproperties for overridingHtmlStackoutput. - Deprecated
craft\web\View::EVENT_BEFORE_RENDER_TEMPLATE.CraftCms\Cms\Twig\Events\TemplateRenderingshould be used instead. - Deprecated
craft\web\View::EVENT_AFTER_RENDER_TEMPLATE.CraftCms\Cms\Twig\Events\TemplateRenderedshould be used instead. - Deprecated
craft\web\View::EVENT_BEFORE_RENDER_PAGE_TEMPLATE.CraftCms\Cms\Twig\Events\PageTemplateRenderingshould be used instead. - Deprecated
craft\web\View::EVENT_AFTER_RENDER_PAGE_TEMPLATE.CraftCms\Cms\Twig\Events\PageTemplateRenderedshould be used instead.
Translations
- Deprecated
craft\i18n\FormatConverter.CraftCms\Cms\Translation\FormatConvertershould be used instead. - Deprecated
craft\i18n\Formatter.CraftCms\Cms\Translation\Formattershould be used instead. - Deprecated
craft\i18n\I18N.CraftCms\Cms\Translation\I18Nshould be used instead. - Deprecated
craft\i18n\Locale.CraftCms\Cms\Translation\Localeshould be used instead. - Deprecated
craft\i18n\MessageFormatter. - Deprecated
craft\i18n\PhpMessageSource. - Deprecated
craft\i18n\Translation.CraftCms\Cms\Support\Facades\I18Nshould be used instead. - Deprecated
Craft::t.CraftCms\Cms\tshould be used instead.
Users
CraftCms\Cms\User\Elements\Usernow implementsIlluminate\Contracts\Auth\Authenticatable,Illuminate\Contracts\Auth\Access\Authorizable,Illuminate\Contracts\Auth\CanResetPassword, andIlluminate\Contracts\Auth\MustVerifyEmail.- Added
CraftCms\Cms\User\Notifications\VerifyEmailNotification. Users::purgeExpiredPendingUsers()now joins thepassword_reset_tokenstable to find expired pending users.- Removed
verificationCodeandverificationCodeIssuedDatecolumns on theuserstable in favor of thepassword_reset_tokenstable. - Deprecated
craft\services\Users::isVerificationCodeValidForUser().Password::broker('craft')->tokenExists($user, $code)should be used instead. - Removed
craft\controllers\UsersControllerin favor of:CraftCms\Cms\Http\Controllers\Users\ActivateController.CraftCms\Cms\Http\Controllers\Users\PasswordController.CraftCms\Cms\Http\Controllers\Users\SaveUserController.
- Removed
\craft\controllers\UserSettingsControllerin favor of:CraftCms\Cms\Http\Controllers\Settings\UserGroupsControllerCraftCms\Cms\Http\Controllers\Settings\UserSettingsController
- Deprecated
UserGroupEventin favor of:CraftCms\Cms\User\Events\UserGroupSavingCraftCms\Cms\User\Events\UserGroupSavedCraftCms\Cms\User\Events\UserGroupDeletionApplyingCraftCms\Cms\User\Events\UserGroupDeletingCraftCms\Cms\User\Events\UserGroupDeleted
- Deprecated
\craft\exceptions\UserGroupNotFoundException. - Deprecated
\craft\services\UserGroups.CraftCms\Cms\User\UserGroupsshould be used instead. - Deprecated
\craft\models\UserGroup.CraftCms\Cms\User\Data\UserGroupshould be used instead. - Deprecated
\craft\records\User.\CraftCms\Cms\User\Models\Usershould be used instead. - Deprecated
\craft\records\UserGroup.\CraftCms\Cms\User\Models\UserGroupshould be used instead. - Deprecated
\craft\records\UserPermission.\CraftCms\Cms\User\Models\UserPermissionshould be used instead. - Deprecated
craft\services\UserPermissions.CraftCms\Cms\User\UserPermissionsshould be used instead. - Deprecated
craft.app.userPermissions.craft.userPermissionsshould be used instead. - Deprecated
craft\events\DefineEditUserScreensEvent.CraftCms\Cms\User\Events\EditUserScreensResolvingshould be used instead.
View
- Added
CraftCms\Cms\View\TwigEngine. - Added
CraftCms\Cms\View\HtmlStack. - Added
CraftCms\Cms\Support\Facades\HtmlStack. - Added
CraftCms\Cms\View\Enums\Positionenum. - Added
CraftCms\Cms\View\InputNamespace. - Added
CraftCms\Cms\Support\Facades\InputNamespace. - Added
CraftCms\Cms\View\TemplateHooks. - Added
CraftCms\Cms\Support\Facades\TemplateHooks. - Added
CraftCms\Cms\View\DeltaRegistry. - Added
CraftCms\Cms\Support\Facades\DeltaRegistry. - Added
CraftCms\Cms\View\TemplateModeenum. - Added
CraftCms\Cms\View\Events\CpTemplateRootsResolving. - Added
CraftCms\Cms\View\Events\SiteTemplateRootsResolving. - Added
CraftCms\Cms\View\TemplateCaches. - Added
CraftCms\Cms\View\CacheCollectors\DependencyCollector. - Added
CraftCms\Cms\View\CacheCollectors\ResourceCollector. - Added
CraftCms\Cms\View\Contracts\CacheCollectorInterface. - Added
CraftCms\Cms\View\Data\TemplateCacheContext. - Added
CraftCms\Cms\View\Events\TemplateCacheCollectorsResolving. - Deprecated
craft\services\TemplateCaches.CraftCms\Cms\View\TemplateCachesshould be used instead. - Deprecated
craft\web\View::registerJs().CraftCms\Cms\View\HtmlStack::js()should be used instead. - Deprecated
craft\web\View::registerJsWithVars().CraftCms\Cms\View\HtmlStack::jsWithVars()should be used instead. - Deprecated
craft\web\View::registerJsFile().CraftCms\Cms\View\HtmlStack::jsFile()should be used instead. - Deprecated
craft\web\View::registerCss().CraftCms\Cms\View\HtmlStack::css()should be used instead. - Deprecated
craft\web\View::registerCssFile().CraftCms\Cms\View\HtmlStack::cssFile()should be used instead. - Deprecated
craft\web\View::registerScript().CraftCms\Cms\View\HtmlStack::script()should be used instead. - Deprecated
craft\web\View::registerScriptWithVars().CraftCms\Cms\View\HtmlStack::scriptWithVars()should be used instead. - Deprecated
craft\web\View::registerHtml().CraftCms\Cms\View\HtmlStack::html()should be used instead. - Deprecated
craft\web\View::registerMetaTag().CraftCms\Cms\View\HtmlStack::metaTag()should be used instead. - Deprecated
craft\web\View::registerLinkTag().CraftCms\Cms\View\HtmlStack::linkTag()should be used instead. - Deprecated
craft\web\View::registerTranslations().CraftCms\Cms\View\HtmlStack::translations()should be used instead. - Deprecated
craft\web\View::registerJsImport().CraftCms\Cms\View\HtmlStack::jsImport()should be used instead. - Deprecated
craft\web\View::registerIcons().CraftCms\Cms\View\HtmlStack::icons()should be used instead. - Deprecated
craft\web\View::startJsBuffer().CraftCms\Cms\View\HtmlStack::startJsBuffer()should be used instead. - Deprecated
craft\web\View::clearJsBuffer().CraftCms\Cms\View\HtmlStack::clearJsBuffer()should be used instead. - Deprecated
craft\web\View::startScriptBuffer().CraftCms\Cms\View\HtmlStack::startScriptBuffer()should be used instead. - Deprecated
craft\web\View::clearScriptBuffer().CraftCms\Cms\View\HtmlStack::clearScriptBuffer()should be used instead. - Deprecated
craft\web\View::startCssBuffer().CraftCms\Cms\View\HtmlStack::startCssBuffer()should be used instead. - Deprecated
craft\web\View::clearCssBuffer().CraftCms\Cms\View\HtmlStack::clearCssBuffer()should be used instead. - Deprecated
craft\web\View::startCssFileBuffer().CraftCms\Cms\View\HtmlStack::startCssFileBuffer()should be used instead. - Deprecated
craft\web\View::clearCssFileBuffer().CraftCms\Cms\View\HtmlStack::clearCssFileBuffer()should be used instead. - Deprecated
craft\web\View::startJsFileBuffer().CraftCms\Cms\View\HtmlStack::startJsFileBuffer()should be used instead. - Deprecated
craft\web\View::clearJsFileBuffer().CraftCms\Cms\View\HtmlStack::clearJsFileBuffer()should be used instead. - Deprecated
craft\web\View::startHtmlBuffer().CraftCms\Cms\View\HtmlStack::startHtmlBuffer()should be used instead. - Deprecated
craft\web\View::clearHtmlBuffer().CraftCms\Cms\View\HtmlStack::clearHtmlBuffer()should be used instead. - Deprecated
craft\web\View::startMetaTagBuffer().CraftCms\Cms\View\HtmlStack::startMetaTagBuffer()should be used instead. - Deprecated
craft\web\View::clearMetaTagBuffer().CraftCms\Cms\View\HtmlStack::clearMetaTagBuffer()should be used instead. - Deprecated
craft\web\View::startJsImportBuffer().CraftCms\Cms\View\HtmlStack::startJsImportBuffer()should be used instead. - Deprecated
craft\web\View::clearJsImportBuffer().CraftCms\Cms\View\HtmlStack::clearJsImportBuffer()should be used instead. - Deprecated
craft\web\View::getNamespace().CraftCms\Cms\View\InputNamespace::get()should be used instead. - Deprecated
craft\web\View::setNamespace().CraftCms\Cms\View\InputNamespace::set()should be used instead. - Deprecated
craft\web\View::namespaceInputs().CraftCms\Cms\View\InputNamespace::namespaceInputs()should be used instead. - Deprecated
craft\web\View::namespaceInputName().CraftCms\Cms\View\InputNamespace::namespaceInputName()should be used instead. - Deprecated
craft\web\View::namespaceInputId().CraftCms\Cms\View\InputNamespace::namespaceInputId()should be used instead. - Deprecated
craft\web\View::TEMPLATE_MODE_CP.CraftCms\Cms\View\TemplateMode::Cpshould be used instead. - Deprecated
craft\web\View::TEMPLATE_MODE_SITE.CraftCms\Cms\View\TemplateMode::Siteshould be used instead. - Deprecated
craft\web\View::getTemplateMode().CraftCms\Cms\View\TemplateMode::get()should be used instead. - Deprecated
craft\web\View::setTemplateMode().CraftCms\Cms\View\TemplateMode::set()should be used instead. - Deprecated
craft\web\View::getTemplatesPath().CraftCms\Cms\View\TemplateMode::templatesPath()should be used instead. - Deprecated
craft\web\View::getCpTemplateRoots().CraftCms\Cms\View\TemplateMode::templateRoots()should be used instead. - Deprecated
craft\web\View::getSiteTemplateRoots().CraftCms\Cms\View\TemplateMode::templateRoots()should be used instead. - Deprecated
craft\web\View::EVENT_REGISTER_CP_TEMPLATE_ROOTS.CraftCms\Cms\View\Events\CpTemplateRootsResolvingshould be used instead. - Deprecated
craft\web\View::EVENT_REGISTER_SITE_TEMPLATE_ROOTS.CraftCms\Cms\View\Events\SiteTemplateRootsResolvingshould be used instead. - Deprecated
craft\web\View::registerDeltaName().CraftCms\Cms\View\DeltaRegistry::registerName()should be used instead. - Deprecated
craft\web\View::getDeltaNames().CraftCms\Cms\View\DeltaRegistry::getNames()should be used instead. - Deprecated
craft\web\View::getModifiedDeltaNames().CraftCms\Cms\View\DeltaRegistry::getModifiedNames()should be used instead. - Deprecated
craft\web\View::setInitialDeltaValue().CraftCms\Cms\View\DeltaRegistry::setInitialValue()should be used instead. - Deprecated
craft\web\View::getInitialDeltaValues().CraftCms\Cms\View\DeltaRegistry::getInitialValues()should be used instead. - Deprecated
craft\web\View::getIsDeltaRegistrationActive().CraftCms\Cms\View\DeltaRegistry::isActive()should be used instead. - Deprecated
craft\web\View::setIsDeltaRegistrationActive().CraftCms\Cms\View\DeltaRegistry::setActive()should be used instead. - Deprecated
craft\web\View::hook().CraftCms\Cms\View\TemplateHooks::register()should be used instead. - Deprecated
craft\web\View::invokeHook().CraftCms\Cms\View\TemplateHooks::invoke()should be used instead.