Comments (3)
The only non-blocking network facility in PHP 7 is the raw socket.
This function works for any stream that supports non-blocking mode (currently, regular files and socket streams).
This has also been independently confirmed by async expert and internals contributor, @bwoebi.
This means that each network protocol has to be implemented using raw socket programming which, needless to say, is extremely laborious and error prone. All the major fledgling async frameworks (React, amphp, icicle.io) provide an HTTP client implementation but they have not been battle tested in a wide variety of real-world scenarios like the PHP stream wrapper and may contain bugs. Moreover, they do not provide other protocols found in PHP such as SOAP.
Given the current level of maturity of async frameworks, I do not think it is practical to resolve this issue until async primitives are available in the PHP language or a wider range of async network protocols are supported.
from porter.
It seems amphp is reaching a reasonable level of maturity, however the latest iteration supports PHP 7 only, so this issue may be on hold until Porter has dropped support for earlier PHP versions.
from porter.
This has been merged with #54.
from porter.
Related Issues (20)
- CachingConnector::fetch should allow passing in the cache key HOT 1
- Durability is broken for subsequent generator iterations after the first HOT 2
- HttpConnectorTest intermittent CI failure HOT 1
- Type classes should be migrated to phptype organization HOT 1
- Retry delays are tied to the lifetime of an import specification HOT 1
- Drop PHP 5 support HOT 2
- Document FetchExceptionHandlers
- [BC-BREAK] scriptfusion/retry 1.1.2 HOT 2
- Rate Limiter HOT 2
- How I can get what went wrong at import process ? HOT 1
- Reconsider whether forcing resources to return arrays is correct
- Laravel and CachingConnector? HOT 2
- CachingConnector is a poor user experience HOT 1
- ConnectorOptions is a bad design
- SingleRecord interface
- ExponentialAsyncDelayRecoverableExceptionHandler not being cloned correctly
- Integrate async throttle
- Document multiple instances of same provider
- Document Symfony integration best practices HOT 1
- Dependency on psr/cache:^1 HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from porter.