Skip to content

Latest commit

 

History

History
153 lines (116 loc) · 14.5 KB

UPGRADING.md

File metadata and controls

153 lines (116 loc) · 14.5 KB

v12.2 to v12.3

For admins

Change .yml configuration files

Up to version 12.2, the Content Publisher used the YAML parser [Spyc] for parsing the configuration files. Since TYPO3 now ships with a YAML parser, we now use this parser to reduce the code we have to maintain. This change has some impact on the configuration files. Please read [60149-Change-ReplaceSpycWithSymfonyYaml.md] for details on how to adjust your configuration files.

For developers

The core events PublishingOfOneRecordBegan and PublishingOfOneRecordEnded were replaced. Please read 54638-Deprecation-PublishingOfOneRecordBegan_Ended.md.

v12.1 to v12.2

For developers

The core events PublishingOfOneRecordBegan and PublishingOfOneRecordEnded were replaced. Please read 54638-Deprecation-PublishingOfOneRecordBegan_Ended.md.

v11 to v12

For users

Performance

The single most important reason to release the new version 12 is to improve the overall performance. We have rewritten the core of the Content Publisher to reduce the time and computing power required to show the record tree. This change will significantly enhance your Content Publisher experience.

We measured the performance of the upcoming version 12 of the Content Publisher on real life projects. In the best case, up to an amazing 96% fewer queries and 88.4% faster loading times of the Overview Module can be measured. The new version is particularly effective for pages with a large number of data records of the same type, such as large news folders. This was also the weak point of the old version. On average, we get 67% more performance and 76% fewer queries.

Publish Files Module

The Publish Files Module showed files based on the indices TYPO3 created. This had many drawbacks, including bad performance, representation of files with multiple indices, and you could never be sure which record was actually published. To fix this, we changed the module to show information based on the actual files. This aligns the view with the Files module of TYPO3. You should not see any other differences.

Publish Overview Module

You can now select the depth of the record tree you want to see in the Publish Overview Module.

For admins

The configuration ignoreFieldsForDifferenceView was replaced with a more powerful solution which supports regular expressions and is now called ignoredFields.

The feature SimplifiedOverviewAndPublishing, which existed exclusively for the purpose of performance improvements on the cost of integrity, was removed.

For developers

Since everything in the Content Publisher core changed, there are a lot of things that changed for our fellow developers and adaptors. First of all, we changed how the Content Publisher resolves relations from an recursive leaves-first approach to an iterative collect-and-execute approach. This reduces the amount of database queries enormously. This change also means that all events, the primary means of interaction for developers, had to be reworked. Some events have been eliminated, others have been added and some have been slightly modified. You can find the changes to the events in detail in the changelog for the events.

Detailed technical information can be found in the file 25505-BreakingChanges-QueryAggregation.md (link).

v10 to v11

For users & admins

The Publish Files Module was rewritten and comes with a new interface. It shows the same files as before, but it contains some new controls. Have a look at the editors documentation which contains some screenshots and descriptions.

For developers

  • General
    • The FAL handling got overhauled. The settings factory.fal.finder and factory.fal.publisher were introduced. They replace the enterprise edition setting features.simpleFiles.enable. See 48269-Config-SimpleFilesEnableChanged.md for more information.
  • Controller:
    • The method runTasks was moved. Use the RunTasks trait to trigger task execution.
    • The templating was rewritten on the basis of the trait ControllerModuleTemplate. CSS and JS can be still added in the template but is discouraged.
    • AdminTools: Please use the trait AdminToolsModuleTemplate in your AdminTool Controller.
  • Enhancement:
    • Instead of \TYPO3\CMS\Core\Core\Event\BootCompletedEvent, listen to the event ExtTablesPostProcessingEvent which the Content Publisher adds as a quality replacement for $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['extTablesInclusion-PostProcessing'].
  • View/ViewHelper: (Adapt your templates/partials accordingly.)
    • TYPO3 Removed the PaginationViewHelper. We are now using the new "pagination API".
    • Some ViewHelpers were deleted, because they are not required anymore.
    • The ToolsWhite layout was removed. Please use Default instead.
  • Services
    • Classes that implement FalFinder, FalPublisher, and PostProcessor are now automatically registered and public.

v9 to v10

For users & admins

There were no changes to the UI or behavior of the Content Publisher.

For developers

Replace signal slots by PSR-14 events

