[FEATURE] Central system environment check 70/18870/11
authorChristian Kuhn <lolli@schwarzbu.ch>
Mon, 25 Feb 2013 20:50:02 +0000 (21:50 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Wed, 13 Mar 2013 21:47:24 +0000 (22:47 +0100)
commit009f307bd2e1aca577f82044800286529ebaa5e5
treea8dec9c12216813628dc1461cadc3b7649bf1868
parent338cf5b61b98ef3637269e1200b1fdd78fe62cbc
[FEATURE] Central system environment check

This patch adds a new structure to the install tool to centralize
all system and especially PHP related system checks cluttered in
various modules and parts of the core at the moment.

The idea is to have a basic, standalone script to test for all
requirements TYPO3 CMS has in order to run smoothly. The script does
not use any TYPO3 core code and has no further dependencies. With
a later patch, the check will be integrated as the very first
step during install, to give a good indicator if the final
installed system will work well or if any system constraints are
not met.

Currently, the script is included as a new section in the install
tool, called "System environment", where all checks are performed
and each gives a status back. This will already help to support
questions on mailing lists and should be the first step every user
is guided to: "Do you have warnings or errors in the system
environment?". The install tool implementation should also help
already if moving an instance to a different server.

Furthermore, there is a simple integration in the reports module
that points to the install tool if issues are found.

The class structure is as simple as possible, it is very easy to
adapt single checks later on, the API is a single getStatus() method
that returns all check object of the specific tests. Due to the
nature of the script and the later usage in the installation
process, things like localization and so on are not done and
should also not be implemented later on.

Most current check code is fetched from existing install tool,
reports module and bootstrap code. This also make the main
Installer.php class of the install tool already a bit better
maintainable since 600 lines of code are removed from it.

Change-Id: I64387ca9aaa4b429ee4a909cdab4386180af0d45
Resolves: #46219
Releases: 6.1
Reviewed-on: https://review.typo3.org/18870
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
26 files changed:
typo3/sysext/core/Classes/Core/SystemEnvironmentBuilder.php
typo3/sysext/core/Classes/Utility/PhpOptionsUtility.php
typo3/sysext/install/Classes/Exception.php [new file with mode: 0644]
typo3/sysext/install/Classes/Installer.php
typo3/sysext/install/Classes/Report/EnvironmentStatusReport.php [new file with mode: 0644]
typo3/sysext/install/Classes/Report/InstallStatusReport.php
typo3/sysext/install/Classes/Session.php
typo3/sysext/install/Classes/SystemEnvironment/AbstractStatus.php [new file with mode: 0644]
typo3/sysext/install/Classes/SystemEnvironment/Check.php [new file with mode: 0644]
typo3/sysext/install/Classes/SystemEnvironment/ErrorStatus.php [new file with mode: 0644]
typo3/sysext/install/Classes/SystemEnvironment/InfoStatus.php [new file with mode: 0644]
typo3/sysext/install/Classes/SystemEnvironment/NoticeStatus.php [new file with mode: 0644]
typo3/sysext/install/Classes/SystemEnvironment/OkStatus.php [new file with mode: 0644]
typo3/sysext/install/Classes/SystemEnvironment/StatusInterface.php [new file with mode: 0644]
typo3/sysext/install/Classes/SystemEnvironment/TestImages/jesus.gif [new file with mode: 0755]
typo3/sysext/install/Classes/SystemEnvironment/TestImages/jesus.png [new file with mode: 0755]
typo3/sysext/install/Classes/SystemEnvironment/WarningStatus.php [new file with mode: 0644]
typo3/sysext/install/Resources/Private/Language/Report/locallang.xlf [new file with mode: 0644]
typo3/sysext/install/Resources/Public/Images/menuSystemEnvironment.png [new file with mode: 0644]
typo3/sysext/install/Resources/Public/Stylesheets/general.css
typo3/sysext/install/ext_tables.php
typo3/sysext/install/mod/class.tx_install.php
typo3/sysext/install/report/class.tx_install_report_installstatus.php
typo3/sysext/install/requirements.php [deleted file]
typo3/sysext/reports/Classes/Report/Status/ConfigurationStatus.php
typo3/sysext/reports/Classes/Report/Status/SystemStatus.php