Skip to content

Commit

Permalink
[BUGFIX] Fix indenting in changelog
Browse files Browse the repository at this point in the history
Indenting in .rst files caused blocks to be rendered as quotes.

Resolves: #91821
Releases: master, 10.4, 9.5
Change-Id: I23b29037e5220ba1d72271b79995a8220a528139
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65022
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
  • Loading branch information
sypets authored and ervaude committed Jul 21, 2020
1 parent 27ccbd2 commit 6e3f539
Show file tree
Hide file tree
Showing 31 changed files with 354 additions and 334 deletions.
Expand Up @@ -193,24 +193,24 @@ autoregistration into a registry service :php:`MyRegistry`.
Impact
======

* Symfony automatically resolves interfaces to classes when only one class
implementing an interface is available. Otherwise an explicit alias is required.
That means you SHOULD define an alias for interface to class mappings where
the implementation currently defaults to the interface minus the trailing Interface
suffix (which is the default for Extbase).

* Dependency Injection can be added to constructors of existing services
without being breaking. :php:`GeneralUtility::makeInstance(ServiceName::class)`
will keep working, as :php:`makeInstance` has been adapted to resort to the
symfony container.

* Cyclic dependencies are not supported with Symfony DI (Extbase DI did so).

* Prototypes/Data classes (non singletons, e.g. models) that need both,
runtime constructor arguments (as passed to
:php:`\TYPO3\CMS\Extbase\Object\ObjectManager->get()`) and injected dependencies
are not supported in :php:`\Psr\Container\ContainerInterface->get()`.
It is suggested to switch to factories or stick with the object manager for now.
* Symfony automatically resolves interfaces to classes when only one class
implementing an interface is available. Otherwise an explicit alias is required.
That means you SHOULD define an alias for interface to class mappings where
the implementation currently defaults to the interface minus the trailing Interface
suffix (which is the default for Extbase).

* Dependency Injection can be added to constructors of existing services
without being breaking. :php:`GeneralUtility::makeInstance(ServiceName::class)`
will keep working, as :php:`makeInstance` has been adapted to resort to the
symfony container.

* Cyclic dependencies are not supported with Symfony DI (Extbase DI did so).

* Prototypes/Data classes (non singletons, e.g. models) that need both,
runtime constructor arguments (as passed to
:php:`\TYPO3\CMS\Extbase\Object\ObjectManager->get()`) and injected dependencies
are not supported in :php:`\Psr\Container\ContainerInterface->get()`.
It is suggested to switch to factories or stick with the object manager for now.


.. index:: PHP-API, ext:core
Expand Up @@ -51,20 +51,19 @@ Usages for fetching all available PageTS of a page/rootline in one large string:
$tsConfigString = $loader->load($rootLine);


The string is parsed (and conditions are applied) with the Parser:

:php:
$parser = GeneralUtility::makeInstance(
PageTsConfigParser::class,
$typoScriptParser,
$hashCache
);
$pagesTSconfig = $parser->parse(
$tsConfigString,
$conditionMatcher
);
The string is parsed (and conditions are applied) with the Parser::

$parser = GeneralUtility::makeInstance(
PageTsConfigParser::class,
$typoScriptParser,
$hashCache
);
$pagesTSconfig = $parser->parse(
$tsConfigString,
$conditionMatcher
);

Extension developers should rely on this syntax rather than
on :php:`$GLOBALS['TSFE']->getPagesTSconfig()` or :php:`BackendUtility::getPagesTsConfig()`, or the deprecated method / class.

.. index:: PHP-API, TSConfig, FullyScanned, ext:core
.. index:: PHP-API, TSConfig, FullyScanned, ext:core
@@ -1,5 +1,5 @@
.. include:: ../../Includes.txt
.. highlight:: html
.. highlight:: xml

