Comments (4)
i think first we need few changes before supporting Swoole
or any other non-blocking IO server ( such ReactPHP
or Amp
) :
- new session interface instead of
ParagonIE\Cookie\Session
- one that doesn't rely on the session extension
- use
dflydev/fig-cookies
instead ofParagonIE\Cookie\Cookie
- we can build a wrapper around this for encryption by example
- PSR-15 support :
- MIDDLEWARES ARE COOL !
- clean the mess in public/index.php
- error handling and enabling debug can be done in an early middleware
- PSR-6 support :
- we can use
symfony/cache
,cache/cache
or any other implementations - allow implementing a new session based on PSR-6
- we can use
what do you think @paragonie-scott
from airship.
things that can done in a middleware :
- AirShip\Networking\Middleware\DebugMiddleware
- AirShip\Networking\Middleware\ErrorLoggingMiddleware
- AirShip\Networking\Middleware\AutoUpdateMiddleware
- AirShip\Networking\Middleware\SessionStartMiddleware
- AirShip\Networking\Middleware\SessionCanaryMiddleware
- AirShip\Networking\Middleware\CSPMiddleware
- AirShip\Networking\Middleware\HPKPMiddleware
- AirShip\Networking\Middleware\StaticCacheMiddleware
... and much more
this will result in much cleaner setup and bring us closer to using Servers such as Swoole, ReactPHP, Amp .. etc.
from airship.
@azjezz how would you envision async support as no part of airship is build with non blocking support in mind?
from airship.
@PeeHaa the only problem i currently see is the usage of global variables and the session extension, but for now I'm waiting for @paragonie-scott opinion on this.
the usage of global variables $_GET and $_POST can be avoided by using the PSR7 request,
$_COOKIES can be avoided by using dflydev/fig-cookies instead of ParagonIE\Cookie\Cookie
and we need a new session implementation, one that doesn't use the session extension, something like this : zendframework/zend-expressive-session-cache
from airship.
Related Issues (20)
- PHP Warning: symlink(): File exists in /src/Installer/Commands.php on line 41 HOT 1
- Version 2.0.0 is postponed until PHP 7.2
- Version 2: Better Naming Conventions HOT 1
- Automated Vulnerability Scanning
- Deep Static Analysis and Unit Testing HOT 11
- Consistent Use of Regular Expressions
- Prevent super long email addresses
- For admins, the authors List should show yours first HOT 1
- Can't Install on CentOS 7? HOT 3
- Intent to Abandon Version 1 HOT 2
- Airship 2 doesn't see sodium from PHP 7.2 HOT 2
- "Outdated Version of Libsodium" notice from public/launch.php on PHP 7.2 HOT 4
- "Undefined index: email" when trying to launch airship HOT 3
- Keyggdrasil failed, Automatic update - signature failure, Call to undefined function textdomain() HOT 10
- Insecure links and loading HOT 9
- Tear Down Keyggdrasil, use a Chronicle Instead
- Background on Codebase
- CSRF Array to String Error
- blank screen after creating account HOT 1
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 airship.