artemeon / stream-context
Library to create a stream context
1.0.1
2025-02-08 10:25 UTC
Requires
- php: >=8.4
- phpseclib/phpseclib: ~3.0
Requires (Dev)
- laravel/pint: ^1.20.0
- mockery/mockery: ^1.6.12
- pestphp/pest: ^3.7
- pestphp/pest-plugin-faker: ^3.0
- pestphp/pest-plugin-type-coverage: ^3.2
- pestphp/pest-plugin-watch: ^3.0
- phpstan/phpstan: 2.1.2
- rector/rector: ^2.0.7
This package is auto-updated.
Last update: 2025-02-08 10:31:58 UTC
README
PHP-Interface for the internal PHP stream context's
Description
Contains several PHP stream context objects to provide an easier interface for the internal wrapper based PHP contexts options. Provides a FileStream configuration object, this allows us to transparent change the streams without to change the client class.
Getting Started
Dependencies
- We use the https://phpseclib.com/ to user SFTP based on custom StreamWrapper provided by this library.
- In most PHP distributions SFTP support is not compiles in.
Installing
"require": {
"artemeon/stream-context": "^0.1.0"
}
Usage
Basic usage wit all PHP stream aware functions
$directory = dir("sftp://ftp.example.com/file.txt", SftpStreamContext::forPasswordAuthentication('password', 'user')->createStreamContext());
Usage with the FileObjectFactory and the FileStream object
$fileObject = FileObjectFactory::create(FileStream::fromUrl('sftp://test.de/basefolder', SftpStreamContext::forPrivateKeyAuthentication('Aefs566456DG_fgdf')));
$fileObject = FileObjectFactory::create(FileStream::fromUrl('http://test.de/basefolder', HttpStreamContext::forPostUrlencoded(['type' => 'internal'])));
Set several Context and FileStream options
$httpContext = HttpStreamContext::forGet();
$httpContext->setTimeout(5.0);
$fileStream = FileStream::fromUrl('http://test.de/basefolder/import.csv', $httpContext);
$fileStream->setMode('r+');
$fileStream->enforceFileExtension('csv');
$file = FileObjectFactory::create($fileStream);
Version History
- 0.1.0 Initial release
License
This project is licensed under the MIT License - see the LICENSE file for details