Skip to content
Snippets Groups Projects
Commit 2e3c9d5e authored by Christian Kuhn's avatar Christian Kuhn
Browse files

[!!!][TASK] Rewrite install tool

Main features:
* The god class "Installer" is gone and split into two major parts.
A step controller handling major upgrade and install tasks, and a
tool controller handling the known install tool actions.

* The step controller is designed to be always called prior to the
tool controller, if a step needs execution, it comes up, otherwise
the tool controller will be executed.

* The entry point typo3/install/index.php is gone and substituted
by typo3/sysext/install/Start/Install.php. The file contains a
lengthy comment to document the main request flow and used GET/POST
parameters.

* Most parts of the install tool do not bootstrap the whole system
anymore, in general only the base bootstrap, dbal (if loaded),
extbase and fluid ext_localconf.php are loaded. This makes sure
the install tool can not fatal if some extensions ext_localconf
is broken. The whole install tool runs without any caching, so a fatal
in some cache file can not kill the install tool execution.

* Installing TYPO3 CMS on a dbal enabled system is now handled in
the step installer directly to make the according code easier to
understand.

* Rendering is done with a simplified fluid standalone view.

* All install tool forms are CSRF protected.

* A new and fully unit tested class structure is introduced, designed
to take care of the basic file and folder structure of the instance.
It is used during installation to create the needed structure and
can be called in the install tool to compare and fix the current
instance structure with the expected structure. In effect, the
"dummy" package is obsolete. An instance can be created by just
linking index.php, typo3_src/ and typo3/ within the document root,
the installer takes care of creating everything else.

* The installation procedure is released from the package handling.
Packages will be handled by the extension manager after initial
installation with another patch.

Loose ends:
* The whole package handling needs to be implemented in the
extension manager.

* Not all upgrade wizards work, this code area needs some love.

* A 'core' auto updater could be implemented now. A GSoC project
is currently running to realize this.

* The SQL schema migration API is a mess and should be refactored.
For now, another helper class is introduced to encapsulate some
of the nasty details.

* An auto configuration and configuration suggestion system is
planned and needs to be done. It should suggest best configuration
options in the install tool, and should auto configure the system
during installation in the last install step.

* If the backend or frontend fatals due to some extension that
triggers a fatal in ext_localconf or ext_tables (for example
due to a require() of a no longer existing file), a small helper
action in the install tool could find those extensions and suggest
to unload them.

Change-Id: Ice3248caa903449ad6a83ea4f234c7bd125bdb66
Resolves: #49162
Releases: 6.2
Reviewed-on: https://review.typo3.org/21468
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Tested-by: Alexander Opitz
Reviewed-by: Stefan Froemken
Tested-by: Stefan Froemken
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
parent b34e43b1
Showing
with 104 additions and 477 deletions
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment