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 Truncator \grav\common\helpers\truncator
class LogViewer \grav\common\helpers\logviewer
class Exif \grav\common\helpers\exif
class SessionStartEvent extends Event \grav\events\sessionstartevent
class PageStorage extends FolderStorage \grav\common\flex\types\pages\storage\pagestorage
class YamlLinter \grav\common\helpers\yamllinter
class Excerpts \grav\common\helpers\excerpts
class Base32 \grav\common\helpers\base32
class TypesEvent extends Event \grav\events\typesevent
class PluginsLoadedEvent extends Event \grav\events\pluginsloadedevent
class InstallException extends \RuntimeException \grav\installer\installexception
class PluginListCommand extends ConsoleCommand \grav\console\plugin\pluginlistcommand
class FlexRegisterEvent extends Event \grav\events\flexregisterevent
class PageEvent extends Event \grav\events\pageevent
class BeforeSessionStartEvent extends Event \grav\events\beforesessionstartevent
class PermissionsRegisterEvent extends Event \grav\events\permissionsregisterevent
class Table extends \League\CLImate\TerminalObject\Basic\Table \grav\console\terminalobjects\table
class LogViewerCommand extends GravCommand \grav\console\cli\logviewercommand
class CleanCommand extends Command \grav\console\cli\cleancommand
class InstallCommand extends GravCommand \grav\console\cli\installcommand
class ComposerCommand extends GravCommand \grav\console\cli\composercommand
class ServerCommand extends GravCommand \grav\console\cli\servercommand
class ClearCacheCommand extends GravCommand \grav\console\cli\clearcachecommand
class SandboxCommand extends GravCommand \grav\console\cli\sandboxcommand
class GPM extends Iterator \grav\common\gpm\gpm
class Upgrader \grav\common\gpm\upgrader
class Licenses \grav\common\gpm\licenses
class Client \grav\common\http\client
class PageSystemValidatorCommand extends GravCommand \grav\console\cli\pagesystemvalidatorcommand
class SchedulerCommand extends GravCommand \grav\console\cli\schedulercommand
class SecurityCommand extends GravCommand \grav\console\cli\securitycommand
class Installer \grav\common\gpm\installer
class YamlLinterCommand extends GravCommand \grav\console\cli\yamllintercommand
class RenderProcessor extends ProcessorBase \grav\common\processors\renderprocessor
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 Response \grav\common\http\response
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 PluginsProcessor extends ProcessorBase \grav\common\processors\pluginsprocessor
class TasksProcessor extends ProcessorBase \grav\common\processors\tasksprocessor
class ZipArchiver extends Archiver \grav\common\filesystem\ziparchiver
class RecursiveFolderFilterIterator extends \RecursiveFilterIterator \grav\common\filesystem\recursivefolderfilteriterator
class BackupsProcessor extends ProcessorBase \grav\common\processors\backupsprocessor
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 SchedulerServiceProvider implements ServiceProviderInterface \grav\common\service\schedulerserviceprovider
class InflectorServiceProvider implements ServiceProviderInterface \grav\common\service\inflectorserviceprovider
class TaskServiceProvider implements ServiceProviderInterface \grav\common\service\taskserviceprovider
class AssetsServiceProvider implements ServiceProviderInterface \grav\common\service\assetsserviceprovider
class ConfigServiceProvider implements ServiceProviderInterface \grav\common\service\configserviceprovider
class StreamsServiceProvider implements ServiceProviderInterface \grav\common\service\streamsserviceprovider
class OutputServiceProvider implements ServiceProviderInterface \grav\common\service\outputserviceprovider
class RequestServiceProvider implements ServiceProviderInterface \grav\common\service\requestserviceprovider
class SystemFacade extends \Whoops\Util\SystemFacade \grav\common\errors\systemfacade
class SimplePageHandler extends Handler \grav\common\errors\simplepagehandler
class BackupsServiceProvider implements ServiceProviderInterface \grav\common\service\backupsserviceprovider
class AccountsServiceProvider implements ServiceProviderInterface \grav\common\service\accountsserviceprovider
class FilesystemServiceProvider implements ServiceProviderInterface \grav\common\service\filesystemserviceprovider
class SessionServiceProvider implements ServiceProviderInterface \grav\common\service\sessionserviceprovider
class ErrorServiceProvider implements ServiceProviderInterface \grav\common\service\errorserviceprovider
class PagesServiceProvider implements ServiceProviderInterface \grav\common\service\pagesserviceprovider
  class Themes extends AbstractPackageCollection \grav\common\gpm\remote\themes
