35
35
directories :
36
36
- .phpunit
37
37
- php-$MIN_PHP
38
+ - php-ext
38
39
39
40
services : mongodb
40
41
@@ -102,6 +103,23 @@ before_install:
102
103
echo extension = mongo.so >> $INI
103
104
fi
104
105
106
+ # tpecl is a helper to compile and cache php extensions
107
+ tpecl () {
108
+ local ext_name=$1
109
+ local ext_so=$2
110
+ local ext_dir=$(php -r "echo ini_get('extension_dir');")
111
+ local ext_cache=~/php-ext/$(basename $ext_dir)/$ext_name
112
+
113
+ if [[ -e $ext_cache/$ext_so ]]; then
114
+ echo extension = $ext_cache/$ext_so >> $INI
115
+ else
116
+ mkdir -p $ext_cache
117
+ echo yes | pecl install -f $ext_name &&
118
+ cp $ext_dir/$ext_so $ext_cache
119
+ fi
120
+ }
121
+ export -f tpecl
122
+
105
123
# Matrix lines for intermediate PHP versions are skipped for pull requests
106
124
if [[ ! $deps && ! $PHP = ${MIN_PHP%.*} && ! $PHP = hhvm* && $TRAVIS_PULL_REQUEST != false ]]; then
107
125
deps=skip
@@ -120,12 +138,12 @@ before_install:
120
138
- |
121
139
# Install extra PHP extensions
122
140
if [[ ! $skip && $PHP = 5.* ]]; then
123
- ([[ $deps ]] || tfold ext.symfony_debug 'cd src/Symfony/Component/Debug/Resources/ext && phpize && ./configure && make && echo extension = $(pwd)/modules/symfony_debug.so >> '"$INI") &&
124
- tfold ext.memcached pecl install -f memcached-2.1.0 &&
125
- tfold ext.apcu4 'echo yes | pecl install -f apcu-4.0.11'
141
+ ([[ $deps ]] || tfold ext.symfony_debug 'cd src/Symfony/Component/Debug/Resources/ext && phpize && ./configure && make && echo extension = $(pwd)/modules/symfony_debug.so >> '"$INI")
142
+ tfold ext.memcached tpecl memcached-2.1.0 memcached.so
143
+ tfold ext.apcu tpecl apcu-4.0.11 apcu.so
126
144
elif [[ ! $skip && $PHP = 7.* ]]; then
127
- tfold ext.apcu5 'echo yes | pecl install -f apcu-5.1.6'
128
- tfold ext.mongodb pecl install -f mongodb-1.4.0RC1
145
+ tfold ext.apcu tpecl apcu-5.1.6 apcu.so
146
+ tfold ext.mongodb tpecl mongodb-1.4.0RC1 mongodb.so
129
147
fi
130
148
131
149
install :
0 commit comments