TYPO3 deprecated the Signal Slot Dispatcher in TYPO3 v10 and introduced PSR-14 Events as a replacement. To keep track with this change, all Content Publisher Signals are replaced with Events, too. This change is backwards compatible in the version 10 of in2publish_core. The backwards compatibility layer will be removed in in2publish_core v11, because that version will only be compatible with TYPO3 v11, where the Signal Slot Dispatcher will be removed.

The following table lists all signals of in2publish_core with their event replacement:

Signal Class Signal Name Event
In2code\In2publishCore\Domain\Model\RecordInterface isPublishable VoteIfRecordIsPublishable
In2code\In2publishCore\Domain\Factory\RecordFactory instanceCreated (RecordFactory) RecordInstanceWasInstantiated
In2code\In2publishCore\Domain\Factory\RecordFactory rootRecordFinished RootRecordCreationWasFinished
In2code\In2publishCore\Domain\Factory\RecordFactory addAdditionalRelatedRecords AllRelatedRecordsWereAddedToOneRecord
In2code\In2publishCore\Domain\Repository\CommonRepository afterRecordEnrichment (deprecated!) RecordWasEnriched
In2code\In2publishCore\Domain\Repository\CommonRepository relationResolverRTE RelatedRecordsByRteWereFetched
In2code\In2publishCore\Domain\Repository\CommonRepository publishRecordRecursiveBegin RecursiveRecordPublishingBegan
In2code\In2publishCore\Domain\Repository\CommonRepository publishRecordRecursiveEnd RecursiveRecordPublishingEnded
In2code\In2publishCore\Domain\Repository\CommonRepository publishRecordRecursiveBeforePublishing PublishingOfOneRecordBegan
In2code\In2publishCore\Domain\Repository\CommonRepository publishRecordRecursiveAfterPublishing PublishingOfOneRecordEnded
In2code\In2publishCore\Domain\Repository\CommonRepository shouldSkipRecord VoteIfRecordShouldBeSkipped
In2code\In2publishCore\Domain\Repository\CommonRepository shouldIgnoreRecord VoteIfRecordShouldBeIgnored
In2code\In2publishCore\Domain\Repository\CommonRepository shouldSkipEnrichingPageRecord VoteIfPageRecordEnrichingShouldBeSkipped
In2code\In2publishCore\Domain\Repository\CommonRepository shouldSkipFindByIdentifier VoteIfFindingByIdentifierShouldBeSkipped
In2code\In2publishCore\Domain\Repository\CommonRepository shouldSkipFindByProperty VoteIfFindingByPropertyShouldBeSkipped
In2code\In2publishCore\Domain\Repository\CommonRepository shouldSkipSearchingForRelatedRecordByTable VoteIfSearchingForRelatedRecordsByTableShouldBeSkipped
In2code\In2publishCore\Domain\Repository\CommonRepository shouldSkipSearchingForRelatedRecords VoteIfSearchingForRelatedRecordsShouldBeSkipped
In2code\In2publishCore\Domain\Repository\CommonRepository shouldSkipSearchingForRelatedRecordsByFlexForm VoteIfSearchingForRelatedRecordsByFlexFormShouldBeSkipped
In2code\In2publishCore\Domain\Repository\CommonRepository shouldSkipSearchingForRelatedRecordsByFlexFormProperty VoteIfSearchingForRelatedRecordsByFlexFormPropertyShouldBeSkipped
In2code\In2publishCore\Domain\Repository\CommonRepository shouldSkipSearchingForRelatedRecordsByProperty VoteIfSearchingForRelatedRecordsByPropertyShouldBeSkipped
In2code\In2publishCore\Controller\FileController folderInstanceCreated FolderInstanceWasCreated
In2code\In2publishCore\Controller\RecordController beforeDetailViewRender RecordWasCreatedForDetailAction
In2code\In2publishCore\Controller\RecordController beforePublishing RecordWasSelectedForPublishing
In2code\In2publishCore\Controller\ToolsController collectSupportPlaces CreatedDefaultHelpLabels
In2code\In2publishCore\Testing\Data\FalStorageTestSubjectsProvider filterStorages StoragesForTestingWereFetched
In2code\In2publishCore\Domain\Service\Publishing\FolderPublisherService afterPublishingFolder FolderWasPublished
In2code\In2publishCore\Controller\AbstractController checkUserAllowedToPublish VoteIfUserIsAllowedToPublish
In2code\In2publishCore\Testing\Data\RequiredTablesDataProvider overruleTables RequiredTablesWereIdentified