Uploaded image for project: 'phpBB3'
  1. phpBB3
  2. PHPBB3-13740

Refactoring installer




      The main idea is to refactor the phpBB installer into a modular and easy to extend installer on the backend, and automating the installer on the frontend using AJAX (or meta refresh when javascript is disabled). The idea described in this ticket is based on this GSoC idea but not necessarily focusing on the new features proposed there (only making the implementation of those easier in the future).

      Basic design concepts
      The backend
      The new installer backend would utilise the power of Symfony services as it will solve a lot of performance and extendability issues by itself. Because these services should not be part of the production environment it seems necessary that we introduce a new one dedicated for installing phpBB.

      The installer will consist of three (types of) parts:

      • The installer
      • The installer modules
      • The installer tasks

      An installer task is an object which performs a specific task (checking if config.php is writable, or installing the database schema). A module is an object which wraps a collection of tasks to be performed and managing their execution (it would make sure that everything is executed in the correct order and would also manage time in a similarly to database_update.php in the current installer package. Finally, the installer would be a collection of modules.

      The modules and tasks would share certain properties, as both types of services could be marked essential or non-essential which means that the installer will have support for different install profiles as well as the ability to only provide the option to certain tasks if the functionality on the web host is provided (for example if we implement a task to download extensions from phpbb.com this option would only be displayed on hosts where some PHP functionality is enabled to connect to remote sites).

      The frontend
      AJAX based installer frontend which reqiures way less user interaction. So only requiring the user to enter relevant data after the requirements were checked. If requirements are not met, the installer notifies the user and exists.

      Refactoring the current installer
      The current installer would be refactored to four modules

      • Checking if requirements are met for essential modules (file writeability etc), if not then displaying an error message
      • Collecting data from user that required for installing phpBB and checking it
      • Actually installing phpBB, at this point all requirements should have been checked in the previous two points, so there should be no user interaction required
      • Collecting data for admin account and setting it up


        1. form.PNG
          43 kB
        2. install_finished.PNG
          29 kB
        3. install_intro.PNG
          83 kB
        4. progress.png
          21 kB
        5. req.PNG
          36 kB

        Issue Links



              CHItA CHItA
              CHItA CHItA
              0 Vote for this issue
              4 Start watching this issue