-
  name: "Block to Allow Loading of Variables without running task"
  when: run_tasks
  block:
    - name: Include OS-specific variables.
      include_vars: "{{ ansible_os_family }}.yml"
    
    - name: Include distribution and version-specific vars.
      include_vars: "{{ item }}"
      with_first_found:
        - files:
            - "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml"
          skip: true
    
    - name: Set the default PHP version for Debian-based OSes.
      set_fact:
        php_default_version_debian: "{{ __php_default_version_debian }}"
      when: php_default_version_debian is not defined and ansible_os_family == 'Debian'
    
    - name: Define the name of the JSON extension package on Debian for PHP <8.
      set_fact:
        __php_json_package_debian: "{{ 'php' + php_default_version_debian|string + '-json' }}"
      when: ansible_os_family == 'Debian' and php_default_version_debian is version('8.0', '<')
    
    - name: Add the JSON extension on Debian for PHP <8.
      set_fact:
        __php_packages: "{{ __php_packages + [__php_json_package_debian] }}"
      when: __php_json_package_debian is defined and __php_json_package_debian not in __php_packages
    
    - name: Define php_packages.
      set_fact:
        php_packages: "{{ __php_packages | list }}"
      when: php_packages is not defined
    
    - name: Define php_webserver_daemon.
      set_fact:
        php_webserver_daemon: "{{ __php_webserver_daemon }}"
      when: php_webserver_daemon is not defined
    
    - name: Define php_conf_paths.
      set_fact:
        php_conf_paths: "{{ __php_conf_paths }}"
      when: php_conf_paths is not defined
    
    - name: Define php_extension_conf_paths.
      set_fact:
        php_extension_conf_paths: "{{ __php_extension_conf_paths }}"
      when: php_extension_conf_paths is not defined
    
    - name: Define php_apc_conf_filename.
      set_fact:
        php_apc_conf_filename: "{{ __php_apc_conf_filename }}"
      when: php_apc_conf_filename is not defined
    
    - name: Define php_opcache_conf_filename (Ubuntu 16.04).
      set_fact:
        php_opcache_conf_filename: "10-opcache.ini"
      when: php_opcache_conf_filename is not defined and ansible_distribution_version == "16.04"
    
    - name: Define php_opcache_conf_filename.
      set_fact:
        php_opcache_conf_filename: "{{ __php_opcache_conf_filename }}"
      when: php_opcache_conf_filename is not defined
    
    - name: Define php_fpm_conf_path.
      set_fact:
        php_fpm_conf_path: "{{ __php_fpm_conf_path }}"
      when: php_fpm_conf_path is not defined
    
    # Setup/install tasks.
    - include_tasks: setup-RedHat.yml
      when:
        - not php_install_from_source
        - ansible_os_family == 'RedHat'
    
    - include_tasks: setup-Debian.yml
      when:
        - not php_install_from_source
        - ansible_os_family == 'Debian'
    
    # Install PHP from source when php_install_from_source is true.
    - include_tasks: install-from-source.yml
      when: php_install_from_source
    
    # Configure PHP.
    - include_tasks: configure.yml
    - include_tasks: configure-apcu.yml
    - include_tasks: configure-opcache.yml
    - include_tasks: configure-fpm.yml
