Skip to content

Commit 8bcdcb7

Browse files
author
matt
committed
Merge branch '3.x' into sftp-move-and-overwrite
# Conflicts: # src/PhpseclibV3/SftpAdapterTest.php
2 parents 7f5a780 + 072735c commit 8bcdcb7

File tree

94 files changed

+1721
-376
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+1721
-376
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
/.editorconfig export-ignore
88
/.php-cs-fixer.dist.php export-ignore
99
/phpstan.neon export-ignore
10+
/phpstan-baseline.neon export-ignore
1011
/phpunit.php export-ignore
1112
/phpunit.xml.dist export-ignore
1213
/.travis.yml export-ignore

.github/release.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
changelog:
2+
categories:
3+
- title: Breaking Changes 🛠
4+
labels:
5+
- Semver-Major
6+
- breaking-change
7+
- title: Exciting New Features 🎉
8+
labels:
9+
- Semver-Minor
10+
- enhancement
11+
- title: Other Changes
12+
labels:
13+
- "*"

.github/workflows/publish-subsplits.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,22 @@ jobs:
1616
runs-on: ubuntu-latest
1717
name: Publish package sub-splits
1818
steps:
19-
- uses: actions/checkout@v3
19+
- uses: actions/checkout@v4
2020
with:
2121
fetch-depth: '0'
2222
persist-credentials: 'false'
23-
- uses: frankdejonge/use-github-token@1.0.2
23+
- uses: frankdejonge/use-github-token@1.1.0
2424
with:
2525
authentication: 'frankdejonge:${{ secrets.PERSONAL_ACCESS_TOKEN }}'
2626
user_name: 'Frank de Jonge'
2727
user_email: '[email protected]'
2828
- name: Cache splitsh-lite
2929
id: splitsh-cache
30-
uses: actions/cache@v3
30+
uses: actions/cache@v4
3131
with:
3232
path: './.splitsh'
3333
key: '${{ runner.os }}-splitsh'
34-
- uses: frankdejonge/use-subsplit-publish@1.0.0-beta.7
34+
- uses: frankdejonge/use-subsplit-publish@1.1.0
3535
with:
3636
source-branch: '3.x'
3737
config-path: './config.subsplit-publish.json'

.github/workflows/quality-assurance.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ on:
1717
branches:
1818
- 2.x
1919
- 3.x
20+
schedule:
21+
- cron: "5 1 * * *"
2022

2123
env:
2224
FLYSYSTEM_AWS_S3_KEY: '${{ secrets.FLYSYSTEM_AWS_S3_KEY }}'
@@ -45,15 +47,22 @@ jobs:
4547
phpstan: false
4648
phpunit-flags: '--no-coverage'
4749
- php: '8.2'
48-
composer-flags: '--ignore-platform-reqs'
50+
experimental: false
51+
phpstan: false
52+
phpunit-flags: '--no-coverage'
53+
- php: '8.3'
54+
experimental: false
55+
phpstan: false
56+
phpunit-flags: '--no-coverage'
57+
- php: '8.4'
4958
experimental: true
5059
phpstan: false
5160
phpunit-flags: '--no-coverage'
5261
steps:
53-
- uses: actions/checkout@v3
62+
- uses: actions/checkout@v4
5463
- run: docker-compose -f docker-compose.yml up -d
5564
- name: Start an SSH Agent
56-
uses: frankdejonge/use-ssh-agent@1.0.2
65+
uses: frankdejonge/use-ssh-agent@1.1.0
5766
- run: chmod 0400 ./test_files/sftp/id_*
5867
- id: ssh_agent
5968
run: ssh-add ./test_files/sftp/id_rsa

.github/workflows/set-subsplit-default-branch.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ jobs:
88
name: Set default git branch
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: actions/checkout@v3
11+
- uses: actions/checkout@v4
1212
with:
1313
fetch-depth: '0'
1414
persist-credentials: 'false'
15-
- uses: actions/github-script@v6
15+
- uses: actions/github-script@v7
1616
with:
1717
github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
1818
script: |

CHANGELOG.md

Lines changed: 104 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,108 @@
11
# Changelog
22

