Class Option Recommendations

Below, is a list of classes that may be updated with final or abstract.
The red stars mention possible upgrade by using final or abstract keywords; The green stars mention a valid absence of the option (an extended class, that can't be final, ...); The absence of star report currently configured classes. .

Final Abstract Name Path
  class MemoryCache extends AbstractCache \grav\framework\cache\adapter\memorycache
  class ChainCache extends AbstractCache \grav\framework\cache\adapter\chaincache
  class FileCache extends AbstractCache \grav\framework\cache\adapter\filecache
class UserProcessor implements ProcessorInterface \grav\framework\logger\processors\userprocessor
class CacheException extends Exception implements SimpleCacheException \grav\framework\cache\exception\cacheexception
class InvalidArgumentException extends \InvalidArgumentException implements SimpleCacheInvalidArgumentException \grav\framework\cache\exception\invalidargumentexception
  class SessionCache extends AbstractCache \grav\framework\cache\adapter\sessioncache
  class DoctrineCache extends AbstractCache \grav\framework\cache\adapter\doctrinecache
  class FileCollection extends AbstractFileCollection \grav\framework\collection\filecollection
class FormFlashFile implements UploadedFileInterface, JsonSerializable \grav\framework\form\formflashfile
  class Pagination extends AbstractPagination \grav\framework\pagination\pagination
  class PaginationPage extends AbstractPaginationPage \grav\framework\pagination\paginationpage
class Theme extends Plugin \grav\common\theme
class Session extends \Grav\Framework\Session\Session \grav\common\session
class Debugger \grav\common\debugger
class Plugins extends Iterator \grav\common\plugins
class Uri \grav\common\uri
class Composer \grav\common\composer
class Browser \grav\common\browser
class Grav extends Container \grav\common\grav
class PermissionsReader \grav\framework\acl\permissionsreader
class Permissions implements ArrayAccess, Countable, IteratorAggregate \grav\framework\acl\permissions
class Messages implements \Serializable \grav\framework\session\messages
class RecursiveActionIterator implements RecursiveIterator, \Countable \grav\framework\acl\recursiveactioniterator
class Taxonomy \grav\common\taxonomy
class SessionException extends RuntimeException \grav\framework\session\exceptions\sessionexception
class Cache extends Getters \grav\common\cache
class Themes extends Iterator \grav\common\themes
class FlexDirectory implements FlexDirectoryInterface \grav\framework\flex\flexdirectory
class FlexDirectoryForm implements FlexDirectoryFormInterface, JsonSerializable \grav\framework\flex\flexdirectoryform
class FlexIndex extends ObjectIndex implements FlexIndexInterface \grav\framework\flex\flexindex
class FlexForm implements FlexObjectFormInterface, JsonSerializable \grav\framework\flex\flexform
class FlexFormFlash extends FormFlash \grav\framework\flex\flexformflash
class FlexCollection extends ObjectCollection implements FlexCollectionInterface \grav\framework\flex\flexcollection
class FlexPageObject extends FlexObject implements PageInterface, FlexTranslateInterface \grav\framework\flex\pages\flexpageobject
class Action implements IteratorAggregate, Countable \grav\framework\acl\action
class Route \grav\framework\route\route
class RouteFactory \grav\framework\route\routefactory
class ArrayObject implements NestedObjectInterface, ArrayAccess \grav\framework\object\arrayobject
class LazyObject implements NestedObjectInterface, ArrayAccess \grav\framework\object\lazyobject
class ObjectExpressionVisitor extends ClosureExpressionVisitor \grav\framework\object\collection\objectexpressionvisitor
class UriFactory \grav\framework\uri\urifactory
  class Uri extends AbstractUri \grav\framework\uri\uri
class UriPartsFilter \grav\framework\uri\uripartsfilter
class HtmlBlock extends ContentBlock implements HtmlBlockInterface \grav\framework\contentblock\htmlblock
class SessionServiceProvider implements ServiceProviderInterface \grav\common\service\sessionserviceprovider
class ErrorServiceProvider implements ServiceProviderInterface \grav\common\service\errorserviceprovider
class AccountsServiceProvider implements ServiceProviderInterface \grav\common\service\accountsserviceprovider
class FilesystemServiceProvider implements ServiceProviderInterface \grav\common\service\filesystemserviceprovider
class InflectorServiceProvider implements ServiceProviderInterface \grav\common\service\inflectorserviceprovider
class TaskServiceProvider implements ServiceProviderInterface \grav\common\service\taskserviceprovider
class PagesServiceProvider implements ServiceProviderInterface \grav\common\service\pagesserviceprovider
class SchedulerServiceProvider implements ServiceProviderInterface \grav\common\service\schedulerserviceprovider
class StreamsServiceProvider implements ServiceProviderInterface \grav\common\service\streamsserviceprovider
class OutputServiceProvider implements ServiceProviderInterface \grav\common\service\outputserviceprovider
class AssetsServiceProvider implements ServiceProviderInterface \grav\common\service\assetsserviceprovider
class ConfigServiceProvider implements ServiceProviderInterface \grav\common\service\configserviceprovider
class FlexServiceProvider implements ServiceProviderInterface \grav\common\service\flexserviceprovider
class TwigClockworkDataSource extends DataSource \grav\common\twig\twigclockworkdatasource
class RequestServiceProvider implements ServiceProviderInterface \grav\common\service\requestserviceprovider
class LoggerServiceProvider implements ServiceProviderInterface \grav\common\service\loggerserviceprovider
  class Themes extends AbstractPackageCollection \grav\common\gpm\local\themes
class Package extends BasePackage \grav\common\gpm\local\package
class GPM extends Iterator \grav\common\gpm\gpm
class Installer \grav\common\gpm\installer
class Package extends BasePackage implements \JsonSerializable \grav\common\gpm\remote\package
class Packages extends CachedCollection \grav\common\gpm\local\packages
  class Plugins extends AbstractPackageCollection \grav\common\gpm\local\plugins
class BareHandler extends Handler \grav\common\errors\barehandler
  class GravCore extends AbstractPackageCollection \grav\common\gpm\remote\gravcore
class BackupsServiceProvider implements ServiceProviderInterface \grav\common\service\backupsserviceprovider
class SimplePageHandler extends Handler \grav\common\errors\simplepagehandler
class SystemFacade extends \Whoops\Util\SystemFacade \grav\common\errors\systemfacade
class Errors \grav\common\errors\errors
class TwigNodeCache extends Node implements NodeOutputInterface \grav\common\twig\node\twignodecache
class TwigNodeRender extends Node implements NodeCaptureInterface \grav\common\twig\node\twignoderender
class TwigNodeTryCatch extends Node \grav\common\twig\node\twignodetrycatch
class TwigNodeScript extends Node implements NodeCaptureInterface \grav\common\twig\node\twignodescript
class TwigNodeStyle extends Node implements NodeCaptureInterface \grav\common\twig\node\twignodestyle
class TwigNodeLink extends Node implements NodeCaptureInterface \grav\common\twig\node\twignodelink
class TwigNodeSwitch extends Node \grav\common\twig\node\twignodeswitch
class TwigException extends RuntimeException \grav\common\twig\exception\twigexception
class Backups \grav\common\backup\backups
class Blueprint extends BlueprintForm \grav\common\data\blueprint
class Blueprints \grav\common\data\blueprints
class ValidationException extends RuntimeException implements JsonSerializable \grav\common\data\validationexception
class Validation \grav\common\data\validation
class BlueprintSchema extends BlueprintSchemaBase implements ExportInterface \grav\common\data\blueprintschema
class BlockAssets \grav\common\assets\blockassets
class Link extends BaseAsset \grav\common\assets\link
class Twig \grav\common\twig\twig
class TwigExtension extends GravExtension \grav\common\twig\twigextension
class TwigClockworkDumper \grav\common\twig\twigclockworkdumper
class TwigEnvironment extends Environment \grav\common\twig\twigenvironment
  class TwigTokenParserTryCatch extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparsertrycatch
  class FilesystemExtension extends AbstractExtension \grav\common\twig\extension\filesystemextension
  class TwigTokenParserCache extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparsercache
  class TwigTokenParserRender extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserrender
  class TwigTokenParserThrow extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserthrow
  class TwigTokenParserSwitch extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserswitch
  class TwigTokenParserMarkdown extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparsermarkdown
  class TwigTokenParserScript extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserscript
  class TwigTokenParserLink extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserlink
  class TwigTokenParserStyle extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserstyle
class TwigNodeThrow extends Node \grav\common\twig\node\twignodethrow
class TwigNodeMarkdown extends Node implements NodeOutputInterface \grav\common\twig\node\twignodemarkdown
class TypesEvent extends Event \grav\events\typesevent
class CompiledLanguages extends CompiledBase \grav\common\config\compiledlanguages
class PluginsLoadedEvent extends Event \grav\events\pluginsloadedevent
class CompiledConfig extends CompiledBase \grav\common\config\compiledconfig
class BeforeSessionStartEvent extends Event \grav\events\beforesessionstartevent
class CompiledYamlFile extends YamlFile \grav\common\file\compiledyamlfile
class PermissionsRegisterEvent extends Event \grav\events\permissionsregisterevent
class CompiledMarkdownFile extends MarkdownFile \grav\common\file\compiledmarkdownfile
class Table extends \League\CLImate\TerminalObject\Basic\Table \grav\console\terminalobjects\table
class FormFlash extends FrameworkFormFlash \grav\common\form\formflash
class PageSystemValidatorCommand extends GravCommand \grav\console\cli\pagesystemvalidatorcommand
class CompiledJsonFile extends JsonFile \grav\common\file\compiledjsonfile
class InstallException extends \RuntimeException \grav\installer\installexception
  class GlobalMedia extends AbstractMedia \grav\common\page\medium\globalmedia
class PluginListCommand extends ConsoleCommand \grav\console\plugin\pluginlistcommand
class ThumbnailImageMedium extends ImageMedium \grav\common\page\medium\thumbnailimagemedium
class SecurityCommand extends GravCommand \grav\console\cli\securitycommand
class ParsedownExtra extends \ParsedownExtra \grav\common\markdown\parsedownextra
class InstallCommand extends GravCommand \grav\console\cli\installcommand
class JobHistory \grav\common\scheduler\jobhistory
class YamlLinterCommand extends GravCommand \grav\console\cli\yamllintercommand
class CompiledBlueprints extends CompiledBase \grav\common\config\compiledblueprints
class SchedulerCommand extends GravCommand \grav\console\cli\schedulercommand
class Parsedown extends \Parsedown \grav\common\markdown\parsedown
class SandboxCommand extends GravCommand \grav\console\cli\sandboxcommand
class Setup extends Data \grav\common\config\setup
class CleanCommand extends Command \grav\console\cli\cleancommand
class ConfigFileFinder \grav\common\config\configfilefinder
class ComposerCommand extends GravCommand \grav\console\cli\composercommand
class Languages extends Data \grav\common\config\languages
class LogViewerCommand extends GravCommand \grav\console\cli\logviewercommand
class Config extends Data \grav\common\config\config
class JsModule extends BaseAsset \grav\common\assets\jsmodule
  class Media extends AbstractMedia \grav\common\page\media
class InlineJs extends BaseAsset \grav\common\assets\inlinejs
class Page implements PageInterface \grav\common\page\page
class Js extends BaseAsset \grav\common\assets\js
class Types implements \ArrayAccess, \Iterator, \Countable \grav\common\page\types
class InlineCss extends BaseAsset \grav\common\assets\inlinecss
class Collection extends Iterator implements PageCollectionInterface \grav\common\page\collection
class YamlLinter \grav\common\helpers\yamllinter
class Header implements ArrayAccess, ExportInterface, JsonSerializable \grav\common\page\header
class Css extends BaseAsset \grav\common\assets\css
class Assets extends PropertyObject \grav\common\assets
class InlineJsModule extends BaseAsset \grav\common\assets\inlinejsmodule
class Inflector \grav\common\inflector
class Pipeline extends PropertyObject \grav\common\assets\pipeline
class Security \grav\common\security
class LogViewer \grav\common\helpers\logviewer
class AudioMedium extends Medium implements AudioMediaInterface \grav\common\page\medium\audiomedium
class Truncator \grav\common\helpers\truncator
class ImageFile extends Image \grav\common\page\medium\imagefile
class Base32 \grav\common\helpers\base32
class Link implements RenderableInterface, MediaLinkInterface \grav\common\page\medium\link
class Excerpts \grav\common\helpers\excerpts
class MediumFactory \grav\common\page\medium\mediumfactory
class PageEvent extends Event \grav\events\pageevent
class VideoMedium extends Medium implements VideoMediaInterface \grav\common\page\medium\videomedium
class FlexRegisterEvent extends Event \grav\events\flexregisterevent
class VectorImageMedium extends StaticImageMedium \grav\common\page\medium\vectorimagemedium
class SessionStartEvent extends Event \grav\events\sessionstartevent
class PluginApplication extends Application \grav\console\application\pluginapplication
class User extends Flex\Types\Users\UserObject \grav\common\user\user
class PluginCommandLoader implements CommandLoaderInterface \grav\console\application\commandloader\plugincommandloader
class UserCollection implements UserCollectionInterface \grav\common\user\datauser\usercollection
class Group extends Data \grav\common\user\group
class GravApplication extends Application \grav\console\application\gravapplication
class GpmApplication extends Application \grav\console\application\gpmapplication
class ZipArchiver extends Archiver \grav\common\filesystem\ziparchiver
class IndexCommand extends GpmCommand \grav\console\gpm\indexcommand
class TasksProcessor extends ProcessorBase \grav\common\processors\tasksprocessor
class SelfupgradeCommand extends GpmCommand \grav\console\gpm\selfupgradecommand
class RecursiveDirectoryFilterIterator extends RecursiveFilterIterator \grav\common\filesystem\recursivedirectoryfilteriterator
class UpdateCommand extends GpmCommand \grav\console\gpm\updatecommand
class RecursiveFolderFilterIterator extends \RecursiveFilterIterator \grav\common\filesystem\recursivefolderfilteriterator
class DirectInstallCommand extends GpmCommand \grav\console\gpm\directinstallcommand
class Scheduler \grav\common\scheduler\scheduler
class UninstallCommand extends GpmCommand \grav\console\gpm\uninstallcommand
class JobQueue \grav\common\scheduler\jobqueue
class VersionCommand extends GpmCommand \grav\console\gpm\versioncommand
class SchedulerController \grav\common\scheduler\schedulercontroller
class InfoCommand extends GpmCommand \grav\console\gpm\infocommand
class Cron \grav\common\scheduler\cron
class InstallCommand extends GpmCommand \grav\console\gpm\installcommand
class LanguageCodes \grav\common\language\languagecodes
class BackupCommand extends GravCommand \grav\console\cli\backupcommand
class Access extends \Grav\Framework\Acl\Access \grav\common\user\access
class NewProjectCommand extends GravCommand \grav\console\cli\newprojectcommand
class Job \grav\common\scheduler\job
class ServerCommand extends GravCommand \grav\console\cli\servercommand
class Language \grav\common\language\language
class ClearCacheCommand extends GravCommand \grav\console\cli\clearcachecommand
class RequestHandlerEvent extends Event \grav\common\processors\events\requesthandlerevent
class PagesProcessor extends ProcessorBase \grav\common\processors\pagesprocessor
class SchedulerProcessor extends ProcessorBase \grav\common\processors\schedulerprocessor
class RenderProcessor extends ProcessorBase \grav\common\processors\renderprocessor
class Licenses \grav\common\gpm\licenses
class Upgrader \grav\common\gpm\upgrader
class Client \grav\common\http\client
class Response \grav\common\http\response
class InitializeProcessor extends ProcessorBase \grav\common\processors\initializeprocessor
class DebuggerAssetsProcessor extends ProcessorBase \grav\common\processors\debuggerassetsprocessor
class TwigProcessor extends ProcessorBase \grav\common\processors\twigprocessor
class PluginsProcessor extends ProcessorBase \grav\common\processors\pluginsprocessor
class ThemesProcessor extends ProcessorBase \grav\common\processors\themesprocessor
class RequestProcessor extends ProcessorBase \grav\common\processors\requestprocessor
class AssetsProcessor extends ProcessorBase \grav\common\processors\assetsprocessor
class BackupsProcessor extends ProcessorBase \grav\common\processors\backupsprocessor
class Pages \grav\common\page\pages
class Exif \grav\common\helpers\exif
class Plugin implements EventSubscriberInterface, ArrayAccess \grav\common\plugin
class Session implements SessionInterface \grav\framework\session\session
class ObjectCollection extends ArrayCollection implements NestedObjectCollectionInterface \grav\framework\object\objectcollection
class PropertyObject implements NestedObjectInterface, ArrayAccess \grav\framework\object\propertyobject
class CachedCollection extends Iterator \grav\common\gpm\common\cachedcollection
class Package \grav\common\gpm\common\package
class User extends Data implements UserInterface \grav\common\user\datauser\user
class Iterator implements \ArrayAccess, \Iterator, \Countable, \Serializable \grav\common\iterator
class Application extends \Symfony\Component\Console\Application \grav\console\application\application
class GpmCommand extends Command \grav\console\gpmcommand
class AbstractFileCollection extends AbstractLazyCollection implements FileCollectionInterface \grav\framework\collection\abstractfilecollection
class ConsoleCommand extends Command \grav\console\consolecommand
class FormFlash implements FormFlashInterface \grav\framework\form\formflash
class AbstractPackageCollection extends BaseCollection \grav\common\gpm\remote\abstractpackagecollection
class AbstractPagination implements PaginationInterface \grav\framework\pagination\abstractpagination
class GravCommand extends Command \grav\console\gravcommand