@@ -97,7 +97,7 @@ build_native_binaries_for_PHP_version_libc_variant() {
97
97
current_user_group_id=" $( id -g) "
98
98
docker run --rm \
99
99
-v " ${dest_dir_for_current_args} :/dest_dir" \
100
- ${PHP_docker_image} sh -c " \
100
+ " ${PHP_docker_image} " sh -c " \
101
101
mkdir -p /app && cd /app \
102
102
${install_compiler_command} \
103
103
&& pecl install opentelemetry-${opentelemetry_extension_version} \
@@ -119,20 +119,50 @@ build_native_binaries() {
119
119
echo " Built extension binaries"
120
120
}
121
121
122
+ is_earlier_major_minor_version () {
123
+ local lhs_version=" ${1:? } "
124
+ local rhs_version=" ${2:? } "
125
+ local lhs_version_major
126
+ lhs_version_major=$( echo " ${lhs_version} " | cut -d. -f1)
127
+ local rhs_version_major
128
+ rhs_version_major=$( echo " ${rhs_version} " | cut -d. -f1)
129
+
130
+ if [ " ${lhs_version_major} " -lt " ${rhs_version_major} " ]; then
131
+ echo " true"
132
+ return
133
+ fi
134
+
135
+ if [ " ${lhs_version_major} " -gt " ${rhs_version_major} " ]; then
136
+ echo " false"
137
+ return
138
+ fi
139
+
140
+ local lhs_version_minor
141
+ lhs_version_minor=$( echo " ${lhs_version} " | cut -d. -f2)
142
+ local rhs_version_minor
143
+ rhs_version_minor=$( echo " ${rhs_version} " | cut -d. -f2)
144
+
145
+ if [ " ${lhs_version_minor} " -lt " ${rhs_version_minor} " ]; then
146
+ echo " true"
147
+ return
148
+ fi
149
+
150
+ echo " false"
151
+ }
152
+
122
153
select_composer_json_for_PHP_version () {
123
154
local PHP_version=" ${1:? } "
124
- case " ${PHP_version} " in
125
- 8.0|8.1|8.2)
126
- echo " composer_PHP_${PHP_version} .json"
127
- ;;
128
- 8.3)
129
- echo " composer_PHP_8.2.json"
130
- ;;
131
- * )
132
- echo " Unexpected PHP version: ${PHP_version} "
133
- exit 1
134
- ;;
135
- esac
155
+ #
156
+ # Supported instrumentations are different for PHP prior to 8.2 and for PHP 8.2 and later
157
+ # because PHP 8.2 added ability to instrument internal functions
158
+ #
159
+ local is_PHP_version_before_8_2
160
+ is_PHP_version_before_8_2=$( is_earlier_major_minor_version " ${PHP_version} " " 8.2" )
161
+ if [ " ${is_PHP_version_before_8_2} " == " true" ]; then
162
+ echo " composer_for_PHP_before_8.2.json"
163
+ else
164
+ echo " composer_for_PHP_8.2_and_later.json"
165
+ fi
136
166
}
137
167
138
168
download_PHP_packages_for_PHP_version () {
@@ -153,7 +183,7 @@ download_PHP_packages_for_PHP_version() {
153
183
-v " ${dest_dir_for_current_args} :/app/vendor" \
154
184
-v " ${PWD} /${composer_json_file_name} :/app/composer.json" \
155
185
-w /app \
156
- php:${PHP_version} -cli sh -c " \
186
+ " php:${PHP_version} " -cli sh -c " \
157
187
apt-get update && apt-get install -y unzip \
158
188
&& curl -sS https://getcomposer.org/installer | php -- --filename=composer --install-dir=/usr/local/bin \
159
189
&& composer --ignore-platform-req=ext-opentelemetry --no-dev install \
0 commit comments