class Package extends BasePackage implements \JsonSerializable \grav\common\gpm\remote\package
class Packages extends CachedCollection \grav\common\gpm\remote\packages
  class Plugins extends AbstractPackageCollection \grav\common\gpm\remote\plugins
class BareHandler extends Handler \grav\common\errors\barehandler
  class GravCore extends AbstractPackageCollection \grav\common\gpm\remote\gravcore
class UninstallCommand extends GpmCommand \grav\console\gpm\uninstallcommand
class Errors \grav\common\errors\errors
class NewProjectCommand extends GravCommand \grav\console\cli\newprojectcommand
class BackupCommand extends GravCommand \grav\console\cli\backupcommand
class InstallCommand extends GpmCommand \grav\console\gpm\installcommand
class InfoCommand extends GpmCommand \grav\console\gpm\infocommand
class Package extends BasePackage \grav\common\gpm\local\package
class TwigNodeTryCatch extends Node \grav\common\twig\node\twignodetrycatch
class TwigNodeScript extends Node implements NodeCaptureInterface \grav\common\twig\node\twignodescript
class TwigNodeCache extends Node implements NodeOutputInterface \grav\common\twig\node\twignodecache
class TwigNodeRender extends Node implements NodeCaptureInterface \grav\common\twig\node\twignoderender
class TwigNodeMarkdown extends Node implements NodeOutputInterface \grav\common\twig\node\twignodemarkdown
class TwigNodeThrow extends Node \grav\common\twig\node\twignodethrow
  class TwigTokenParserStyle extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserstyle
  class TwigTokenParserLink extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserlink
  class TwigTokenParserScript extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserscript
  class TwigTokenParserMarkdown extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparsermarkdown
  class TwigTokenParserSwitch extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserswitch
  class TwigTokenParserThrow extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserthrow
  class TwigTokenParserRender extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparserrender
  class TwigTokenParserCache extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparsercache
  class FilesystemExtension extends AbstractExtension \grav\common\twig\extension\filesystemextension
  class TwigTokenParserTryCatch extends AbstractTokenParser \grav\common\twig\tokenparser\twigtokenparsertrycatch
class PluginCommandLoader implements CommandLoaderInterface \grav\console\application\commandloader\plugincommandloader
class TwigClockworkDumper \grav\common\twig\twigclockworkdumper
class PluginApplication extends Application \grav\console\application\pluginapplication
class TwigEnvironment extends Environment \grav\common\twig\twigenvironment
class GpmApplication extends Application \grav\console\application\gpmapplication
class GravApplication extends Application \grav\console\application\gravapplication
class SelfupgradeCommand extends GpmCommand \grav\console\gpm\selfupgradecommand
class IndexCommand extends GpmCommand \grav\console\gpm\indexcommand
class DirectInstallCommand extends GpmCommand \grav\console\gpm\directinstallcommand
class UpdateCommand extends GpmCommand \grav\console\gpm\updatecommand
class Twig \grav\common\twig\twig
class TwigExtension extends GravExtension \grav\common\twig\twigextension
class TwigClockworkDataSource extends DataSource \grav\common\twig\twigclockworkdatasource
class VersionCommand extends GpmCommand \grav\console\gpm\versioncommand
class FlexServiceProvider implements ServiceProviderInterface \grav\common\service\flexserviceprovider
class LoggerServiceProvider implements ServiceProviderInterface \grav\common\service\loggerserviceprovider
  class DoctrineCache extends AbstractCache \grav\framework\cache\adapter\doctrinecache
class GenericIndex extends FlexIndex \grav\common\flex\types\generic\genericindex
class PageCollection extends FlexPageCollection implements PageCollectionInterface \grav\common\flex\types\pages\pagecollection
class PageIndex extends FlexPageIndex implements PageCollectionInterface \grav\common\flex\types\pages\pageindex
class PageObject extends FlexPageObject \grav\common\flex\types\pages\pageobject
class UserProcessor implements ProcessorInterface \grav\framework\logger\processors\userprocessor
class UserFolderStorage extends FolderStorage \grav\common\flex\types\users\storage\userfolderstorage
  class FileCache extends AbstractCache \grav\framework\cache\adapter\filecache
