- Jul 16, 2019
-
-
Benni Mack authored
The new PSR-14 standard for dispatching Events (that is: to extend a Framework without having to modify a frameworks' code) adds a EventDispatcher object that can dispatch Event objects to EventListeners. In PSR-14 every dispatched event is an object. It uses PHP class names as identifiers for events. Class hierarchies may be used to group events. A ListenerProvider object collects available listeners from an extension and allows to listen and/or modify data provided by the Event object. The current implementation relies on a custom TYPO3-specific ListenerProvider that is configured using Symfony's Dependency Injection tags. As an example the Mailer-postProcInitialization signal/slot is replaced by an Event. This first patch introduces the feature, and does not deprecate anything yet. The most important part is that new Events can use this API instead of Hooks in TYPO3 v10. Short-Term goal is to deprecate SignalSlot dispatcher in TYPO3 v10, and migrate all signals to the EventDispatcher. Resolves: #88770 Releases: master Change-Id: I3649ddb9b9340640199279e6af3c040bffc397fe Signed-off-by:
Benni Mack <benni@typo3.org> Signed-off-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61303 Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Tested-by:
Georg Ringer <georg.ringer@gmail.com>
-
Daniel Windloff authored
Collapse single tables in multi table view of the DatabaseRecordList is invoked via javascript and its state is saved via AJAX. Remove the leftover code, which allows to set the collapse state via _GP('collapse'). Resolves: #88753 Releases: master Change-Id: Ibd02364c54563b76caf6e4f36ae9c8853b1d99c6 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61294 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Björn Jacob <bjoern.jacob@tritum.de> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com>
-
Benni Mack authored
ResourceCompressor allows to only concatenate files given in a given "baseDirectory" as separate option, which was used to only include files that are registered via TBE_STYLES for backend purposes. The functionality is removed to always concatenate all CSS files in TYPO3 Backend. A heavy dependency to DocumentTemplate of ALL backend functionality using PageRenderer is therefore removed. Resolves: #88758 Releases: master Change-Id: I07e2f15a3dd2298371db87ce2723ded0f6a56f31 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61296 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de>
-
- Jul 15, 2019
-
-
Johannes Seipelt authored
Fix the translation key typo as suggested to show the correct error message if the password does not match the confirmation Resolves: #88691 Releases: master, 9.5 Change-Id: I8524bf7faee507782d79633d3b5afd9a0077ad6c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61292 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Björn Jacob <bjoern.jacob@tritum.de> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Björn Jacob <bjoern.jacob@tritum.de> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
Susanne Moog authored
Resolves: #88765 Releases: master Change-Id: I26ca496a954b44f8cb08d770ecd544d35583ee6c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61299 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Alexander Schnitzler <review.typo3.org@alexanderschnitzler.de> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Alexander Schnitzler <review.typo3.org@alexanderschnitzler.de> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com>
-
Benni Mack authored
The following database fields from "tt_content" have been removed: * tt_content.spaceBefore (now used via space_before_class) * tt_content.spaceAfter (now used via space_after_class) Resolves: #88744 Releases: master Change-Id: I2da1645b94b68fadb2945c2f1708809e2e9cbab4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61286 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Daniel Goerz <daniel.goerz@posteo.de> Tested-by:
Frank Naegler <frank.naegler@typo3.org> Reviewed-by:
Daniel Goerz <daniel.goerz@posteo.de> Reviewed-by:
Frank Naegler <frank.naegler@typo3.org>
-
Oliver Hader authored
The backend users module (ext:beuser) persists previously defined filter combinations in be_users.uc fields of the according user. When a "user group" is defined in the filter, Extbase architecture internals get serialized and persisted as well which has performance impacts and most probably will exceed storage (16M) of be_users.uc field. It is enough to store the uid of the according be_groups entity. Resolves: #86361 Releases: master, 9.5, 8.7 Change-Id: I61ba4993d9594b1074546255e7d5c2d5506819fb Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61117 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Markus Klein <markus.klein@typo3.org> Tested-by:
Alexander Schnitzler <review.typo3.org@alexanderschnitzler.de> Tested-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-by:
Markus Klein <markus.klein@typo3.org> Reviewed-by:
Julian Geils <j_geils@web.de> Reviewed-by:
Daniel Goerz <daniel.goerz@posteo.de> Reviewed-by:
Alexander Schnitzler <review.typo3.org@alexanderschnitzler.de> Reviewed-by:
Benjamin Franzke <bfr@qbus.de>
-
- Jul 14, 2019
-
-
Andreas Fernandez authored
With #87324 some code of FormEngine was moved into separated modules. In the very same patch, most of the code was rewritten to use native JavaScript as much as possible. However, with this change, `TBE_EDITOR.fieldChanged()` was partially broken as it uses jQuery's `triggerHandler` method to trigger a specific event. Events that are registered via jQuery's `on()` method work fine, but the approach is incompatible with JavaScript's native `addEventListener()` introduced in the mentioned change. As a quick fix, `TBE_EDITOR.fieldChanged()` now triggers the same event for native JavaScript code via `dispatchEvent()`. Resolves: #88738 Related: #87324 Releases: master Change-Id: I38fbb97f86f6765a45ad763c27e7afdac5754b1c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61278 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de>
-
Benni Mack authored
The property "vanillaParentPageTca " inside FormEngine is never used - also documented that it was never used before. The property is therefore removed. Resolves: #88669 Releases: master Change-Id: I71166ea44764d8bdc4b0c309a43f45f46309780f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61207 Tested-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by:
Björn Jacob <bjoern.jacob@tritum.de> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
Georg Ringer authored
If a table is defined as readonly, the controls should not be visible in the record list. The DataHandler respects already the setting but the UI did miss it. Resolves: #88708 Releases: master,9.5 Change-Id: I22db9f613b9c63e3b0e3fcffba9989089c0e7bc2 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61243 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Julian Geils <j_geils@web.de> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Julian Geils <j_geils@web.de> Reviewed-by:
Markus Klein <markus.klein@typo3.org> Reviewed-by:
Guido Schmechel <guido.schmechel@brandung.de> Reviewed-by:
Benni Mack <benni@typo3.org>
-
- Jul 13, 2019
-
-
Benni Mack authored
In DocumentTemplate there is always one header call to define that everything is HTML and UTF-8. Since we do PSR-7 in Backend Context, this should be handled by the Response object, which we already do. This should normally be a bugfix for existing stable versions, although I'm very unsure on how this could affect any side-effects where extensions rely on this behavior for years (!) already, so this is master-only. OTOH this change should not affect anything in regular BE modules as they work with PSR-7 since TYPO3 v7 already. Resolves: #88743 Releases: master Change-Id: I20fb4844ca661c47eb1d56b6d20a8f2c58b17796 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61285 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Tested-by:
Daniel Goerz <daniel.goerz@posteo.de> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Daniel Goerz <daniel.goerz@posteo.de>
-
Guido Schmechel authored
Correction of the example regarding the user ID. Resolves: #88723 Releases: master, 9.5 Change-Id: I1823377c72997ec20bc36b3689e46fe16ded9127 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61282 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Björn Jacob <bjoern.jacob@tritum.de> Tested-by:
Daniel Goerz <daniel.goerz@posteo.de> Reviewed-by:
Björn Jacob <bjoern.jacob@tritum.de> Reviewed-by:
Daniel Goerz <daniel.goerz@posteo.de>
-
Anja Leichsenring authored
Adjusted tenses, unified sentence structure, adjusted code highlightning. Resolves: #88745 Releases: master, 9.5 Change-Id: I8accf6340be6c683220be950efb60c602344e05a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61287 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Björn Jacob <bjoern.jacob@tritum.de> Tested-by:
Daniel Goerz <daniel.goerz@posteo.de> Reviewed-by:
Björn Jacob <bjoern.jacob@tritum.de> Reviewed-by:
Daniel Goerz <daniel.goerz@posteo.de>
-
Benjamin Franzke authored
Transform InfoModuleController and it's dependency ModuleTemplate into a symfony manageed services to retrieve dependencies from symfony instead of GeneralUtility::makeInstance. ModuleTemplate is a prototype and is therefore marked shared: false. It is marked public: true so legacy calls to GeneralUtility::makeInstance(ModuleTemplate::class) resort to the container and properly inject dependencies. Also add a backend.controller symfony tag, to be universally applied for backend controllers. This tag automatically configures the controller to be publicly available from $container->get() which allows the route dispatcher to lazily instantiate the controller. Releases: master Resolves: #88721 Change-Id: I076c306736243e693542f2774dbe1108e28fe731 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61246 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Steffen Frese <steffenf14@gmail.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Steffen Frese <steffenf14@gmail.com> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Andreas Fernandez authored
The ImportExportController is responsible for exporting and importing data, which is a bit too much. In order to streamline the import/export functionality, the controller has been split into two controllers. Due to this, the route to the ImportExportController has no effect anymore, but is kept for bc reasons. Resolves: #88662 Releases: master Change-Id: If2beb9da8d65b6a054b616832712017df2a9c6b2 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61202 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Daniel Windloff authored
The usage has been deprecated in TYPO3 v9. Related: #87354 Resolves: #88733 Releases: master Change-Id: I4594adb2ba0885c4a2094c0a6108902165e26138 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61275 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Gerrit Mohrmann authored
In TYPO3\CMS\Frontend\Hooks\FrontendHooks->displayPreviewInfoMessage() is now checked, that the config.disablePreviewNotification is set. Resolves: #88653 Releases: master, 9.5 Change-Id: I0fc81b3aa40f46189cbb90854a401c806e5b25a2 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61171 Tested-by:
Benjamin Franzke <bfr@qbus.de> Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-by:
Julian Geils <j_geils@web.de> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Benni Mack authored
This patch re-arranges the TYPO3 Core internally used middlewares for lifting off the weight of $GLOBALS['TSFE'] as Site Handling already introduced a lot of functionality which can now be utilized further. For this reason, the Frontend Rendering chain has been adapted. * If there is a "Site" + "Language" resolved, this information can be used directly, as there are no dependencies currently. * Frontend + Backend User Authentication works regardless of TSFE, Frontend User is added to the Request object as attribute to be added to TSFE later-on. * Resolving the Page ("slug") and mapping them to Page Arguments (URL parts + GET parameters) as well as validation against cHash is fully decoupled from TSFE. After that, TSFE is instantiated, which now gets all resolved objects injected. TSFE now only resolves the rootline against the proper permissions (auth) and validates the final page. Once done, TypoScript is compiled / cached. TSFE still contains the rootline, TypoScript, and the information about which non-cacheables are there. RequestHandler creates or fetches cached content, but currently piped through TSFE. This should be simplified further later-on. Resolves: #88717 Releases: master Change-Id: I12807455fd8b01493b2da45cf73a5c532b108cbe Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61155 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de>
-
Benni Mack authored
cHash is now added automatically when a URL is generated. The relevant query parameters when indexing are stored in "static_page_arguments", which allows to remove the database field "cHashParams". Therefor it is not necessary anymore to configure if cHash should be taken into account when creating a configuration for indexed search. Instead, when linking to a page on a search result, the page arguments are added. In addition, when pages are indexed, only the static page arguments are evaluated. Debug Information when indexing is also adding data more sensibly via json_encode/decode. Effectively, this means that specific handling for cHash resolving is fully removed from EXT:indexed_search. Related: #87193 Resolves: #88741 Releases: master Change-Id: I84738612d42615a3ac24d271c5509b52467d81af Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61284 Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de>
-
- Jul 12, 2019
-
-
Daniel Windloff authored
The method "localizationRedirect" in PageLayoutView, DatabaseRecordList and EditDocumentController were almost equal. The usage has been streamlined and the methods in PageLayoutView and DatabaseRecordList has been removed. Resolves: #88724 Releases: master Change-Id: I9c458e16d10c61c54e81bee61fc64aad675ac130 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61249 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Frank Naegler <frank.naegler@typo3.org> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Frank Naegler <frank.naegler@typo3.org> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
Andreas Fernandez authored
The removed code in tbe_editor.js as in #88667 contained some special handling for invalid forms. In case a form was considered invalid, a modal was rendered explaining to check the form. This code is now added again in FormEngine's validation module as a DocumentSaveAction callback. Resolves: #88728 Related: #88667 Releases: master Change-Id: I221da830ac33a2f92480bdc933374850bcc35c11 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61273 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Frank Naegler <frank.naegler@typo3.org> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Frank Naegler <frank.naegler@typo3.org>
-
Simon Gilli authored
The function merge of TYPO3\CMS\Core\Configuration\Loader\YamlFileLoader is moved to TYPO3\CMS\Core\Utility\ArrayUtillity to have it globally available. Resolves: #88652 Releases: master Change-Id: Icf200c89edb572ea2424ae0bcf8292e6dbb3de6a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61168 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Jan Stockfisch <typo3@jan-stockfisch.de> Tested-by:
Frank Naegler <frank.naegler@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Jan Stockfisch <typo3@jan-stockfisch.de> Reviewed-by:
Frank Naegler <frank.naegler@typo3.org>
-
Sascha Egerer authored
The YouTube renderer added options to the YouTube url that do not have any effect anymore as they are deprecrated since ages. Resolves: #87914 Releases: master, 9.5, 8.7 Change-Id: I80bf26040634e11c31b984395e0c9238de89e1e8 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/60249 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Julian Geils <j_geils@web.de> Tested-by:
Steffen Frese <steffenf14@gmail.com> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Frank Naegler <frank.naegler@typo3.org> Tested-by:
Tobi Kretschmann <tobi@tobishome.de> Reviewed-by:
Julian Geils <j_geils@web.de> Reviewed-by:
Guido Schmechel <guido.schmechel@brandung.de> Reviewed-by:
Steffen Frese <steffenf14@gmail.com> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Frank Naegler <frank.naegler@typo3.org> Reviewed-by:
Tobi Kretschmann <tobi@tobishome.de>
-
Frank Naegler authored
This patch removes a compiled JS file which TypeScript source was removed some weeks ago with #88518 Resolves: #88735 Related: #88518 Change-Id: I28044e1b40bc154abc15b6d272d44310b8a1acf4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61276 Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by:
Steffen Frese <steffenf14@gmail.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Steffen Frese <steffenf14@gmail.com> Tested-by:
Benni Mack <benni@typo3.org>
-
Andreas Fernandez authored
With #88665 some JavaScript code and superfluous event "registration" was removed. It turns out that the event stuff was not that superfluous and is still required with the Link Browser to properly update the field values. Resolves: #88729 Related: #88665 Releases: master Change-Id: I78a5e65f42a978245e31d478b83d82949c26ac17 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61272 Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Frank Naegler <frank.naegler@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Markus Klein <markus.klein@typo3.org> Reviewed-by:
Frank Naegler <frank.naegler@typo3.org>
-
Daniel Windloff authored
* Add a message for the user * Adjust context menu to new route * Split functionality in an own controller class Resolves: #88718 Releases: master Change-Id: Ibb96e4f5770004be54fee0f50a335db8f3282759 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61245 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Steffen Frese <steffenf14@gmail.com> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Tobi Kretschmann <tobi@tobishome.de> Reviewed-by:
Steffen Frese <steffenf14@gmail.com> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Tobi Kretschmann <tobi@tobishome.de>
-
Ricky authored
This patch adds a fieldname parameter to the DataHandler localize translateToMessage hook. The fieldname helps hook objects to identify the currently processed field. Thus based on the field, the hook can make some decisions on translate. Resolves: #84844 Releases: master, 9.5, 8.7 Change-Id: If7b05f017ed1cdbc777d8cda18fce84f9a01ac04 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/56957 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Tobi Kretschmann <tobi@tobishome.de> Tested-by:
Steffen Frese <steffenf14@gmail.com> Tested-by:
Julian Geils <j_geils@web.de> Tested-by:
Dieter Porth <d.porth@neusta.de> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Dieter Porth <d.porth@neusta.de> Reviewed-by:
Tobi Kretschmann <tobi@tobishome.de> Reviewed-by:
Steffen Frese <steffenf14@gmail.com> Reviewed-by:
Julian Geils <j_geils@web.de> Reviewed-by:
Jan Stockfisch <typo3@jan-stockfisch.de> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de>
-
- Jul 11, 2019
-
-
Benni Mack authored
The global state array "T3_VAR" for keeping some legacy functionality has been removed. It is not in used by TYPO3 Core anymore, the last occurrence for "injecting" some data into Indexed Search indexing has been removed, as SingletonInterface, hooks and the possibility to provide ones' own indexer for custom download extensions should be used instead. Resolves: #88660 Releases: master Change-Id: I5a587271983c6bb4ae6709c0140e818c4c1eb572 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61197 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Steffen Frese <steffenf14@gmail.com> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Steffen Frese <steffenf14@gmail.com> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Benjamin Franzke authored
This feature is a combined approach using two containers/concepts: 1) symfony/dependency-injection (now exposed as official TYPO3 API): Supports: autoconfiguration, autowiring using Service.{yaml,php} files 2) service providers (fork of the experimental interfaces in container-interop/service-provider, sometimes called PSR-11+) Supports: factory-style configuration using plain php code provided for internal use and possible future public use. 1) Symfony dependency injection is provided to be used by extensions and throughout the TYPO3 core for (auto)wiring of services (classes). Extensions can control symfony's dependency injection use a file located in Configuration/Services.yaml, if they need more flexibility they may also use Configuration/Services.php which can use symfony's ContainerConfigurator or ContainerBuilder. 2) Service providers are used (within TYPO3 core) to provide dependency injection for services used in the install tool which require failsafe boot. This is based on container-interop/service-provider. container-interop/service-provider is supposed to become a PSR but is still marked experimental, therefore this commit adds an implementation to TYPO3 provided for internal use only – it is not public API. We do still include it (as @interal fork) right now, to adapt to this upcoming PSR from the very beginning, in order to actually push the development of this proposal forward. Service providers in failsafe mode are consumed by a simplistic, non-compiled container. Symfony's container is too slow when running uncached (as the compilation, recursive directory lookups and autowiring needs to be performed on every invocation). We do not want caching for recovery maintenance tasks which would not be able to recover from scenarios with broken caches. Services that are configured through service providers, are both available in the non compiled install tool container and in the symfony container. They do *not* need to be defined twice. The two "worlds" are bridged using a ServiceProviderCompilerPass which creates symfony DI definitions from service-provider factories. The code is a derivative of the code from the (outdated) symfony bundle thecodingmachine/service-provider-bridge-bundle. Features -------- * inject* methods are now supported for all classes (not just Extbase) It is suggested to use constructor based injection, this feature is available to provide maximum compatibility to the old Extbase DI. * Autoconfiguration based on interface implementation. (current) autoconfigured interface are: SingletonInterface, MiddlewareInterface, RequestHandlerInterface, LoggerAwareInterface, ControllerInterface, ViewHelperInterface (we expect more to follow in subsequent commits) Included adaptions ------------------ In order to demonstrate and to be able to verify the features of this patch, some classes are adapted to use or support dependency injection: * RedirectHandler/RedirectService autowired/autoconfigured * Application classes and their dependencies are manually wired in service providers. This is required as the application runs in fail- safe mode when there is no configuration available (first install) * MiddlewareStack is composed in service providers and injected as a RequestHandler into the Http\Application classes (in order to prevent injecting the Container, which would be an anti pattern). * Middleware configuration is treated as service (like a registry), and retrieval is provided through service providers (the service providers default to the existing middleware configuration format) * The Middleware dispatcher now first tries to retrieve classes from the PSR-11 container, falling back to makeInstance if not available * Dependency Injection using symfony for all core Extbase Controllers * A Services.yaml is added for each core extension which contains classes that are used in frontend/backend context * A LateBoot service is added for install tool DI vs ext_localconf – loading order, legacy makeInstance support ---------------------------------------------------------------- Dependency Injection containers solve most of the tasks that ext_localconf.php and GeneralUtility::makeInstance solve for Singletons: Service configuration and instance management. (Symfony) DI could therefore be used to replace both in the long run. Both are doing similar tasks when talking about Singletons: They create and configure services that are stored and shared in a central memory storage (container for DI, GU::$singletonInstances for our legacy TYPO3 case). That means they both actually conflict right now – in terms of: Who is responsible for creating a class? We've made a decision to connect these both: GeneralUtility::makeInstance will offload instantiation to the Container if the class is a) available and b) no runtime constructor arguments have been passed to makeInstance (which symfony DI doesn't support). The DI container itself does provides backwards compatibility to XCLASSES and class aliases use a new internal helper method makeInstanceForDi. ext_localconf's main design flaw is the mixture of initialization and configuration composition without assurance that all configuration is available before a configuration-dependent class is instantiated. Proper DI first reads all configuration and then performs all service injections on demand and pre calculated using a dependency tree – and therefore always in proper sequence. What we *don't* want (+ reasons) ------------------------------- * Symfony Bundles pro: provide a defined way for container configuration) con: Requires the Symfony HTTP kernel which is not compatible with PSR7 * Usage of Symfony\DependencyInjection\ExtensionInterface con: It is not useful as it cannot add new compiler passes * Handling of prototypes that need dependency injection *and* a way to to get custom constructor arguments passed (individual per class) While symfony DI can handle prototypes (called 'shared: false'), it does not support passing constructor arguments like the Extbase object manager does. We'll advocate to using a factory pattern for those prototypes instead. * Circular dependencies: This is not supported by symfony DI and isn't possible with service providers either Future changes (left out for brevity) ------------------------------------- * (cli) Build tool to warmup DI cache/state during deployment * Adaptions to (all) core dispatchers to prefer a PSR-11 container over GeneralUtility::makeInstance Dependency changes ------------------ composer require symfony/dependency-injection:^4.1 symfony/config:^4.1 Releases: master Resolves: #88689 Resolves: #84112 Change-Id: I8efd817066b528a5953c56fdd027cb94b2bb8eb3 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/58255 Tested-by:
Tobi Kretschmann <tobi@tobishome.de> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Alexander Schnitzler <review.typo3.org@alexanderschnitzler.de> Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-by:
Tobi Kretschmann <tobi@tobishome.de> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Alexander Schnitzler <review.typo3.org@alexanderschnitzler.de> Reviewed-by:
Benjamin Franzke <bfr@qbus.de>
-
Georg Ringer authored
The TypoScript which is created by the Install Tool should use the new @import syntax. Resolves: #88623 Releases: master, 9.5 Change-Id: I661cbe7bbc659c6ea804f4b131aa49fc7abca92a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61244 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Josef Glatz <josefglatz@gmail.com> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Björn Jacob <bjoern.jacob@tritum.de> Tested-by:
Steffen Frese <steffenf14@gmail.com> Tested-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-by:
Josef Glatz <josefglatz@gmail.com> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Björn Jacob <bjoern.jacob@tritum.de> Reviewed-by:
Steffen Frese <steffenf14@gmail.com> Reviewed-by:
Dieter Porth <d.porth@neusta.de> Reviewed-by:
Julian Geils <j_geils@web.de> Reviewed-by:
Benjamin Franzke <bfr@qbus.de>
-
Eric Chavaillaz authored
The cards "Rebuild PHP Autoload Information" and "Update TYPO3 Core" show information about, how to update and trigger the autoload in composer mode. Resolves: #88434 Releases: master, 9.5 Change-Id: Ia7990d333bfaaef09a598b197cf3e461d5da6dd5 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/60812 Tested-by:
Eric Chavaillaz <eric@hemmer.ch> Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Julian Geils <j_geils@web.de> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Frank Naegler <frank.naegler@typo3.org> Reviewed-by:
Eric Chavaillaz <eric@hemmer.ch> Reviewed-by:
Julian Geils <j_geils@web.de> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Frank Naegler <frank.naegler@typo3.org>
-
- Jul 10, 2019
-
-
Georg Ringer authored
If no title is provided for a table in the TCA (ctrl|title), the wizard for creating new records must not fail with an exception. Resolves: #88642 Releases: master, 9.5 Change-Id: Icdda8fdc4e8eb37a09cb8b918fc39b732c28d5b1 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61165 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Julian Geils <j_geils@web.de> Tested-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Julian Geils <j_geils@web.de> Reviewed-by:
Benjamin Franzke <bfr@qbus.de>
-
- Jul 09, 2019
-
-
Susanne Moog authored
With the symfony mail component recipient addresses should be instantiated and used as either `Address` or `NamedAddress` object instead of an associative array. The patch introduces usage of both. Resolves: #88702 Releases: master Change-Id: Ie592d93c6cc191da873478e59830900a66ea9aeb Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61237 Tested-by:
Benjamin Franzke <bfr@qbus.de> Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Jan Stockfisch authored
Resolves: #88706 Releases: master Change-Id: Ic32c33947c18adc9d4547c8ab7582e40c8474a69 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61241 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Henning Liebe <h.liebe@neusta.de> Tested-by:
Tobi Kretschmann <tobi@tobishome.de> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Steffen Frese <steffenf14@gmail.com> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Henning Liebe <h.liebe@neusta.de> Reviewed-by:
Tobi Kretschmann <tobi@tobishome.de> Reviewed-by:
Benni Mack <benni@typo3.org>
-
- Jul 08, 2019
-
-
Daniel Siepmann authored
Relates: #88643 Releases: master Change-Id: Ie1dc52cdbf98b040f2d9bdacdcad3f82c2b4b364 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61238 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Benjamin Franzke <bfr@qbus.de>
-
Alexander Schnitzler authored
According to PSR-7 request objects should be immutable. That can only be achieved if the state of the request object is defined during construction. Therefore, the web request object of Extbase mustn't have any service dependencies that alter the state of the object during runtime. Although there are still setters that can alter the state of request objects, the more crucial issue with the object state were the injected services. Releases: master Resolves: #88697 Change-Id: Iedf6fc3d33a1e5b89bce20019cbfc484b1466cf8 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61235 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Benjamin Franzke <bfr@qbus.de>
-
- Jul 05, 2019
-
-
Benni Mack authored
Switch from GeneralUtility::_GP() to PSR-7 in EXT:tstemplate. All occurrences are replaced by proper Object-Oriented coding. Resolves: #88582 Releases: master Change-Id: I4cb94601f1c6bbe62025f40f92154f40ec051ce8 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/60993 Tested-by:
Daniel Goerz <daniel.goerz@posteo.de> Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by:
Daniel Goerz <daniel.goerz@posteo.de> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de>
-
Alexander Grein authored
Resolves: #88116 Releases: master, 9.5 Change-Id: If7e84e2c8681b8cf52d513b9520564012d8f8b73 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/60426 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Daniel Goerz <daniel.goerz@posteo.de> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Daniel Goerz <daniel.goerz@posteo.de> Reviewed-by: Daniel Windloff Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
Alexander Schnitzler authored
- Use strict type mode - Use type hints whereever possible Releases: master Resolves: #87604 Change-Id: Iab0fbcd4594d2c4c27846566b6e72fe97e40ec8d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/59599 Tested-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
Benni Mack authored
Instead of juggling with the globals, this should be handled within the same LanguageService instance that knows the language that was fetched. Instead LanguageService now always returns the loaded labels from the given file. Resolves: #88567 Releases: master Change-Id: Ie6a0367712625358b2c95b556c9fb0590e0d52ab Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/60878 Tested-by:
TYPO3com <noreply@typo3.com> Tested-by:
Daniel Goerz <daniel.goerz@posteo.de> Tested-by:
Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by:
Daniel Goerz <daniel.goerz@posteo.de> Reviewed-by:
Andreas Fernandez <a.fernandez@scripting-base.de>
-