php artisan winter:install.unique validation rule can now be used without any additional information, previously it required the table name to be specified in the form of unique:table_name. This also means that unique validation rules will respect the current model's $table property.Backend::makeCarbon($dateTime) helper for setting the backend timezone on date values.php artisan winter:util purge orphans command that removes any system_files records that do not have matching files stored on the filesystem.registerValidationRules in the Plugin.php plugin registration file to register custom validation rules.min, max, and step values on the number and numberrange List Filter scope types.Http utility.$ok indicator to the Http utility to indicate if the last response was successful (ie. an HTTP 2xx response code was returned){% framework %} Twig tag based on the current version stored in the database. Use artisan winter:version to set the correct version for your project.Lang::registerNamespaceAlias('real.namespace', 'aliased.namespace').Config::registerNamespaceAlias($original, $alias); to allow aliasing a config namespaces to another config namespace, i.e. Config::registerNamespaceAlias('winter.debugbar', 'debugbar'); would return the config items from winter.debugbar when accessing the debugbar config. This is useful for forked packages or when integrating Laravel packages into Winter.Config::registerPackageFallback($original, $fallback) to allow the config items to be loaded from the global $fallback config when present if the $original global config isn't present. Useful when forking plugins to ensure existing installations with customized configs at the global level continue to work.Winter\Storm\Support\ClassLoader->addAliases(['Real\Class' => 'Alias\For\Class']) method.Winter\Storm\Support\ClassLoader->addNamespaceAliases(['Real\Namespace' => 'Aliased\Namespace']) method.Winter\Storm\Support\ClassLoader->getAlias($aliasedClass) methodreplaces key in the pluginDetails() method. See wintercms/winter#41 & wintercms/docs#11 for more details. Methods added to PluginBase: getReplaces($includeConstraints = false), canReplacePlugin($plugin, $version), getPluginIdentifier(), getPluginPath(), and getPluginVersion().app.loadDiscoveredPackages set to false, as the manifest was reset to null as opposed to an empty array.id. This used to be controlled by the undocumented keyFrom option on the recordfinder, but is now handled behind the scenes automatically.File relationships on PostgreSQL would fail with the message "Varchar <> Integer comparison is not allowed"" introduced in 1.1.2 since it was causing issues when strict typing was enabled.PluginManager->getRegistrationMethodValues() would attempt to call protected methods on PHP 7.4.// but not allowing :// to account for poorly constructed paths that are still technically valid.winter:version, different version branches (1.0, 1.1, etc) can now be correctly identified.database.connections.sqlite.database to base_path('storage/database.sqlite') to better support applications using a mirrored public directory.Event facade was available would always be reported as "Class Event does not exist" instead of the actual problem..gif images would result in imagecolorsforindex(): Argument #2 ($color) is out of range..gif images with no transparent colour set would result in the white colour being replaced with the default transparent colour.null as the image source to the | resize filter resulted in an exception being thrown instead of more gracefully silently ignoring the input and returning an emptry string.init.php wouldn't be loaded by the plugin boot process when running unit tests.winter:down commandroutes.php file would not have names registered via Route::name() actually registered with the internal route name mapping meaning that route($name) would not be able to resolve to those routes.xml from the list of default allowed extensions to upload, can be added back through the configuration if required.rename and move action language keys to the backend module instead of the CMS module.perPageOptions configuration propertyWinter\Storm\Events\Dispatcher class to extend and override the base Laravel Event Dispatcher rather than just duplicating and implementing the contract for greater compatibility with Laravel.fzaninotto/faker package to the maintained fakerphp/faker package.Sign up to our newsletter and receive updates on Winter releases, new features in the works, plugin and theme promotions and much more!