3-
## 3.16.0 - UNRELEASED
3+
## 3.26.0 - 2024-03-25
4+
5+
### Fixed
6+
7+
- Make SFTP connectivity pinging an opt-in feature.
8+
9+
### Added
10+
11+
- Add `add_content_md5` option to AWS S3 (#1774)
12+
- Added AWS SSE-C options (#1773)
13+
14+
## 3.25.1 - 2024-03-16
15+
16+
### Fixed
17+
18+
- Cleanup connection instance after disconnecting SFTP connection.
19+
- Fix upcoming PHP 8.4 deprecations (#1772)
20+
21+
## 3.25.0 - 2024-03-09
22+
23+
### Added
24+
25+
- [MountManager] added ability to (dangerously) mount additional filesystems
26+
- [FTP] added `disconnect` method to proactively close connections
27+
- [SFTP V3] added `disconnect` method to proactively close connections
28+
29+
## 3.24.0 - 2024-02-04
30+
31+
### Fixes
32+
33+
- Updated method signatures to match upgraded dependency signatures for overrides (#1748, #1746)
34+
- Added missing path prefixing in FTP implementation (#1747)
35+
36+
### Changes
37+
38+
- Updated string assertions to use PHP 8 functions (#1750, #1749))
39+
40+
## 3.23.1 - 2024-01-26
41+
42+
### Changes
43+
44+
- Updated license year
45+
46+
## 3.23.0 - 2023-12-04
47+
48+
### Fixed
49+
50+
- Fixed upstream regression caused by resolving inconclusive mime-type.
51+
52+
### Added
53+
54+
- Made inconclusive mime-type resolving configurable on the local adapter.
55+
56+
## 3.22.0 - 2023-12-03
57+
58+
### Changes
59+
60+
- Prevent double directory creation with lazy root creation for Local filesystem.
61+
62+
### Fixes
63+
64+
- Resolve to "inconclusive" mimetype instead of causing a type error by @GuySartorelli
65+
- Corrected spelling of a configuration key for the Azure adapter by @shineability
66+
67+
### Additions
68+
69+
- MountManager::extend allows for immutable dynamic extension of the mount manager.
70+
- Added a new abstract DecoratedAdapter for easier decoration of adapters by @jnoordsij
71+
72+
## 3.21.0 - 2023-11-18
73+
74+
### Changes
75+
76+
- Retain visibility on local copy for local FS, in line with other adapter (#1730) by @jnoordsij
77+
78+
## 3.20.0 - 2023-11-14
79+
80+
### Changed
81+
82+
- Normalise paths for public and temporary URLs (#1727)
83+
84+
## 3.19.0 - 2023-11-07
85+
86+
### Added
87+
88+
- Configuration option to specify if visibility should be retained during copy/move operations
89+
- InMemoryFilesystemAdapter now supports visibility changes on move and copy.
90+
- Default visibility options are ignored when moving/copying while respecting visibility retention settings.
91+
- Local filesystem implementation now allows setting visibility on move and copy.
92+
93+
## 3.18.0 - 2023-10-05
94+
95+
### Added
96+
97+
- Configuration option to specify how to handle same path copy/move operations (#1715)
98+
99+
## 3.17.0 - 2023-10-05
100+
101+
### Added
102+
103+
- [AsyncAWS] Added support for version 2.0 of async-aws/{s3,simple-s3}
104+
105+
## 3.16.0 - 2023-09-07
4106

5107
### Added
6108

@@ -9,6 +111,7 @@
9111
### Fixed
10112

11113
- [ZipArchive] override on move
114+
- [WebDAV] encode path for propfind actions
12115
- [PathPrefixing] [#1686](https://github.com/thephpleague/flysystem/issues/1686)
13116

14117
## 3.15.1 - 2023-05-04

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2013-2023 Frank de Jonge
1+
Copyright (c) 2013-2024 Frank de Jonge
22

33
Permission is hereby granted, free of charge, to any person obtaining a copy
44
of this software and associated documentation files (the "Software"), to deal

composer.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@
2727
"ext-ftp": "*",
2828
"microsoft/azure-storage-blob": "^1.1",
2929
"phpunit/phpunit": "^9.5.11|^10.0",
30-
"phpstan/phpstan": "^0.12.26",
31-
"phpseclib/phpseclib": "^3.0.14",
32-
"aws/aws-sdk-php": "^3.220.0",
30+
"phpstan/phpstan": "^1.10",
31+
"phpseclib/phpseclib": "^3.0.36",
32+
"aws/aws-sdk-php": "^3.295.10",
3333
"composer/semver": "^3.0",
3434
"friendsofphp/php-cs-fixer": "^3.5",
3535
"google/cloud-storage": "^1.23",
36-
"async-aws/s3": "^1.5",
37-
"async-aws/simple-s3": "^1.1",
38-
"sabre/dav": "^4.3.1"
36+
"async-aws/s3": "^1.5 || ^2.0",
37+
"async-aws/simple-s3": "^1.1 || ^2.0",
38+
"sabre/dav": "^4.6.0"
3939
},
4040
"conflict": {
4141
"async-aws/core": "<1.19.0",

phpstan-baseline.neon

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
parameters:
2+
ignoreErrors:
3+
-
4+
message: "#^Parameter \\$connection of method League\\\\Flysystem\\\\Ftp\\\\FtpAdapter\\:\\:resolveConnectionRoot\\(\\) has invalid type FTP\\\\Connection\\.$#"
5+
count: 1
6+
path: src/Ftp/FtpAdapter.php
7+
8+
-
9+
message: "#^Unsafe access to private property League\\\\Flysystem\\\\GoogleCloudStorage\\\\GoogleCloudStorageAdapter\\:\\:\\$algoToInfoMap through static\\:\\:\\.$#"
10+
count: 1
11+
path: src/GoogleCloudStorage/GoogleCloudStorageAdapter.php
12+
13+
-
14+
message: "#^Unsafe access to private property League\\\\Flysystem\\\\GoogleCloudStorage\\\\GoogleCloudStorageAdapterTest\\:\\:\\$adapterPrefix through static\\:\\:\\.$#"
15+
count: 3
16+
path: src/GoogleCloudStorage/GoogleCloudStorageAdapterTest.php
17+
18+
-
19+
message: "#^Unsafe access to private property League\\\\Flysystem\\\\GoogleCloudStorage\\\\GoogleCloudStorageAdapterTest\\:\\:\\$bucket through static\\:\\:\\.$#"
20+
count: 5
21+
path: src/GoogleCloudStorage/GoogleCloudStorageAdapterTest.php
22+
23+
-
24+
message: "#^Unsafe access to private property League\\\\Flysystem\\\\GoogleCloudStorage\\\\GoogleCloudStorageAdapterTest\\:\\:\\$prefixer through static\\:\\:\\.$#"
25+
count: 3
26+
path: src/GoogleCloudStorage/GoogleCloudStorageAdapterTest.php
27+
28+
-
29+
message: "#^Offset 2 does not exist on array\\{League\\\\Flysystem\\\\FilesystemOperator, string\\}\\.$#"
30+
count: 1
31+
path: src/MountManager.php
32+
33+
-
34+
message: "#^Unsafe access to private property League\\\\Flysystem\\\\ZipArchive\\\\ZipArchiveAdapterTestCase\\:\\:\\$archiveProvider through static\\:\\:\\.$#"
35+
count: 10
36+
path: src/ZipArchive/ZipArchiveAdapterTestCase.php
37+
-
38+
message: "#^Parameter \\#1 \\$ftp of function ftp_chdir expects FTP\\\\Connection, resource given\\.$#"
39+
count: 2
40+
path: src/Ftp/FtpAdapter.php
41+
42+
-
43+
message: "#^Parameter \\#1 \\$ftp of function ftp_chmod expects FTP\\\\Connection, resource given\\.$#"
44+
count: 2
45+
path: src/Ftp/FtpAdapter.php
46+
47+
-
48+
message: "#^Parameter \\#1 \\$ftp of function ftp_delete expects FTP\\\\Connection, resource given\\.$#"
49+
count: 1
50+
path: src/Ftp/FtpAdapter.php
51+
52+
-
53+
message: "#^Parameter \\#1 \\$ftp of function ftp_fget expects FTP\\\\Connection, resource given\\.$#"
54+
count: 1
55+
path: src/Ftp/FtpAdapter.php
56+
57+
-
58+
message: "#^Parameter \\#1 \\$ftp of function ftp_fput expects FTP\\\\Connection, resource given\\.$#"
59+
count: 1
60+
path: src/Ftp/FtpAdapter.php
61+
62+
-
63+
message: "#^Parameter \\#1 \\$ftp of function ftp_mdtm expects FTP\\\\Connection, resource given\\.$#"
64+
count: 1
65+
path: src/Ftp/FtpAdapter.php
66+
67+
-
68+
message: "#^Parameter \\#1 \\$ftp of function ftp_mkdir expects FTP\\\\Connection, resource given\\.$#"
69+
count: 1
70+
path: src/Ftp/FtpAdapter.php
71+
72+
-
73+
message: "#^Parameter \\#1 \\$ftp of function ftp_raw expects FTP\\\\Connection, resource given\\.$#"
74+
count: 1
75+
path: src/Ftp/FtpAdapter.php
76+
77+
-
78+
message: "#^Parameter \\#1 \\$ftp of function ftp_rawlist expects FTP\\\\Connection, resource given\\.$#"
79+
count: 1
80+
path: src/Ftp/FtpAdapter.php
81+
82+
-
83+
message: "#^Parameter \\#1 \\$ftp of function ftp_rename expects FTP\\\\Connection, resource given\\.$#"
84+
count: 1
85+
path: src/Ftp/FtpAdapter.php
86+
87+
-
88+
message: "#^Parameter \\#1 \\$ftp of function ftp_rmdir expects FTP\\\\Connection, resource given\\.$#"
89+
count: 1
90+
path: src/Ftp/FtpAdapter.php
91+
92+
-
93+
message: "#^Parameter \\#1 \\$ftp of function ftp_size expects FTP\\\\Connection, resource given\\.$#"
94+
count: 2
95+
path: src/Ftp/FtpAdapter.php
96+
97+
-
98+
message: "#^Method League\\\\Flysystem\\\\Ftp\\\\FtpConnectionProvider\\:\\:createConnectionResource\\(\\) should return resource but returns FTP\\\\Connection\\.$#"
99+
count: 1
100+
path: src/Ftp/FtpConnectionProvider.php
101+
102+
-
103+
message: "#^Parameter \\#1 \\$ftp of function ftp_close expects FTP\\\\Connection, resource given\\.$#"
104+
count: 1
105+
path: src/Ftp/FtpConnectionProvider.php
106+
107+
-
108+
message: "#^Parameter \\#1 \\$ftp of function ftp_login expects FTP\\\\Connection, resource given\\.$#"
109+
count: 1
110+
path: src/Ftp/FtpConnectionProvider.php
111+
112+
-
113+
message: "#^Parameter \\#1 \\$ftp of function ftp_pasv expects FTP\\\\Connection, resource given\\.$#"
114+
count: 1
115+
path: src/Ftp/FtpConnectionProvider.php
116+
117+
-
118+
message: "#^Parameter \\#1 \\$ftp of function ftp_raw expects FTP\\\\Connection, resource given\\.$#"
119+
count: 1
120+
path: src/Ftp/FtpConnectionProvider.php
121+
122+
-
123+
message: "#^Parameter \\#1 \\$ftp of function ftp_set_option expects FTP\\\\Connection, resource given\\.$#"
124+
count: 1
125+
path: src/Ftp/FtpConnectionProvider.php
126+
127+
-
128+
message: "#^Parameter \\#1 \\$ftp of function ftp_close expects FTP\\\\Connection, resource given\\.$#"
129+
count: 1
130+
path: src/Ftp/FtpConnectionProviderTest.php
131+
132+
-
133+
message: "#^Parameter \\#1 \\$ftp of function ftp_raw expects FTP\\\\Connection, resource given\\.$#"
134+
count: 1
135+
path: src/Ftp/NoopCommandConnectivityChecker.php
136+
137+
-
138+
message: "#^Parameter \\#1 \\$ftp of function ftp_close expects FTP\\\\Connection, resource given\\.$#"
139+
count: 1
140+
path: src/Ftp/NoopCommandConnectivityCheckerTest.php
141+
142+
-
143+
message: "#^Parameter \\#1 \\$ftp of function ftp_rawlist expects FTP\\\\Connection, resource given\\.$#"
144+
count: 1
145+
path: src/Ftp/RawListFtpConnectivityChecker.php
146+
147+
-
148+
message: "#^Parameter \\#1 \\$ftp of function ftp_close expects FTP\\\\Connection, resource given\\.$#"
149+
count: 1
150+
path: src/Ftp/RawListFtpConnectivityCheckerTest.php

0 commit comments

Comments
 (0)