===================================================================
Feature: #88950 - Add "storeSession" argument to Widget ViewHelpers
Expand All @@ -18,17 +18,13 @@ As this is not always a desired behaviour (gdpr),
a boolean argument ``storeSession`` has been added to :php:`\TYPO3\CMS\Fluid\Core\Widget\AbstractWidgetViewHelper`,
which defaults to true and can be used to disable session storage for this ViewHelper.

This will automatically create a ``fe_typo_user`` cookie in frontend::
This will automatically create a ``fe_typo_user`` cookie in the frontend::

.. code-block:: html

<f:widget.autocomplete for="name" objects="{posts}" searchProperty="author" />
<f:widget.autocomplete for="name" objects="{posts}" searchProperty="author" />

This will not create a cookie in frontend::

.. code-block:: html

<f:widget.autocomplete for="name" objects="{posts}" searchProperty="author" storeSession="false" />
<f:widget.autocomplete for="name" objects="{posts}" searchProperty="author" storeSession="false" />

Impact
======
Expand Down
Expand Up @@ -22,9 +22,9 @@ Affected dependency injection services are the following boolean services:
The services variables can be substituted by using dynamic Symfony
environment parameters:

- "%env(TYPO3:isUnix)%"
- "%env(TYPO3:isWindows)%"
- "%env(TYPO3:isCli)%"
- "%env(TYPO3:isComposerMode)%"
- "%env(TYPO3:isUnix)%"
- "%env(TYPO3:isWindows)%"
- "%env(TYPO3:isCli)%"
- "%env(TYPO3:isComposerMode)%"

.. index:: PHP-API, ext:core
Expand Up @@ -13,11 +13,11 @@ Description
CSS Styled Content ships compatibility TypoScript templates for being compatible with older versions. For TYPO3 CMS 7,
all templates to render a compatibility frontend for the following versions have been removed without substitution.

* TYPO3 CMS 6.1
* TYPO3 CMS 6.0
* TYPO3 CMS 4.7
* TYPO3 CMS 4.6
* TYPO3 CMS 4.5
* TYPO3 CMS 6.1
* TYPO3 CMS 6.0
* TYPO3 CMS 4.7
* TYPO3 CMS 4.6
* TYPO3 CMS 4.5

Impact
======
Expand Down
Expand Up @@ -35,13 +35,13 @@ The custom FAL drivers need to be updated to be in line with the updated DriverI

2 new functions need to be implemented:

- `countFoldersInFolder()`
- `countFilesInFolder()`
- `countFoldersInFolder()`
- `countFilesInFolder()`

2 functions need to be extended with the parameters $sort and $sortRev:

- `getFilesInFolder(..., $sort, $sortRev)`
- `getFoldersInFolder(..., $sort, $sortRev)`
- `getFilesInFolder(..., $sort, $sortRev)`
- `getFoldersInFolder(..., $sort, $sortRev)`


.. index:: PHP-API, FAL
Expand Up @@ -15,11 +15,11 @@ extension called "mediace". This extension is not installed by default but is sh

The following Content Objects are not available anymore by default:

* MULTIMEDIA
* MEDIA
* SWFOBJECT
* FLOWPLAYER
* QTOBJECT
* MULTIMEDIA
* MEDIA
* SWFOBJECT
* FLOWPLAYER
* QTOBJECT

The Content Types "media" and "multimedia" are not available anymore by default.

Expand Down
Expand Up @@ -14,15 +14,15 @@ It was possible to retrieve the local path of a FAL file via TypoScript

.. code-block:: ts
a = TEXT
a.value.data = file:current:localPath
a = TEXT
a.value.data = file:current:localPath
The localPath property has been dropped for the following reasons:

* The implementation used allow write access to the file and hence created a local copy which created useless file garbage.
* The implementation used allow write access to the file and hence created a local copy which created useless file garbage.

* Changing this to read-only access would cause the LocalDriver to return the true local path to the file, which would
open the possibility to file manipulation via "side channel" of FAL. This would make the FAL data inconsistent.
* Changing this to read-only access would cause the LocalDriver to return the true local path to the file, which would
open the possibility to file manipulation via "side channel" of FAL. This would make the FAL data inconsistent.


