Project

General

Profile

Actions

Task #70584

closed

Reduce thrown E_NOTICEs

Added by Oliver Eglseder over 8 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Code Cleanup
Start date:
2018-03-07
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
7
PHP Version:
Tags:
Complexity:
Sprint Focus:
On Location Sprint

Description

Every time PHP tries to access an index of an array, which is not set, or a variable that is not defined PHP generated an E_NOTICE and uses NULL as resulting value.

This is bad because of three major reasons:
1. Bugs resulting from an invalid evaluation of the value are very hard to find.
2. You can not trust the type of the variable so you have to check it anywhere you use it.
3. Not checking keys is considered bad code.

And a lot of other (major and minor) reasons to check the key/variable before accessing it, including tiny performance improvements as a positive side effect.

Mission:

Always check if the variable/key exists before accessing it.
If the value is not existent use the expected default value (e.g.: empty string, zero, null..)

How to work on this:

Edit UnitTests.xml in core/Build and set convertNoticesToExceptions="true" and stopOnFailure="true" as <phpunit> tag attributes.
Go to \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::initializeBasicErrorReporting and set error_reporting(E_ALL)
Run all unit tests. PHPUnit will halt on the first error.

Create a child issue on this ticket that combines some changes into logic units.
There shouldn't be more than 20 changes per patch to keep them simple and increase velocity. Smaller patches are getting approved and merged faster.


Related issues 7 (0 open7 closed)

Related to TYPO3 Core - Task #70587: Remove the first few E_NOTICEs occuring in the unit testsClosedOliver Eglseder2015-10-11

Actions
Related to TYPO3 Core - Task #70590: Remove all notices thrown in BackendUtilityTestClosed2015-10-11

Actions
Related to TYPO3 Core - Task #71236: Provide correct dummy data for DatabaseLanguageRowsTestClosedOliver Eglseder2015-11-01

Actions
Related to TYPO3 Core - Bug #71292: Reduce E_NOTICEs by providing correct test values and issetsClosed2015-11-03

Actions
Related to TYPO3 Core - Bug #84156: avoid E_NOTICE reporting in ArrayUtilityClosed2018-03-07

Actions
Related to TYPO3 Core - Bug #84161: avoid E_NOTICE reporting in ArrayUtility - reloadedClosed2018-03-07

Actions
Related to TYPO3 Core - Epic #84280: Make unit tests notice freeClosedJan Helke2018-03-15

Actions
Actions #1

Updated by Riccardo De Contardi about 8 years ago

  • Category set to Code Cleanup
Actions #2

Updated by Riccardo De Contardi almost 7 years ago

  • Target version changed from 8 LTS to Candidate for Major Version
Actions #3

Updated by Gerrit Code Review over 6 years ago

  • Status changed from New to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54884

Actions #4

Updated by Gerrit Code Review over 6 years ago

Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54884

Actions #5

Updated by Gerrit Code Review over 6 years ago

Patch set 3 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54884

Actions #6

Updated by Riccardo De Contardi about 6 years ago

  • Related to Bug #84156: avoid E_NOTICE reporting in ArrayUtility added
Actions #7

Updated by Ralf Zimmermann about 6 years ago

  • Related to Bug #84161: avoid E_NOTICE reporting in ArrayUtility - reloaded added
Actions #8

Updated by Gerrit Code Review about 6 years ago

Patch set 4 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54884

Actions #9

Updated by Gerrit Code Review about 6 years ago

Patch set 5 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54884

Actions #10

Updated by Łukasz Uznański about 6 years ago

  • Sprint Focus set to On Location Sprint
Actions #11

Updated by Christian Kuhn about 6 years ago

  • Related to Epic #84280: Make unit tests notice free added
Actions #12

Updated by Gerrit Code Review about 6 years ago

Patch set 6 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54884

Actions #13

Updated by Jan Helke about 6 years ago

  • Status changed from Under Review to Resolved
  • Assignee deleted (Oliver Eglseder)

All issues connected to this task are either closed or resolved. I will close the ticket and we will handle E_NOTICEs further on in https://forge.typo3.org/issues/84280

Actions #14

Updated by Benni Mack over 5 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF