Skip to content

Commit 24ef6a5

Browse files
authored
PHP-155: Support for PHP v7.1.x
* Updating Windows build for PHP v7.1.x * Fixing a default casting issue for features when using PHP 7.1 * Adding PHP v7.1.7 to AppVeyor matrix and re-ordering build * Adding PHP 7.1 to TravisCI * Updating PHP maximum supported version
1 parent 6393513 commit 24ef6a5

File tree

8 files changed

+127
-101
lines changed

8 files changed

+127
-101
lines changed

.travis.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ cache:
1212
php:
1313
- 5.6
1414
- 7.0
15+
- 7.1
1516

1617
env:
1718
global:
@@ -23,7 +24,7 @@ env:
2324
# Indicate the cached dependencies directory
2425
- CACHED_DEPENDENCIES_DIRECTORY=${HOME}/dependencies
2526
# Add libuv source build for container based TravisCI
26-
- LIBUV_VERSION=1.11.0
27+
- LIBUV_VERSION=1.13.1
2728
- LIBUV_ROOT_DIR=${CACHED_DEPENDENCIES_DIRECTORY}/libuv/${LIBUV_VERSION}
2829
- PHP_DRIVER_BUILD_DIRECTORY=/tmp/php-driver/build
2930
- CPP_DRIVER_SOURCE_DIRECTORY=${TRAVIS_BUILD_DIR}/lib/cpp-driver

Rakefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ end
152152
<required>
153153
<php>
154154
<min>5.6.0</min>
155-
<max>7.0.99</max>
155+
<max>7.1.99</max>
156156
</php>
157157
<pearinstaller>
158158
<min>1.4.8</min>

appveyor.yml

+48-43
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ configuration:
3232
# - Debug
3333
- Release
3434
environment:
35-
LIBUV_VERSION: 1.11.0
36-
OPENSSL_VERSION: 1.0.2k
35+
LIBUV_VERSION: 1.13.1
3736
CPP_DRIVER_DEPENDENCIES_DOWNLOAD_URL_PREFIX: https://raw.githubusercontent.com/mikefero/cpp-driver-msvc-libs/master
3837
PHP_BINARY_TOOLS_ARCHIVE: php-sdk-binary-tools-20110915.zip
3938
PHP_BINARY_TOOLS_DIR: C:/projects
@@ -44,30 +43,42 @@ environment:
4443
COMPOSER_CACHE_DIR: C:/projects/dependencies/composer
4544
CONFIGURATION_COMPLETE: False
4645
matrix:
46+
- PHP: 5.6
47+
PHP_VERSION: 5.6.31
48+
THREAD_SAFE: True
49+
CMAKE_GENERATOR: Visual Studio 11 2012
50+
VISUAL_STUDIO_INTERNAL_VERSION: 110
51+
VISUAL_STUDIO_SHORTHAND_VERSION: 11
52+
- PHP: 5.6
53+
PHP_VERSION: 5.6.31
54+
THREAD_SAFE: False
55+
CMAKE_GENERATOR: Visual Studio 11 2012
56+
VISUAL_STUDIO_INTERNAL_VERSION: 110
57+
VISUAL_STUDIO_SHORTHAND_VERSION: 11
4758
- PHP: 7.0
48-
PHP_VERSION: 7.0.19
59+
PHP_VERSION: 7.0.21
4960
THREAD_SAFE: True
5061
CMAKE_GENERATOR: Visual Studio 14 2015
5162
VISUAL_STUDIO_INTERNAL_VERSION: 140
5263
VISUAL_STUDIO_SHORTHAND_VERSION: 14
5364
- PHP: 7.0
54-
PHP_VERSION: 7.0.19
65+
PHP_VERSION: 7.0.21
5566
THREAD_SAFE: False
5667
CMAKE_GENERATOR: Visual Studio 14 2015
5768
VISUAL_STUDIO_INTERNAL_VERSION: 140
5869
VISUAL_STUDIO_SHORTHAND_VERSION: 14
59-
- PHP: 5.6
60-
PHP_VERSION: 5.6.30
70+
- PHP: 7.1
71+
PHP_VERSION: 7.1.7
6172
THREAD_SAFE: True
62-
CMAKE_GENERATOR: Visual Studio 11 2012
63-
VISUAL_STUDIO_INTERNAL_VERSION: 110
64-
VISUAL_STUDIO_SHORTHAND_VERSION: 11
65-
- PHP: 5.6
66-
PHP_VERSION: 5.6.30
73+
CMAKE_GENERATOR: Visual Studio 14 2015
74+
VISUAL_STUDIO_INTERNAL_VERSION: 140
75+
VISUAL_STUDIO_SHORTHAND_VERSION: 14
76+
- PHP: 7.1
77+
PHP_VERSION: 7.1.7
6778
THREAD_SAFE: False
68-
CMAKE_GENERATOR: Visual Studio 11 2012
69-
VISUAL_STUDIO_INTERNAL_VERSION: 110
70-
VISUAL_STUDIO_SHORTHAND_VERSION: 11
79+
CMAKE_GENERATOR: Visual Studio 14 2015
80+
VISUAL_STUDIO_INTERNAL_VERSION: 140
81+
VISUAL_STUDIO_SHORTHAND_VERSION: 14
7182

7283
init:
7384
- ps: |
@@ -100,6 +111,13 @@ init:
100111
$env:ENABLE_DEBUG="--enable-debug"
101112
}
102113
114+
# Determine if OpenSSL extension should have default linking enabled
115+
If ($env:PHP -Match "5.6") {
116+
$env:WITH_OPENSSL_DEFAULT_SHARED="--with-openssl"
117+
} Else {
118+
$env:WITH_OPENSSL_DEFAULT_SHARED="--with-openssl=shared"
119+
}
120+
103121
# Assign common use environment variables
104122
$env:LIB_ARCHITECTURE="lib$($env:ARCHITECTURE)"
105123
$env:WINDOWS_ARCHITECTURE="win$($env:ARCHITECTURE)"
@@ -108,6 +126,7 @@ init:
108126
# Generate the PHP environment variable
109127
$env:PHP_DEPENDENCIES_ARCHIVE="deps-$($env:PHP)-vc$($env:VISUAL_STUDIO_SHORTHAND_VERSION)-$($env:PLATFORM).7z"
110128
$env:PHP_ARCHIVE="php-$($env:PHP_VERSION).zip"
129+
$env:PHP_DEPENDENCIES_DIR="$($env:PHP_SDK_LOCATION_PREFIX)/deps"
111130
112131
# Generate the environment for the dependencies root directory
113132
$env:DEPENDENCIES_LOCATION="$($env:DEPENDENCIES_LOCATION_PREFIX)/$($env:Platform)/$($env:VISUAL_STUDIO_INTERNAL_VERSION)"
@@ -116,9 +135,9 @@ init:
116135
$env:LIBUV_ARCHIVE="libuv-$($env:LIBUV_VERSION)-$($env:WINDOWS_ARCHITECTURE)-msvc$($env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
117136
$env:LIBUV_ROOT_DIR="$($env:DEPENDENCIES_LOCATION)/libuv-$($env:LIBUV_VERSION)"
118137
119-
# Generate the OpenSSL environment variables
120-
$env:OPENSSL_ARCHIVE="openssl-$($env:OPENSSL_VERSION)-$($env:WINDOWS_ARCHITECTURE)-msvc$($env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
121-
$env:OPENSSL_ROOT_DIR="$($env:DEPENDENCIES_LOCATION)/openssl-$($env:OPENSSL_VERSION)"
138+
# Generate the OpenSSL and zlib environment variables
139+
$env:OPENSSL_ROOT_DIR="$($env:PHP_DEPENDENCIES_DIR)"
140+
$env:ZLIB_ROOT_DIR="$($env:PHP_DEPENDENCIES_DIR)"
122141
123142
# Generate the archive name for the driver artifact
124143
$env:DRIVER_ARTIFACT_ARCHIVE="cassandra-php-driver-ci-artifact-$($env:APPVEYOR_BUILD_VERSION)-$($env:PHP)-$($env:TS_OR_NTS)-vc$($env:VISUAL_STUDIO_SHORTHAND_VERSION)-$($env:PLATFORM).zip"
@@ -164,34 +183,17 @@ install:
164183
Remove-Item $env:LIBUV_ARCHIVE
165184
}
166185
167-
# Determine if OpenSSL should be installed (cached)
168-
If (!(Test-Path -Path "openssl-$($env:OPENSSL_VERSION)")) {
169-
# Download and extract the dependency
170-
Start-FileDownload "$($env:CPP_DRIVER_DEPENDENCIES_DOWNLOAD_URL_PREFIX)/openssl/$($env:OPENSSL_VERSION)/$($env:OPENSSL_ARCHIVE)" -FileName $env:OPENSSL_ARCHIVE
171-
7z -o"openssl-$($env:OPENSSL_VERSION)" x $env:OPENSSL_ARCHIVE
172-
173-
# Only keep the static libaries
174-
Move-Item "openssl-$($env:OPENSSL_VERSION)/static/lib" "openssl-$($env:OPENSSL_VERSION)/lib"
175-
Remove-Item "openssl-$($env:OPENSSL_VERSION)/static" -Force -Recurse
176-
Remove-Item "openssl-$($env:OPENSSL_VERSION)/shared" -Force -Recurse
177-
178-
# Delete the binary archive
179-
Remove-Item $env:OPENSSL_ARCHIVE
180-
}
181-
182186
# Remove pre-installed OpenSSL (resolve conflicts)
183187
Remove-Item "C:/OpenSSL-*" -Force -Recurse
184188
185189
# Setup the build tree for PHP (Update the PATH for the binary tools)
186190
New-Item -ItemType Directory -Force -Path "$($env:PHP_SDK_LOCATION_PREFIX)"
187191
7z -o"$($env:PHP_SDK_LOCATION_PREFIX)" x "$($env:DEPENDENCIES_LOCATION_PREFIX)/$($env:PHP_BINARY_TOOLS_ARCHIVE)"
188192
7z -o"$($env:PHP_SDK_LOCATION_PREFIX)" x "$($env:DEPENDENCIES_LOCATION_PREFIX)/$($env:PHP_ARCHIVE)"
189-
7z -o"$($env:PHP_SDK_LOCATION_PREFIX)" x $env:PHP_DEPENDENCIES_ARCHIVE
193+
7z -o"$($env:PHP_SDK_LOCATION_PREFIX)" x "$($env:PHP_DEPENDENCIES_ARCHIVE)"
190194
$env:PHP_SOURCE_DIR="$($env:PHP_SDK_LOCATION_PREFIX)/php-src-php-$($env:PHP_VERSION)"
191-
$env:PHP_DEPENDENCIES_DIR="$($env:PHP_SDK_LOCATION_PREFIX)/deps"
192195
$env:PATH+=";$($env:PHP_SDK_LOCATION_PREFIX)/bin"
193196
Copy-Item "libuv-$($env:LIBUV_VERSION)/*" "$($env:PHP_DEPENDENCIES_DIR)" -Force -Recurse
194-
Copy-Item "openssl-$($env:OPENSSL_VERSION)/*" "$($env:PHP_DEPENDENCIES_DIR)" -Force -Recurse
195197
196198
# Move back to original directory
197199
Pop-Location
@@ -216,7 +218,7 @@ before_build:
216218
Push-Location build
217219
218220
# Configure the build via CMake
219-
cmake -G "$($env:CMAKE_GENERATOR)$($env:CMAKE_GENERATOR_SUFFIX)" -DCMAKE_INSTALL_PREFIX="$($env:DEPENDENCIES_LOCATION)/$($env:CPP_DRIVER_VERSION)/$($env:CPP_DRIVER_VERSION_SHA)" -DCASS_MULTICORE_COMPILATION=ON -DCMAKE_BUILD_TYPE=$env:CONFIGURATION -DCASS_BUILD_STATIC=ON -DCASS_USE_STATIC_LIBS=ON ..
221+
cmake -G "$($env:CMAKE_GENERATOR)$($env:CMAKE_GENERATOR_SUFFIX)" -DCMAKE_INSTALL_PREFIX="$($env:DEPENDENCIES_LOCATION)/$($env:CPP_DRIVER_VERSION)/$($env:CPP_DRIVER_VERSION_SHA)" -DCASS_MULTICORE_COMPILATION=ON -DCMAKE_BUILD_TYPE=$env:CONFIGURATION -DCASS_BUILD_STATIC=On -DCASS_USE_STATIC_LIBS=On -DCASS_USE_ZLIB=On ..
220222
221223
# Move back to C/C++ directory
222224
Pop-Location
@@ -235,7 +237,7 @@ before_build:
235237
Push-Location "$($env:PHP_SOURCE_DIR)"
236238
# Configure PHP and the PHP driver extension
237239
- cmd: buildconf.bat --force --add-modules-dir="%APPVEYOR_BUILD_FOLDER%"
238-
- cmd: configure.bat --with-prefix="%APPVEYOR_BUILD_FOLDER%\%CONFIGURATION%" --disable-all --enable-cli --enable-com-dotnet --enable-session --enable-zlib --with-gmp --with-openssl=static --enable-cassandra=shared --enable-phar --enable-json --enable-filter --enable-hash --enable-ctype --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --enable-tokenizer --enable-zip --with-libxml --with-dom --with-iconv %ENABLE_DISABLE_THREAD_SAFETY% %ENABLE_DEBUG%
240+
- cmd: configure.bat --with-prefix="%APPVEYOR_BUILD_FOLDER%\%CONFIGURATION%" --disable-all --enable-cli --enable-com-dotnet --enable-session --enable-zlib --with-gmp %WITH_OPENSSL_DEFAULT_SHARED% --enable-cassandra=shared --enable-phar --enable-json --enable-filter --enable-hash --enable-ctype --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --enable-tokenizer --enable-zip --with-libxml --with-dom --with-iconv %ENABLE_DISABLE_THREAD_SAFETY% %ENABLE_DEBUG%
239241
- ps: $env:CONFIGURATION_COMPLETE=$TRUE
240242

241243
build_script:
@@ -249,18 +251,21 @@ build_script:
249251
# Move back to working directory
250252
Pop-Location
251253
254+
# Copy OpenSSL libraries for artifact and test execution
255+
Copy-Item "$($env:PHP_DEPENDENCIES_DIR)/bin/libeay32.dll" "$($env:CONFIGURATION)" -Force -Recurse
256+
Copy-Item "$($env:PHP_DEPENDENCIES_DIR)/bin/ssleay32.dll" "$($env:CONFIGURATION)" -Force -Recurse
257+
252258
# Configure PHP to use the PHP driver extension
253-
If (Test-Path -Path $env:CONFIGURATION/ext) {
254-
Add-Content "$($env:CONFIGURATION)/php.ini" "extension=ext\php_cassandra.dll"
255-
} Else {
256-
Add-Content "$($env:CONFIGURATION)/php.ini" "extension=.\php_cassandra.dll"
259+
Add-Content "$($env:CONFIGURATION)/php.ini" "extension=ext\php_cassandra.dll"
260+
If ($env:PHP -NotMatch "5.6") {
261+
Add-Content "$($env:CONFIGURATION)/php.ini" "extension=ext\php_openssl.dll"
257262
}
258263
259264
after_build:
260265
- ps: |
261-
# Create the artifact structure for the driver
266+
# Create the artifact structure for the driver (Copy OpenSSL libraries)
262267
New-Item -ItemType Directory -Force -Path $env:TEMP/php-driver-artifact
263-
Copy-Item $env:CONFIGURATION/php*.* $env:TEMP/php-driver-artifact
268+
Copy-Item $env:CONFIGURATION/*.* $env:TEMP/php-driver-artifact
264269
If (Test-Path -Path $env:CONFIGURATION/ext) {
265270
Copy-Item $env:CONFIGURATION/ext $env:TEMP/php-driver-artifact -Recurse
266271
}

behat.yml

+18-7
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,48 @@ default:
77
88
contexts:
99
- FeatureContext:
10-
cassandra_version: "3.10"
10+
cassandra_version: 3.11.0
11+
12+
cassandra-version-3.0:
13+
formatters:
14+
pretty: true
15+
suites:
16+
default:
17+
filters:
18+
19+
contexts:
20+
- FeatureContext:
21+
cassandra_version: 3.0.14
1122

1223
cassandra-version-2.2:
1324
formatters:
1425
pretty: true
1526
suites:
1627
default:
1728
filters:
18-
29+
tags: "~@cassandra-version-3.x&&[email protected]&&~@cassandra-version-3.0&&[email protected]&&[email protected]&&~@broken"
1930
contexts:
2031
- FeatureContext:
21-
cassandra_version: 2.2.7
32+
cassandra_version: 2.2.10
2233

2334
cassandra-version-2.1:
2435
formatters:
2536
pretty: true
2637
suites:
2738
default:
2839
filters:
29-
40+
tags: "~@cassandra-version-3.x&&[email protected]&&~@cassandra-version-3.0&&[email protected]&&[email protected]&&[email protected]&&~@broken"
3041
contexts:
3142
- FeatureContext:
32-
cassandra_version: 2.1.15
43+
cassandra_version: 2.1.18
3344

3445
cassandra-version-2.0:
3546
formatters:
3647
pretty: true
3748
suites:
3849
default:
3950
filters:
40-
51+
tags: "~@cassandra-version-3.x&&[email protected]&&~@cassandra-version-3.0&&[email protected]&&[email protected]&&~@broken"
4152
contexts:
4253
- FeatureContext:
4354
cassandra_version: 2.0.17
@@ -48,7 +59,7 @@ cassandra-version-1.2:
4859
suites:
4960
default:
5061
filters:
51-
62+
tags: "~@cassandra-version-3.x&&[email protected]&&~@cassandra-version-3.0&&[email protected]&&[email protected]&&[email protected]&&[email protected]&&~broken"
5263
contexts:
5364
- FeatureContext:
5465
cassandra_version: 1.2.19

ext/package.xml

+8-18
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,19 @@ protocol and Cassandra Query Language v3.
1414
<email>[email protected]</email>
1515
<active>yes</active>
1616
</lead>
17-
<date>2017-05-15</date>
18-
<time>16:28:29</time>
17+
<date>2017-08-04</date>
18+
<time>07:48:59</time>
1919
<version>
20-
<release>1.3.1</release>
21-
<api>1.3.1</api>
20+
<release>1.3.2-dev</release>
21+
<api>1.3.2-dev</api>
2222
</version>
2323
<stability>
24-
<release>stable</release>
25-
<api>stable</api>
24+
<release>devel</release>
25+
<api>devel</api>
2626
</stability>
2727
<license uri="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</license>
2828
<notes>
29-
# 1.3.1
30-
31-
Bug Fixes:
32-
33-
* [PHP-170] Duration nanos should support a signed 64-bit range
34-
35-
Documentation:
36-
37-
* [PHP-184] Remove {@inheritDoc} from method parameters
38-
* [PHP-183] Remove references to SimpleStatement and ExecutionOptions from docs,
39-
features, and most tests
29+
# Official release under development
4030
</notes>
4131
<contents>
4232
<dir name="/">
@@ -308,7 +298,7 @@ Documentation:
308298
<required>
309299
<php>
310300
<min>5.6.0</min>
311-
<max>7.0.99</max>
301+
<max>7.1.99</max>
312302
</php>
313303
<pearinstaller>
314304
<min>1.4.8</min>

0 commit comments

Comments
 (0)