GeezerVison is showing amphp.org — Asynchronous Multitasking PHP
Build fast, concurrent applications with PHP
Benefit from concurrency by replacing your blocking I/O with non-blocking I/O,
or designing your system with non-blocking I/O from the ground up.
We shipped fibers in PHP 8.1 to extend its capabilities for concurrent applications.
The PHP standard library has already provided everything else we needed for years now, but it only ships the
low-level building blocks. AMPHP provides higher-level libraries using non-blocking I/O
under the hood.
Fibers allow these libraries to just work, no matter whether they're used in concurrent or traditional
contexts.
Fixed validation of port in string provided to InternetAddress::tryFromString
Socks5SocketConnector::tunnel() now accepts target URLs which do not contain a scheme, fixing compatibility with providing an instance of InternetAddress
Fixed validation of CIDR mask bits when constructing an instance of CidrMatcher to be between 0 and 32 (for IPv4) or 128 (for IPv6)
Full Changelog: https://github.com/amphp/socket/compare/v2.4.0…v2.4.1
Fixed consuming a value from the concurrent iterator returned from Pipeline::generate() if consumption of the prior emitted value was cancelled in the same event-loop tick
Fixed relieving back-pressure from Queue when the consume disposes of the concurrent iterator
Full Changelog: https://github.com/amphp/pipeline/compare/v1.2.6…v1.2.7
Fixed garbage collection of the iterable returned from Future::iterate() when the source iterable is a Traversable. Previously, iteration would continue even if the returned iterable was destroyed.
Full Changelog: https://github.com/amphp/amp/compare/v3.1.2…v3.1.3
Added getSignalName() function which returns the signal constant name, if defined, from a signal number. Requires ext-pcntl, otherwise null is always returned.
Full Changelog: https://github.com/amphp/process/compare/v2.0.3…v2.1.0
Users of 3.x should be able to update to 4.x without code changes unless their application did one of the following:
Defined a custom File implementation
Initialized ParallelFilesystemDriver with a custom worker count.
Breaking Changes
This release adds a lock(), tryLock(), and unlock() to the File interface. These methods provide a non-blocking means of locking and unlocking a file.
File::lock(): Non-blocking method to obtain a shared or exclusive lock on the file. This method must only return once the lock has been obtained.
File::tryLock(): Makes a single non-blocking attempt to obtain a shared or exclusive lock on the file. Returns true if the lock was obtained, otherwise false.
File::unlock(): Unlocks the file if the lock is currently held.
In 3.x, the constructor of ParallelFilesystemDriver accepted an optional WorkerPool and a number of workers to use from that pool. In 4.x, instead the constructor now requires only an optional LimitedWorkerPool (a new pool is created if one is not provided). The number of workers used for opening files is determined by the value returned from LimitedWorkerPool::getWorkerLimit(). Use a DelegateWorkerPool if you wish to use an existing pool and limit the number of workers used from the pool to open files. In general, it is not necessary to customize the parallel filesystem driver.
Full Changelog: https://github.com/amphp/file/compare/v3.2.0…v4.0.0
Fixed the exception type thrown if ReadableIterableStream is closed (Amp\Pipeline\DisposedException was leaked, now an Amp\ByteStream\ClosedException is thrown).
Full Changelog: https://github.com/amphp/byte-stream/compare/v2.1.1…v2.1.2
Stable release compatible with AMPHP v3 and fibers! 🎉
As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType> have been replaced with ResolutionType.
This library provides an implementation of Amp\Socket\SocketConnector from amphp/socket which establishes a socket connection via an HTTP/1.1 CONNECT request to a proxy.
Fixed support for PSR-7 requests with a protocol version of "2.0" by converting the protocol version to "2" when converting to an Amp\Http\Client\Request (#15).
Full Changelog: https://github.com/amphp/http-client-psr7/compare/v1.1.0…v1.1.1
Stable release compatible with AMPHP v3 and fibers! 🎉
As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType> have been replaced with ResolutionType.
The 4.0.0 release fixes compression support with a couple small compatibility breaks from 3.x.
Users of 2.x should upgrade directly to 4.0.0.
Users of 3.x can upgrade directly to 4.0.0 if compression is not being used. If a custom WebsocketAcceptor was created to support compression, this custom implementation may be dropped, instead passing an instance of WebsocketCompressionContextFactory to each Websocket request handler.
Backward Compatibility Breaks
The WebsocketCompressionContextFactory constructor parameter of Rfc6455ClientFactory has been removed and is instead a constructor parameter of the Websocket class.
A nullable WebsocketCompressionContext parameter was added to WebsocketClientFactory::createClient().
Stable release compatible with AMPHP v3 and fibers! 🎉
As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType> have been replaced with ResolutionType.
Stable release compatible with AMPHP v3 and fibers! 🎉
As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType> have been replaced with ResolutionType.
This release is compatible with amphp/http-server@^3.
Renamed BufferingParser and StreamingParser to FormParser and StreamingFormParser, respectively.
Removed the parseForm function in favor of the Form::fromRequest() static method.
Removed ParsingMiddleware. Use Form::fromRequest() instead.
Removed ParseException. Form parsing errors will throw an HttpErrorException from amphp/http-server instead, which do not need to be caught (the server will automatically return an error response).
This package has been redesigned for compatibility with AMPHP v3 and fibers. AsyncTestCase serves a similar purpose as before, providing helper methods for unit testing within an async context. Each test case is run within a unique fiber to allow suspending during the test run.
AsyncTestCase::setUpAsync() and tearDownAsync() have been removed. Use AsyncTestCase::setUp() and tearDown() instead, as both of these methods are now able to execute async using fibers.
AsyncTestCase::createCallback() now returns a Closure. Additionally, an optional parameter for expected arguments upon invocation have been added (uses InvocationMocker::with(...) to set expected arguments).
React\EventLoop\Factory is now automatically replaced with another implementation that throws on each usage to prevent two loops existing concurrently by accident.
Set AMP_REACT_ADAPTER_DISABLE_FACTORY_OVERRIDE=1 as environment variable or constant to disable this protection.
You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.