class UserFileStorage extends FileStorage \grav\common\flex\types\users\storage\userfilestorage
  class ChainCache extends AbstractCache \grav\framework\cache\adapter\chaincache
class GenericObject extends FlexObject \grav\common\flex\types\generic\genericobject
  class MemoryCache extends AbstractCache \grav\framework\cache\adapter\memorycache
class GenericCollection extends FlexCollection \grav\common\flex\types\generic\genericcollection
class UserGroupCollection extends FlexCollection \grav\common\flex\types\usergroups\usergroupcollection
class UserGroupIndex extends FlexIndex \grav\common\flex\types\usergroups\usergroupindex
class UserCollection extends FlexCollection implements UserCollectionInterface \grav\common\flex\types\users\usercollection
class UserIndex extends FlexIndex implements UserCollectionInterface \grav\common\flex\types\users\userindex
class Pipeline extends PropertyObject \grav\common\assets\pipeline
class InlineJsModule extends BaseAsset \grav\common\assets\inlinejsmodule
class Css extends BaseAsset \grav\common\assets\css
class UserGroupObject extends FlexObject implements UserGroupInterface \grav\common\flex\types\usergroups\usergroupobject
class Js extends BaseAsset \grav\common\assets\js
class InlineCss extends BaseAsset \grav\common\assets\inlinecss
class JsModule extends BaseAsset \grav\common\assets\jsmodule
class InlineJs extends BaseAsset \grav\common\assets\inlinejs
class BlueprintSchema extends BlueprintSchemaBase implements ExportInterface \grav\common\data\blueprintschema
class Validation \grav\common\data\validation
class Link extends BaseAsset \grav\common\assets\link
class BlockAssets \grav\common\assets\blockassets
class Blueprint extends BlueprintForm \grav\common\data\blueprint
class Backups \grav\common\backup\backups
class ValidationException extends RuntimeException implements JsonSerializable \grav\common\data\validationexception
class Blueprints \grav\common\data\blueprints
class TwigNodeLink extends Node implements NodeCaptureInterface \grav\common\twig\node\twignodelink
class TwigNodeStyle extends Node implements NodeCaptureInterface \grav\common\twig\node\twignodestyle
class TwigException extends RuntimeException \grav\common\twig\exception\twigexception
class TwigNodeSwitch extends Node \grav\common\twig\node\twignodeswitch
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 JsonFile extends DataFile \grav\framework\file\jsonfile
  class File extends AbstractFile \grav\framework\file\file
class RouteFactory \grav\framework\route\routefactory
class Route \grav\framework\route\route
class RequestHandler implements RequestHandlerInterface \grav\framework\requesthandler\requesthandler
class Exceptions implements MiddlewareInterface \grav\framework\requesthandler\middlewares\exceptions
class FormFlashFile implements UploadedFileInterface, JsonSerializable \grav\framework\form\formflashfile
  class FileCollection extends AbstractFileCollection \grav\framework\collection\filecollection
class NotHandledException extends NotFoundException \grav\framework\requesthandler\exception\nothandledexception
class InvalidArgumentException extends \InvalidArgumentException \grav\framework\requesthandler\exception\invalidargumentexception
class MultipartRequestSupport implements MiddlewareInterface \grav\framework\requesthandler\middlewares\multipartrequestsupport
class PageExpiredException extends RequestException \grav\framework\requesthandler\exception\pageexpiredexception
  class PaginationPage extends AbstractPaginationPage \grav\framework\pagination\paginationpage
  class Pagination extends AbstractPagination \grav\framework\pagination\pagination
class HtmlBlock extends ContentBlock implements HtmlBlockInterface \grav\framework\contentblock\htmlblock
class UriPartsFilter \grav\framework\uri\uripartsfilter
  class Uri extends AbstractUri \grav\framework\uri\uri
