class roles::php($version = 'installed') {
include php
include php::apt
include php::params
include php::pear
include php::composer
include php::composer::auto_update
include php_support
# Extensions must be installed before they are configured
Php::Extension <| |> -> Php::Config <| |>
# Ensure base packages is installed in the correct order
# and before any php extensions
Package['php5-common']
-> Package['php5-dev']
-> Package['php5-cli']
-> Php::Extension <| |>
class {
# Base packages
[ 'php::dev', 'php::cli' ]:
ensure => $version;
# PHP extensions
[
'php::extension::curl', 'php::extension::gd', 'php::extension::imagick',
'php::extension::mcrypt', 'php::extension::mysql', 'php::extension::ssh2',
'php::extension::redis', 'php::extension::http', 'php::extension::opcache'
]:
ensure => $version;
[ 'php::extension::igbinary' ]:
ensure => installed
}
# Install APC user cache only (php 5.5 uses OptCache instead of APC)
php::extension { 'php5-apcu':
ensure => $version,
package => 'php5-apcu',
provider => 'apt'
}
# Install the INTL extension
php::extension { 'php5-intl':
ensure => $version,
package => 'php5-intl',
provider => 'apt'
}
create_resources('php::config', hiera_hash('php_config', {}))
create_resources('php::cli::config', hiera_hash('php_cli_config', {}))
}