Index: core/install/cache/class_structure.php =================================================================== --- core/install/cache/class_structure.php +++ core/install/cache/class_structure.php @@ -5,7 +5,7 @@ * This file is automatically @generated. Use 'php tools/build_class_map.php' to rebuild it. */ return array( - 'cache_format' => 1, + 'cache_format' => 2, 'classes' => array( 'AdminEventsHandler' => '/core/units/admin/admin_events_handler.php', 'AdminTagProcessor' => '/core/units/admin/admin_tag_processor.php', @@ -338,4 +338,2200 @@ 'kZendPDFRenderer' => '/core/units/pdf/pdf_renderer_zend.php', 'kiCacheable' => '/core/kernel/interfaces/cacheable.php', ), + 'class_info' => array( + 'AdminEventsHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'AdminTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'AjaxFormHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'ApcCacheHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCacheHandler', + ), + ), + 'BackupHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'BaseSession' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'BaseSessionStorage' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBBase', + ), + ), + 'CacheSettings' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'CaptchaEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kEventHandler', + ), + ), + 'CategoriesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'CategoriesItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'CategoriesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'CategoryHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'CategoryItemRewrite' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'CategoryItemsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'CategoryItemsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'CategoryPermissionRebuild' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'ChangeLog' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'ChangeLogEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ChangeLogTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ColumnSet' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'ConfigSearchEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ConfigSearchTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ConfigurationEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ConfigurationItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'ConfigurationTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ConfigurationValidator' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kValidator', + ), + ), + 'ContentEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ContentTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'CoreUpgrades' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kUpgradeHelper', + ), + ), + 'CountryStateEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'CssMinifyHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'CustomDataEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'CustomFieldsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'CustomFieldsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'Debugger' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'DebuggerUtil' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'DeploymentHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'DraftEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'EditPickerHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'EmailDelivery' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'EmailLogEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'EmailLogStatus' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'EmailLogTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'EmailQueueEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'EmailQueueTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'EmailTemplate' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'EmailTemplateEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'EmailTemplateTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'FakeCacheHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCacheHandler', + ), + ), + 'FavoritesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'FckEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'FckTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'FileEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'FileHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'FileTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'FormFieldEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'FormFieldsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'FormSubmissionHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'FormSubmissionTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'FormSubmissionsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'FormsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'FormsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'GeoCodeHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'GroupTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'GroupsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'IDBConnection' => array( + 'type' => 2, + ), + 'ImageEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ImageHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'ImageTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ImagesItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'InPortalPrerequisites' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'InpCustomFieldsHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'Intechnic\\InPortal\\Core\\kernel\\utility\\ClassDiscovery\\ClassDetector' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'PhpParser\\NodeVisitorAbstract', + ), + ), + 'Intechnic\\InPortal\\Core\\kernel\\utility\\ClassDiscovery\\ClassMapBuilder' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'Intechnic\\InPortal\\Core\\kernel\\utility\\ClassDiscovery\\CodeFolderFilterIterator' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'RecursiveFilterIterator', + ), + ), + 'ItemFilterEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ItemFilterTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'JSONHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'JsMinifyHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'Language' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'LanguageImportHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'LanguagesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'LanguagesItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'LanguagesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'LeftJoinOptimizer' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'ListHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'LoginResult' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'MInputHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'MailboxHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'MailingList' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'MailingListEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'MailingListHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'MailingListTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'MaintenanceMode' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'MassImageResizer' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'MemcacheCacheHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCacheHandler', + ), + ), + 'MenuHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'MimeDecodeHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'MinifyHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'ModuleDeploymentLog' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'ModuleDeploymentLogEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ModulesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ModulesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'NParser' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'NParserCompiler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'POP3Helper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'PageHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'PageRevisionEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PageRevisionTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'Params' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'ParserException' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'Exception', + ), + ), + 'PasswordHash' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'PasswordHashingMethod' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'PermissionTypeEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PermissionsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PermissionsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'PhraseTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'PhrasesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PriorityEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PromoBlockEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PromoBlockGroupEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PromoBlockGroupTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'PromoBlockTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'PromoBlockType' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'RatingHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'RelatedSearchEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'RelatedSearchTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'RelationshipEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'RelationshipTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ReviewsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ReviewsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ScheduledTask' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'ScheduledTaskEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'SelectorsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'SelectorsItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'SelectorsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'Session' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'BaseSession', + ), + ), + 'SessionLogEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'SessionStorage' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'BaseSessionStorage', + ), + ), + 'SiteConfigEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kEventHandler', + ), + ), + 'SiteConfigHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'SiteConfigTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kTagProcessor', + ), + ), + 'SiteDomainEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'SiteHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'SkinEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'SkinHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'SpamHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'SpamReportEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'SpamReportTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'StatisticsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'StatisticsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'StorageEngine' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'StylesheetsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'StylesheetsItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'SubmissionFormField' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'SubmissionLogEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'SubmissionLogTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'SystemEventSubscriptionEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'SystemEventSubscriptionTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'SystemLogEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'SystemLogTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'TemplateHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'TemplatesCache' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'ThemeFileEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ThemeItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'ThemesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ThemesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ThesaurusEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ThesaurusTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'TranslationSaveMode' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'TranslatorEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'TranslatorTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'UnitConfigDecorator' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'UserGroupsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'UserHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'UserProfileEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'UserProfileTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'UserType' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'UsersEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'UsersItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'UsersSyncronize' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'UsersSyncronizeManager' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'UsersTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'VisitsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'VisitsList' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBList', + ), + ), + 'VisitsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'XCacheCacheHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCacheHandler', + ), + ), + 'XMLIterator' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'Iterator', + ), + ), + '_BlockTag' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + '_Tag_Cache' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + '_Tag_Capture' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_Tag_DefineElement', + ), + ), + '_Tag_Comment' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + '_Tag_Compress' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + '_Tag_DefaultParam' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + '_Tag_DefineElement' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + '_Tag_If' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + '_Tag_IfDataExists' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + '_Tag_IfNot' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_Tag_If', + ), + ), + '_Tag_Include' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + '_Tag_Param' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + '_Tag_RenderElement' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_Tag_DefineElement', + ), + ), + '_Tag_RenderElements' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + '_Tag_SetParam' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => '_BlockTag', + ), + ), + 'clsCachedPermissions' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'clsRecursionStack' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'fckFCKHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kApplication' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kiCacheable', + ), + ), + 'kArray' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + 1 => 'kiCacheable', + ), + ), + 'kBase' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kBracketsHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kCCDateFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kCSSDefaults' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kCSVHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kCache' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kCacheHandler' => array( + 'type' => 1, + 'modifiers' => 1, + ), + 'kCacheManager' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + 1 => 'kiCacheable', + ), + ), + 'kCaptchaHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kCatDBEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'kCatDBItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'kCatDBItemExportHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kCatDBList' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBList', + ), + ), + 'kCatDBTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'kChangesFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kChartHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kClipboardHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kColumnPickerHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kCookieHasher' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kCountHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kCountryStatesHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kCronField' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kCronHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kCurlHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kCustomFieldFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kDBBase' => array( + 'type' => 1, + 'modifiers' => 1, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kDBConnection' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + 1 => 'IDBConnection', + ), + ), + 'kDBConnectionDebug' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBConnection', + ), + ), + 'kDBEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kEventHandler', + ), + ), + 'kDBItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBBase', + ), + ), + 'kDBList' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBBase', + 1 => 'Iterator', + 2 => 'Countable', + ), + ), + 'kDBLoadBalancer' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + 1 => 'IDBConnection', + ), + ), + 'kDBTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kTagProcessor', + ), + ), + 'kDateFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kEmail' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kEmailSendingHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kEmailTemplateHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kErrorHandlerStack' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHandlerStack', + ), + ), + 'kEvent' => array( + 'type' => 1, + 'modifiers' => 2, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kEventManager' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + 1 => 'kiCacheable', + ), + ), + 'kExceptionHandlerStack' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHandlerStack', + ), + ), + 'kFactory' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + 1 => 'kiCacheable', + ), + ), + 'kFactoryException' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'Exception', + ), + ), + 'kFilenamesHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kFilesizeFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kHTTPQuery' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'Params', + ), + ), + 'kHandlerStack' => array( + 'type' => 1, + 'modifiers' => 1, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kHookManager' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + 1 => 'kiCacheable', + ), + ), + 'kInstallToolkit' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kInstallator' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kLEFTFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kLogger' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kMainTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kTagProcessor', + ), + ), + 'kModulesHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kMultiLanguage' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kMultiLanguageHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kMultipleFilter' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kMySQLQuery' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'Iterator', + 1 => 'Countable', + 2 => 'SeekableIterator', + ), + ), + 'kMySQLQueryCol' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kMySQLQuery', + ), + ), + 'kNavigationBar' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kNoPermissionException' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kRedirectException', + ), + ), + 'kOpenerStack' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kOptionsFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kPDFElemFactory' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kPDFElement' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kPDFHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kPDFImage' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kPDFElement', + ), + ), + 'kPDFLine' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kPDFElement', + ), + ), + 'kPDFRenderer' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kPDFStylesheet' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kPDFTable' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kPDFElement', + ), + ), + 'kPDFTableRow' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kPDFElement', + ), + ), + 'kPDFTextElement' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kPDFElement', + ), + ), + 'kPasswordFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kPermCacheUpdater' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kPermissionsHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kPhraseCache' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kPictureFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kUploadFormatter', + ), + ), + 'kPlainUrlProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kUrlProcessor', + ), + ), + 'kPriorityHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kRecursiveHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kRedirectException' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'Exception', + ), + ), + 'kRequestManager' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kRewriteUrlProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kUrlProcessor', + ), + ), + 'kScheduledTaskManager' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + 1 => 'kiCacheable', + ), + ), + 'kSearchHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kSectionsHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kSerializedFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kSocket' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kSubscriptionAnalyzer' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kSubscriptionItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kSubscriptionManager' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kSystemConfig' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kSystemConfigException' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'Exception', + ), + ), + 'kTCPDFRenderer' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kPDFRenderer', + ), + ), + 'kTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kTempHandlerSubTable' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kTempHandlerTable', + ), + ), + 'kTempHandlerTable' => array( + 'type' => 1, + 'modifiers' => 1, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kTempHandlerTopTable' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kTempHandlerTable', + ), + ), + 'kTempTablesHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kThemesHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kUnitConfig' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kUnitConfigCloner' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + 1 => 'kiCacheable', + ), + ), + 'kUnitConfigReader' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + 1 => 'kiCacheable', + ), + ), + 'kUnitFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kUpgradeHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kUploadFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kUploadHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kUploaderException' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'Exception', + ), + ), + 'kUrlManager' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kUrlProcessor' => array( + 'type' => 1, + 'modifiers' => 1, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kUtil' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kValidator' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kXMLHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kXMLNode' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'kXMLNode5' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kXMLNode', + 1 => 'IteratorAggregate', + ), + ), + 'kZendPDFRenderer' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kPDFRenderer', + ), + ), + 'kiCacheable' => array( + 'type' => 2, + ), + ), ); Index: core/kernel/application.php =================================================================== --- core/kernel/application.php +++ core/kernel/application.php @@ -2275,6 +2275,19 @@ } /** + * Returns sub-classes of given ancestor class. + * + * @param string $ancestor_class Ancestor class. + * @param boolean $concrete_only Return only non-abstract classes. + * + * @return array + */ + public function getSubClasses($ancestor_class, $concrete_only = true) + { + return $this->Factory->getSubClasses($ancestor_class, $concrete_only); + } + + /** * Checks if application is in debug mode * * @param bool $check_debugger check if kApplication debugger is initialized too, not only for defined DEBUG_MODE constant Index: core/kernel/managers/cache_manager.php =================================================================== --- core/kernel/managers/cache_manager.php +++ core/kernel/managers/cache_manager.php @@ -302,7 +302,7 @@ { // maybe discover keys automatically from corresponding classes $cache_keys = Array ( - 'Factory.Files', 'Factory.Namespaces', 'Factory.realClasses', + 'Factory.Files', 'Factory.ClassInfo', 'Factory.ClassTree', 'Factory.Namespaces', 'Factory.realClasses', 'ConfigReader.prefixFiles', 'ConfigCloner.clones', 'EventManager.beforeHooks', 'EventManager.afterHooks', 'EventManager.scheduledTasks', 'EventManager.buildEvents', 'Application.ReplacementTemplates', 'Application.RewriteListeners', 'Application.ModuleInfo', Index: core/kernel/utility/ClassDiscovery/ClassDetector.php =================================================================== --- core/kernel/utility/ClassDiscovery/ClassDetector.php +++ core/kernel/utility/ClassDiscovery/ClassDetector.php @@ -16,7 +16,10 @@ use PhpParser\Node; +use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassLike; +use PhpParser\Node\Stmt\Interface_; +use PhpParser\Node\Stmt\Trait_; use PhpParser\NodeVisitorAbstract; defined('FULL_PATH') or die('restricted access!'); @@ -58,7 +61,54 @@ public function enterNode(Node $node) { if ( $node instanceof ClassLike ) { - $this->classMapBuilder->addClass((string)$node->namespacedName); + $class_info = array(); + + if ( $node instanceof Class_ ) { + $class_info['type'] = \kFactory::TYPE_CLASS; + $class_info['modifiers'] = 0; + + if ( $node->isAbstract() ) { + $class_info['modifiers'] |= \kFactory::MODIFIER_ABSTRACT; + } + + if ( $node->isFinal() ) { + $class_info['modifiers'] |= \kFactory::MODIFIER_FINAL; + } + + $extends = array(); + + if ( $node->extends ) { + $extends[] = (string)$node->extends; + } + + if ( $node->implements ) { + foreach ( $node->implements as $interface ) { + $extends[] = (string)$interface; + } + } + + if ( $extends ) { + $class_info['extends'] = $extends; + } + } + elseif ( $node instanceof Interface_ ) { + $class_info['type'] = \kFactory::TYPE_INTERFACE; + + if ( $node->extends ) { + $extends = array(); + + foreach ( $node->extends as $interface ) { + $extends[] = (string)$interface; + } + + $class_info['extends'] = $extends; + } + } + elseif ( $node instanceof Trait_ ) { + $class_info['type'] = \kFactory::TYPE_TRAIT; + } + + $this->classMapBuilder->addClass((string)$node->namespacedName, $class_info); } } Index: core/kernel/utility/ClassDiscovery/ClassMapBuilder.php =================================================================== --- core/kernel/utility/ClassDiscovery/ClassMapBuilder.php +++ core/kernel/utility/ClassDiscovery/ClassMapBuilder.php @@ -25,7 +25,7 @@ class ClassMapBuilder { - const CACHE_FORMAT = 1; + const CACHE_FORMAT = 2; const CACHE_FILE_STRUCTURE = 'class_structure.php'; @@ -53,11 +53,18 @@ protected $classToFileMap = array(); /** - * List of classes, declared in each file (key - file, value - class list). + * Class information used during cache building (file > class > class_info). * * @var array */ - protected $fileToClassMap = array(); + protected $buildingCache = array(); + + /** + * Class information (type, extends, implements, etc.). + * + * @var array + */ + protected $classInfo = array(); /** * Stores hash of each file on given path. @@ -152,7 +159,7 @@ } /** - * Returns class map, that was build previously. + * Returns class map and class information, that was built previously. * * @return array */ @@ -160,7 +167,7 @@ { $this->load(self::CACHE_FILE_STRUCTURE, false); - return $this->classToFileMap; + return array($this->classToFileMap, $this->classInfo); } /** @@ -172,8 +179,8 @@ public function build() { if ( !class_exists('PhpParser\Parser') ) { - $error_msg = 'PHP Parser not found. '; - $error_msg .= 'Make sure, that Composer dependencies were installed using "php composer.phar install --dev" command.'; + $error_msg = 'PHP Parser not found. Make sure, that Composer dependencies were '; + $error_msg .= 'installed using "php composer.phar install --dev" command.'; throw new \RuntimeException($error_msg); } @@ -201,6 +208,7 @@ ksort($this->classToFileMap); ksort($this->fileHashes); + ksort($this->classInfo); $this->store(self::CACHE_FILE_STRUCTURE); $this->store(self::CACHE_FILE_HASHES); @@ -237,22 +245,25 @@ $cache = include $file_path; - if ( $cache['cache_format'] < self::CACHE_FORMAT ) { + if ( $cache['cache_format'] != self::CACHE_FORMAT ) { return; } if ( $filename === self::CACHE_FILE_STRUCTURE ) { + $class_info = $cache['class_info']; + if ( $for_writing ) { foreach ( $cache['classes'] as $class => $file ) { - if ( !isset($this->fileToClassMap[$file]) ) { - $this->fileToClassMap[$file] = array(); + if ( !isset($this->buildingCache[$file]) ) { + $this->buildingCache[$file] = array(); } - $this->fileToClassMap[$file][] = $class; + $this->buildingCache[$file][$class] = $class_info[$class]; } } else { $this->classToFileMap = $cache['classes']; + $this->classInfo = $class_info; } } elseif ( $filename === self::CACHE_FILE_HASHES ) { @@ -330,15 +341,14 @@ if ( $current_hash === $previous_hash ) { // File wasn't change since time, when cache was built. - if ( isset($this->fileToClassMap[$file]) ) { - foreach ( $this->fileToClassMap[$file] as $class ) { - $this->addClass($class); + if ( isset($this->buildingCache[$file]) ) { + foreach ( $this->buildingCache[$file] as $class => $class_info ) { + $this->addClass($class, $class_info); } } } else { // Parse file, because it's content doesn't match the cache. - $this->fileToClassMap[$file] = array(); $this->fileHashes[$file] = $current_hash; $statements = $this->parser->parse($code); @@ -360,6 +370,7 @@ if ( $filename === self::CACHE_FILE_STRUCTURE ) { $cache['classes'] = $this->classToFileMap; + $cache['class_info'] = $this->classInfo; } elseif ( $filename === self::CACHE_FILE_HASHES ) { $cache['file_hashes'] = $this->fileHashes; @@ -422,14 +433,15 @@ /** * Adds class to the map. * - * @param string $class Class. + * @param string $class Class. + * @param array $class_info Class info. * * @return void */ - public function addClass($class) + public function addClass($class, array $class_info) { + $this->classInfo[$class] = $class_info; $this->classToFileMap[$class] = $this->currentFile; - $this->fileToClassMap[$this->currentFile][] = $class; } } Index: core/kernel/utility/factory.php =================================================================== --- core/kernel/utility/factory.php +++ core/kernel/utility/factory.php @@ -18,6 +18,13 @@ class kFactory extends kBase implements kiCacheable { + const TYPE_CLASS = 1; + const TYPE_INTERFACE = 2; + const TYPE_TRAIT = 3; + + const MODIFIER_ABSTRACT = 1; + const MODIFIER_FINAL = 2; + /** * Mapping between class name and file name * where class definition can be found. @@ -29,6 +36,20 @@ protected $classMap = Array (); /** + * Class information. + * + * @var array + */ + protected $classInfo = array(); + + /** + * Information about class usage among other classes. + * + * @var array + */ + protected $classTree = array(); + + /** * The PSR-4 compliant namespace-to-folder mapping. * * @var array @@ -91,11 +112,24 @@ } foreach ( $class_map_builders as $class_map_builder ) { - $class_map = $class_map_builder->get(); + list($class_map, $class_info) = $class_map_builder->get(); $class_names = array_keys($class_map); $this->classMap = array_merge($this->classMap, $class_map); + $this->classInfo = array_merge($this->classInfo, $class_info); $this->realClasses = array_merge($this->realClasses, array_combine($class_names, $class_names)); + + foreach ( $class_info as $class => $class_data ) { + if ( isset($class_data['extends']) ) { + foreach ( $class_data['extends'] as $extends_class ) { + if ( !isset($this->classTree[$extends_class]) ) { + $this->classTree[$extends_class] = array(); + } + + $this->classTree[$extends_class][] = $class; + } + } + } } } @@ -109,6 +143,8 @@ public function setFromCache(&$data) { $this->classMap = $data['Factory.Files']; + $this->classInfo = $data['Factory.ClassInfo']; + $this->classTree = $data['Factory.ClassTree']; $this->namespaceMap = $data['Factory.Namespaces']; $this->realClasses = $data['Factory.realClasses']; } @@ -191,11 +227,15 @@ public function getToCache() { ksort($this->classMap); + ksort($this->classInfo); + ksort($this->classTree); ksort($this->namespaceMap); ksort($this->realClasses); return Array ( 'Factory.Files' => $this->classMap, + 'Factory.ClassInfo' => $this->classInfo, + 'Factory.ClassTree' => $this->classTree, 'Factory.Namespaces' => $this->namespaceMap, 'Factory.realClasses' => $this->realClasses, ); @@ -352,6 +392,65 @@ } /** + * Returns sub-classes of given ancestor class. + * + * @param string $ancestor_class Ancestor class. + * @param boolean $concrete_only Return only non-abstract classes. + * + * @return array + * @throws kFactoryException When ancestor class not found. + */ + public function getSubClasses($ancestor_class, $concrete_only = true) + { + if ( !isset($this->classMap[$ancestor_class]) ) { + throw new kFactoryException( + 'Class "<strong>' . $ancestor_class . '</strong>" is not registered in the Factory' + ); + } + + if ( !isset($this->classTree[$ancestor_class]) ) { + return array(); + } + + $all_sub_classes = array(); + + foreach ( $this->classTree[$ancestor_class] as $sub_class ) { + $real_sub_class = $this->realClasses[$sub_class]; + $all_sub_classes[$real_sub_class] = $sub_class; + $all_sub_classes = array_merge($all_sub_classes, $this->getSubClasses($sub_class, false)); + } + + if ( $concrete_only ) { + $concrete_sub_classes = array(); + + foreach ( $all_sub_classes as $real_sub_class => $sub_class ) { + if ( $this->classInfo[$sub_class]['type'] == self::TYPE_CLASS + && !$this->classHasModifier($sub_class, self::MODIFIER_ABSTRACT) + ) { + $concrete_sub_classes[$real_sub_class] = $sub_class; + } + } + + return $concrete_sub_classes; + } + + return $all_sub_classes; + } + + /** + * Determines of class has modifier. + * + * @param string $class Class. + * @param integer $modifier Modifier. + * + * @return boolean + */ + protected function classHasModifier($class, $modifier) + { + return ($this->classInfo[$class]['modifiers'] & $modifier) == $modifier; + } + + /** * Registers new class in the factory * * @param string $real_class Real name of class as in class declaration Index: modules/custom/install/cache/class_structure.php =================================================================== --- modules/custom/install/cache/class_structure.php +++ modules/custom/install/cache/class_structure.php @@ -5,7 +5,7 @@ * This file is automatically @generated. Use 'php tools/build_class_map.php' to rebuild it. */ return array( - 'cache_format' => 1, + 'cache_format' => 2, 'classes' => array( 'CustomEventHandler' => '/modules/custom/units/sections/custom_eh.php', 'CustomUpgrades' => '/modules/custom/install/upgrades.php', @@ -24,4 +24,118 @@ 'WidgetEventHandler' => '/modules/custom/units/widgets/widget_eh.php', 'WidgetTagProcessor' => '/modules/custom/units/widgets/widget_tp.php', ), + 'class_info' => array( + 'CustomEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kEventHandler', + ), + ), + 'CustomUpgrades' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kUpgradeHelper', + ), + ), + 'EArticleEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'ArticlesEventHandler', + ), + ), + 'EArticleTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'ArticlesTagProcessor', + ), + ), + 'ECategoryEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'CategoriesEventHandler', + ), + ), + 'ECategoryTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'CategoriesTagProcessor', + ), + ), + 'ELinkEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'LinksEventHandler', + ), + ), + 'ELinkTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'LinkTagProcessor', + ), + ), + 'EProductEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'ProductsEventHandler', + ), + ), + 'EProductTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'ProductsTagProcessor', + ), + ), + 'EReviewEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'ReviewsEventHandler', + ), + ), + 'EUserEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'UsersEventHandler', + ), + ), + 'EUserTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'UsersTagProcessor', + ), + ), + 'SampleHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'WidgetEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'WidgetTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + ), ); Index: modules/in-auction/install/cache/class_structure.php =================================================================== --- modules/in-auction/install/cache/class_structure.php +++ modules/in-auction/install/cache/class_structure.php @@ -5,7 +5,7 @@ * This file is automatically @generated. Use 'php tools/build_class_map.php' to rebuild it. */ return array( - 'cache_format' => 1, + 'cache_format' => 2, 'classes' => array( 'CatSelectHelper' => '/modules/in-auction/units/helpers/catselect_helper.php', 'CategoryListingEventHandler' => '/modules/in-auction/units/category_listing/category_listing_eh.php', @@ -32,4 +32,165 @@ 'eBaySOAP' => '/modules/in-auction/units/helpers/ebay_soap.php', 'eBaySession' => '/modules/in-auction/units/helpers/ebay_soap.php', ), + 'class_info' => array( + 'CatSelectHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'CategoryListingEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'CategoryListingTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'DetailTemplateEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'EbayEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kEventHandler', + ), + ), + 'EbayShippingEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'EbayShippingTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'EbayTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ErrorLogEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ErrorLogTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'InAuctionPrerequisites' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'InAuctionUpgrades' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kUpgradeHelper', + ), + ), + 'ListingEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ListingItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'ListingTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ProductListingEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ProductListingTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ScheduleEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'XMLHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'Xml' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'eBayHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'eBayPlatformNotificationListener' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'eBaySOAP' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'SoapClient', + ), + ), + 'eBaySession' => array( + 'type' => 1, + 'modifiers' => 0, + ), + ), ); Index: modules/in-bulletin/install/cache/class_structure.php =================================================================== --- modules/in-bulletin/install/cache/class_structure.php +++ modules/in-bulletin/install/cache/class_structure.php @@ -5,7 +5,7 @@ * This file is automatically @generated. Use 'php tools/build_class_map.php' to rebuild it. */ return array( - 'cache_format' => 1, + 'cache_format' => 2, 'classes' => array( 'EmoticonEventHandler' => '/modules/in-bulletin/units/emoticons/emoticon_eh.php', 'InBulletinPrerequisites' => '/modules/in-bulletin/install/prerequisites.php', @@ -22,4 +22,104 @@ 'TopicsEventHandler' => '/modules/in-bulletin/units/topics/topics_event_handler.php', 'TopicsTagProcessor' => '/modules/in-bulletin/units/topics/topics_tag_processor.php', ), + 'class_info' => array( + 'EmoticonEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'InBulletinPrerequisites' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'InBulletinUpgrades' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kUpgradeHelper', + ), + ), + 'PollCommentEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PollEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PollTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'PostEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PostHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'PostTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'PrivateMessageBodyEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PrivateMessageEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PrivateMessageTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'TopicsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCatDBEventHandler', + ), + ), + 'TopicsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCatDBTagProcessor', + ), + ), + ), ); Index: modules/in-commerce/install/cache/class_structure.php =================================================================== --- modules/in-commerce/install/cache/class_structure.php +++ modules/in-commerce/install/cache/class_structure.php @@ -5,7 +5,7 @@ * This file is automatically @generated. Use 'php tools/build_class_map.php' to rebuild it. */ return array( - 'cache_format' => 1, + 'cache_format' => 2, 'classes' => array( 'AddressesEventHandler' => '/modules/in-commerce/units/addresses/addresses_event_handler.php', 'AddressesItem' => '/modules/in-commerce/units/addresses/addresses_item.php', @@ -117,4 +117,739 @@ 'kSellaGuestPayGW' => '/modules/in-commerce/units/gateways/gw_classes/sella_guestpay.php', 'kVerisignPfLinkGW' => '/modules/in-commerce/units/gateways/gw_classes/verisign_pflink.php', ), + 'class_info' => array( + 'AddressesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'AddressesItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'AddressesList' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBList', + ), + ), + 'AddressesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'AffiliatePaymentTypeTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'AffiliatePaymentTypesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'AffiliatePaymentsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'AffiliatePaymentsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'AffiliatePlansBracketsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'AffiliatePlansBracketsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'AffiliatePlansEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'AffiliatePlansItemsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'AffiliatePlansItemsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'AffiliatesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'AffiliatesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'BankLVCurrencyRates' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'CurrencyRates', + ), + ), + 'BracketsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'BracketsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'CouponItemType' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'CouponItemsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'CouponItemsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'CouponType' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'CouponsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'CouponsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'CurrenciesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'CurrenciesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'CurrencyRates' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'CustomShippingQuoteEngine' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'ShippingQuoteEngine', + ), + ), + 'DiscountItemType' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'DiscountItemsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'DiscountItemsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'DiscountType' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'DiscountsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'DownloadHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'DstEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ECBCurrencyRates' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'CurrencyRates', + ), + ), + 'FRNYCurrencyRates' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'CurrencyRates', + ), + ), + 'FilesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'FilesItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'GatewayEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'GatewayTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'GiftCertificateEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'GiftCertificateTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'InCommerceEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kEventHandler', + ), + ), + 'InCommercePrerequisites' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'InCommerceUpgrades' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kUpgradeHelper', + ), + ), + 'Intershipper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'ShippingQuoteEngine', + ), + ), + 'ManufacturersEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ManufacturersTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'OptionCombinationPriceType' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'OptionType' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'OrderCalculator' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'OrderCheckoutError' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'OrderCheckoutErrorType' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'OrderHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'OrderItemsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'OrderItemsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'OrderManager' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'OrderValidator' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kValidator', + ), + ), + 'OrdersEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'OrdersItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'OrdersTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'PaymentTypeCurrenciesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PaymentTypeCurrenciesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'PaymentTypeEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PaymentTypeTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'PricingEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'PricingTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ProductBackorder' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'ProductInventory' => array( + 'type' => 1, + 'modifiers' => 0, + ), + 'ProductOptionCombinationsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ProductOptionCombinationsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ProductOptionsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ProductOptionsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ProductsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCatDBEventHandler', + ), + ), + 'ProductsItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCatDBItem', + ), + ), + 'ProductsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCatDBTagProcessor', + ), + ), + 'ReportsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ReportsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ShippingCostsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ShippingEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ShippingQuoteCollector' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'ShippingQuoteEngine', + ), + ), + 'ShippingQuoteEngine' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'ShippingQuoteEngineEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ShippingTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'TaxDstEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'TaxesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'TaxesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'USPS' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'ShippingQuoteEngine', + ), + ), + 'ZonesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ZonesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'kAtosOriginGW' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kCombPriceFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kCombinationFormatter' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kFormatter', + ), + ), + 'kGWAuthorizeNet' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kGWBase' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kBase', + ), + ), + 'kGWGoogleCheckout' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kGWPayPal' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kGWPaypalDirect' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kGWRightConnect' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kGWWorldPay' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kGWiDEALnl' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kMultiCardsGW' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kPOCItem' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBItem', + ), + ), + 'kPayboxGW' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kPaymentechGW' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kProductOptionsHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'kSellaGuestPayGW' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + 'kVerisignPfLinkGW' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kGWBase', + ), + ), + ), ); Index: modules/in-link/install/cache/class_structure.php =================================================================== --- modules/in-link/install/cache/class_structure.php +++ modules/in-link/install/cache/class_structure.php @@ -5,7 +5,7 @@ * This file is automatically @generated. Use 'php tools/build_class_map.php' to rebuild it. */ return array( - 'cache_format' => 1, + 'cache_format' => 2, 'classes' => array( 'InLinkPrerequisites' => '/modules/in-link/install/prerequisites.php', 'InLinkUpgrades' => '/modules/in-link/install/upgrades.php', @@ -20,4 +20,90 @@ 'ListingsEventHandler' => '/modules/in-link/units/listings/listings_event_handler.php', 'ListingsTagProcessor' => '/modules/in-link/units/listings/listings_tag_processor.php', ), + 'class_info' => array( + 'InLinkPrerequisites' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'InLinkUpgrades' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kUpgradeHelper', + ), + ), + 'LinkHelper' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'LinkTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCatDBTagProcessor', + ), + ), + 'LinkValidationEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'LinkValidationTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'LinkVisitEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'LinksEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCatDBEventHandler', + ), + ), + 'ListingTypesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ListingTypesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + 'ListingsEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBEventHandler', + ), + ), + 'ListingsTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kDBTagProcessor', + ), + ), + ), ); Index: modules/in-news/install/cache/class_structure.php =================================================================== --- modules/in-news/install/cache/class_structure.php +++ modules/in-news/install/cache/class_structure.php @@ -5,11 +5,41 @@ * This file is automatically @generated. Use 'php tools/build_class_map.php' to rebuild it. */ return array( - 'cache_format' => 1, + 'cache_format' => 2, 'classes' => array( 'ArticlesEventHandler' => '/modules/in-news/units/articles/articles_event_handler.php', 'ArticlesTagProcessor' => '/modules/in-news/units/articles/articles_tag_processor.php', 'InNewsPrerequisites' => '/modules/in-news/install/prerequisites.php', 'InNewsUpgrades' => '/modules/in-news/install/upgrades.php', ), + 'class_info' => array( + 'ArticlesEventHandler' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCatDBEventHandler', + ), + ), + 'ArticlesTagProcessor' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kCatDBTagProcessor', + ), + ), + 'InNewsPrerequisites' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kHelper', + ), + ), + 'InNewsUpgrades' => array( + 'type' => 1, + 'modifiers' => 0, + 'extends' => array( + 0 => 'kUpgradeHelper', + ), + ), + ), );