class Flex implements FlexInterface \grav\framework\flex\flex
class FlexDirectory implements FlexDirectoryInterface \grav\framework\flex\flexdirectory
class FlexIdentifier extends Identifier \grav\framework\flex\flexidentifier
class FlexDirectoryForm implements FlexDirectoryFormInterface, JsonSerializable \grav\framework\flex\flexdirectoryform
class FlexFormFlash extends FormFlash \grav\framework\flex\flexformflash
class FlexForm implements FlexObjectFormInterface, JsonSerializable \grav\framework\flex\flexform
class Relationships implements RelationshipsInterface \grav\framework\relationships\relationships
  class SimpleStorage extends AbstractFilesystemStorage \grav\framework\flex\storage\simplestorage
class ToOneRelationship implements ToOneRelationshipInterface \grav\framework\relationships\toonerelationship
class ToManyRelationship implements ToManyRelationshipInterface \grav\framework\relationships\tomanyrelationship
class Permissions implements ArrayAccess, Countable, IteratorAggregate \grav\framework\acl\permissions
class Action implements IteratorAggregate, Countable \grav\framework\acl\action
class RecursiveActionIterator implements RecursiveIterator, \Countable \grav\framework\acl\recursiveactioniterator
class PermissionsReader \grav\framework\acl\permissionsreader
class CsvFile extends DataFile \grav\framework\file\csvfile
class MarkdownFile extends DataFile \grav\framework\file\markdownfile
class YamlFile extends DataFile \grav\framework\file\yamlfile
class IniFile extends DataFile \grav\framework\file\inifile
  class JsonFormatter extends AbstractFormatter \grav\framework\file\formatter\jsonformatter
  class CsvFormatter extends AbstractFormatter \grav\framework\file\formatter\csvformatter
  class SerializeFormatter extends AbstractFormatter \grav\framework\file\formatter\serializeformatter
  class IniFormatter extends AbstractFormatter \grav\framework\file\formatter\iniformatter
  class YamlFormatter extends AbstractFormatter \grav\framework\file\formatter\yamlformatter
  class MarkdownFormatter extends AbstractFormatter \grav\framework\file\formatter\markdownformatter
class Filesystem implements FilesystemInterface \grav\framework\filesystem\filesystem
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 MimeTypes \grav\framework\mime\mimetypes
class UriFactory \grav\framework\uri\urifactory
class Inflector \grav\common\inflector
class Security \grav\common\security
class Browser \grav\common\browser
class Grav extends Container \grav\common\grav
class Uri \grav\common\uri
class Composer \grav\common\composer
class Debugger \grav\common\debugger
class Plugins extends Iterator \grav\common\plugins
class Pages \grav\common\page\pages
  class Media extends AbstractMedia \grav\common\page\media
class Page implements PageInterface \grav\common\page\page
class Types implements \ArrayAccess, \Iterator, \Countable \grav\common\page\types
class Collection extends Iterator implements PageCollectionInterface \grav\common\page\collection
class CompiledMarkdownFile extends MarkdownFile \grav\common\file\compiledmarkdownfile
class CompiledYamlFile extends YamlFile \grav\common\file\compiledyamlfile
class CompiledJsonFile extends JsonFile \grav\common\file\compiledjsonfile
class FormFlash extends FrameworkFormFlash \grav\common\form\formflash
class Config extends Data \grav\common\config\config
class Languages extends Data \grav\common\config\languages
class CompiledConfig extends CompiledBase \grav\common\config\compiledconfig
class CompiledLanguages extends CompiledBase \grav\common\config\compiledlanguages
class Link implements RenderableInterface, MediaLinkInterface \grav\common\page\medium\link
class MediumFactory \grav\common\page\medium\mediumfactory
class VideoMedium extends Medium implements VideoMediaInterface \grav\common\page\medium\videomedium
class VectorImageMedium extends StaticImageMedium \grav\common\page\medium\vectorimagemedium
class ThumbnailImageMedium extends ImageMedium \grav\common\page\medium\thumbnailimagemedium
  class GlobalMedia extends AbstractMedia \grav\common\page\medium\globalmedia