Impact
Expand Down
Expand Up @@ -30,13 +30,13 @@ Migration

The following properties under `mod.web_info.menu.function` have to be renamed:

* tx_cms_webinfo_page -> TYPO3\CMS\Frontend\Controller\PageInformationController
* tx_cms_webinfo_lang -> TYPO3\CMS\Frontend\Controller\TranslationStatusController
* tx_belog_webinfo -> TYPO3\CMS\Belog\Module\BackendLogModuleBootstrap
* tx_infopagetsconfig_webinfo -> TYPO3\CMS\InfoPagetsconfig\Controller\InfoPageTyposcriptConfigController
* tx_linkvalidator_ModFuncReport -> TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport
* tx_indexedsearch_modfunc1 : removed, indexed_search has its own module
* tx_indexedsearch_modfunc2 : removed, indexed_search has its own module
* tx_cms_webinfo_page -> TYPO3\CMS\Frontend\Controller\PageInformationController
* tx_cms_webinfo_lang -> TYPO3\CMS\Frontend\Controller\TranslationStatusController
* tx_belog_webinfo -> TYPO3\CMS\Belog\Module\BackendLogModuleBootstrap
* tx_infopagetsconfig_webinfo -> TYPO3\CMS\InfoPagetsconfig\Controller\InfoPageTyposcriptConfigController
* tx_linkvalidator_ModFuncReport -> TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport
* tx_indexedsearch_modfunc1 : removed, indexed_search has its own module
* tx_indexedsearch_modfunc2 : removed, indexed_search has its own module


.. index:: TSConfig, Backend
Expand Up @@ -15,74 +15,74 @@ provides various methods directly from the CommandController's `output` member:

* TableHelper

* outputTable($rows, $headers = NULL)
* outputTable($rows, $headers = NULL)

* DialogHelper

* select($question, $choices, $default = NULL, $multiSelect = false, $attempts = FALSE)
* ask($question, $default = NULL, array $autocomplete = array())
* askConfirmation($question, $default = TRUE)
* askHiddenResponse($question, $fallback = TRUE)
* askAndValidate($question, $validator, $attempts = FALSE, $default = NULL, array $autocomplete = NULL)
* askHiddenResponseAndValidate($question, $validator, $attempts = FALSE, $fallback = TRUE)
* select($question, $choices, $default = NULL, $multiSelect = false, $attempts = FALSE)
* ask($question, $default = NULL, array $autocomplete = array())
* askConfirmation($question, $default = TRUE)
* askHiddenResponse($question, $fallback = TRUE)
* askAndValidate($question, $validator, $attempts = FALSE, $default = NULL, array $autocomplete = NULL)
* askHiddenResponseAndValidate($question, $validator, $attempts = FALSE, $fallback = TRUE)

* ProgressHelper

* progressStart($max = NULL)
* progressSet($current)
* progressAdvance($step = 1)
* progressFinish()
* progressStart($max = NULL)
* progressSet($current)
* progressAdvance($step = 1)
* progressFinish()

Here's an example showing of some of those functions:

.. code-block:: php
namespace Acme\Demo\Command;
use TYPO3\CMS\Extbase\Mvc\Controller\CommandController;
/**
* My command
*/
class MyCommandController extends CommandController {
/**
* @return string
*/
public function myCommand() {
// render a table
$this->output->outputTable(array(
array('Bob', 34, 'm'),
array('Sally', 21, 'f'),
array('Blake', 56, 'm')
),
array('Name', 'Age', 'Gender'));
// select
$colors = array('red', 'blue', 'yellow');
$selectedColorIndex = $this->output->select('Please select one color', $colors, 'red');
$this->outputLine('You choose the color %s.', array($colors[$selectedColorIndex]));
// ask
$name = $this->output->ask('What is your name?' . PHP_EOL, 'Bob', array('Bob', 'Sally', 'Blake'));
$this->outputLine('Hello %s.', array($name));
// prompt
$likesDogs = $this->output->askConfirmation('Do you like dogs?');
if ($likesDogs) {
$this->outputLine('You do like dogs!');
}
// progress
$this->output->progressStart(600);
for ($i = 0; $i < 300; $i ++) {
$this->output->progressAdvance();
usleep(5000);
}
$this->output->progressFinish();
}
}
namespace Acme\Demo\Command;
use TYPO3\CMS\Extbase\Mvc\Controller\CommandController;
/**
* My command
*/
class MyCommandController extends CommandController {
/**
* @return string
*/
public function myCommand() {
// render a table
$this->output->outputTable(array(
array('Bob', 34, 'm'),
array('Sally', 21, 'f'),
array('Blake', 56, 'm')
),
array('Name', 'Age', 'Gender'));
// select
$colors = array('red', 'blue', 'yellow');
$selectedColorIndex = $this->output->select('Please select one color', $colors, 'red');
$this->outputLine('You choose the color %s.', array($colors[$selectedColorIndex]));
// ask
$name = $this->output->ask('What is your name?' . PHP_EOL, 'Bob', array('Bob', 'Sally', 'Blake'));
$this->outputLine('Hello %s.', array($name));
// prompt
$likesDogs = $this->output->askConfirmation('Do you like dogs?');
if ($likesDogs) {
$this->outputLine('You do like dogs!');
}
// progress
$this->output->progressStart(600);
for ($i = 0; $i < 300; $i ++) {
$this->output->progressAdvance();
usleep(5000);
}
$this->output->progressFinish();
}
}
Impact
Expand Down
Expand Up @@ -13,11 +13,11 @@ Description

The following `TCA` keys for `type` `select` have been dropped and are no longer handled by the core:

* neg_foreign_table
* neg_foreign_table_where
* neg_foreign_table_prefix
* neg_foreign_table_loadIcons
* neg_foreign_table_imposeValueField
* neg_foreign_table
* neg_foreign_table_where
* neg_foreign_table_prefix
* neg_foreign_table_loadIcons
* neg_foreign_table_imposeValueField

These setting were used in `select` for comma separated value relations in addition to `foreign_table`
to allow a second connected table. Relations for `neg_foreign_table` were stored as negative uids in the
Expand Down
Expand Up @@ -17,18 +17,18 @@ values: `\TYPO3\CMS\Core\Resource\DuplicationBehavior`.

Provided constants are:

* `DuplicationBehavior::CANCEL`
* `DuplicationBehavior::REPLACE`
* `DuplicationBehavior::RENAME`
* `DuplicationBehavior::CANCEL`
* `DuplicationBehavior::REPLACE`
* `DuplicationBehavior::RENAME`

Before this change there were two sets of strings used to define the behavior upon conflicts.

* Set1: `cancel`, `replace` and `changeName`
* Set2: `cancel`, `overrideExistingFile` and `renameNewFile`
* Set1: `cancel`, `replace` and `changeName`
* Set2: `cancel`, `overrideExistingFile` and `renameNewFile`

As they are redundant they are now represented by a new set of constants:

* `CANCEL`, `REPLACE` and `RENAME`
* `CANCEL`, `REPLACE` and `RENAME`

All usages of strings of the former sets have been replaced with their counterparts from the new set. In the enumeration
the former values have been mapped to the new values and marked for deprecation.
Expand Down Expand Up @@ -57,7 +57,7 @@ Example

.. code-block:: php
$resourceStorage->copyFile($file, $targetFolder, 'target-file-name', DuplicationBehavior::RENAME);
$resourceStorage->copyFile($file, $targetFolder, 'target-file-name', DuplicationBehavior::RENAME);
.. index:: FAL, PHP-API, Backend

0 comments on commit 6e3f539

Please sign in to comment.