class AudioMedium extends Medium implements AudioMediaInterface \grav\common\page\medium\audiomedium
class ImageFile extends Image \grav\common\page\medium\imagefile
class Access extends \Grav\Framework\Acl\Access \grav\common\user\access
class Group extends Data \grav\common\user\group
class Language \grav\common\language\language
class LanguageCodes \grav\common\language\languagecodes
class UserCollection implements UserCollectionInterface \grav\common\user\datauser\usercollection
class RecursiveDirectoryFilterIterator extends RecursiveFilterIterator \grav\common\filesystem\recursivedirectoryfilteriterator
class User extends DataUser\User \grav\common\user\user
class CompiledBlueprints extends CompiledBase \grav\common\config\compiledblueprints
class Parsedown extends \Parsedown \grav\common\markdown\parsedown
class Setup extends Data \grav\common\config\setup
class ConfigFileFinder \grav\common\config\configfilefinder
class Scheduler \grav\common\scheduler\scheduler
class Job \grav\common\scheduler\job
class ParsedownExtra extends \ParsedownExtra \grav\common\markdown\parsedownextra
class Cron \grav\common\scheduler\cron
class Messages implements \Serializable \grav\framework\session\messages
class UploadedMediaObject implements MediaObjectInterface \grav\framework\media\uploadedmediaobject
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 Theme extends Plugin \grav\common\theme
class Session extends \Grav\Framework\Session\Session \grav\common\session
class Stream implements StreamInterface \grav\framework\psr7\stream
class Response implements ResponseInterface \grav\framework\psr7\response
class Uri implements UriInterface \grav\framework\psr7\uri
class Request implements RequestInterface \grav\framework\psr7\request
class ServerRequest implements ServerRequestInterface \grav\framework\psr7\serverrequest
class UploadedFile implements UploadedFileInterface \grav\framework\psr7\uploadedfile
class MediaObject implements MediaObjectInterface \grav\framework\media\mediaobject
class MediaIdentifier extends Identifier \grav\framework\media\mediaidentifier
class Assets extends PropertyObject \grav\common\assets
class Header implements ArrayAccess, ExportInterface, JsonSerializable \grav\common\page\header
class DataFile extends AbstractFile \grav\framework\file\datafile
class PropertyObject implements NestedObjectInterface, ArrayAccess \grav\framework\object\propertyobject
class ObjectCollection extends ArrayCollection implements NestedObjectCollectionInterface \grav\framework\object\objectcollection
class Identifier implements IdentifierInterface \grav\framework\object\identifiers\identifier
class AbstractFileCollection extends AbstractLazyCollection implements FileCollectionInterface \grav\framework\collection\abstractfilecollection
class FolderStorage extends AbstractFilesystemStorage \grav\framework\flex\storage\folderstorage
class NotFoundException extends RequestException \grav\framework\requesthandler\exception\notfoundexception
class FileStorage extends FolderStorage \grav\framework\flex\storage\filestorage
class AbstractPagination implements PaginationInterface \grav\framework\pagination\abstractpagination
class FlexPageObject extends FlexObject implements PageInterface, FlexTranslateInterface \grav\framework\flex\pages\flexpageobject
class FormFlash implements FormFlashInterface \grav\framework\form\formflash
class FlexPageCollection extends FlexCollection \grav\framework\flex\pages\flexpagecollection
class FlexPageIndex extends FlexIndex \grav\framework\flex\pages\flexpageindex
class Session implements SessionInterface \grav\framework\session\session
class Plugin implements EventSubscriberInterface, ArrayAccess \grav\common\plugin
class User extends Data implements UserInterface \grav\common\user\datauser\user
class Iterator implements \ArrayAccess, \Iterator, \Countable, \Serializable \grav\common\iterator
class CachedCollection extends Iterator \grav\common\gpm\common\cachedcollection
class Package \grav\common\gpm\common\package
class Application extends \Symfony\Component\Console\Application \grav\console\application\application
class AbstractPackageCollection extends BaseCollection \grav\common\gpm\remote\abstractpackagecollection
class GravCommand extends Command \grav\console\gravcommand
class AbstractFile implements FileInterface \grav\framework\file\abstractfile
class UserObject extends FlexObject implements UserInterface, Countable \grav\common\flex\types\users\userobject
class ConsoleCommand extends Command \grav\console\consolecommand
class GpmCommand extends Command \grav\console\gpmcommand