- Container with lazy values/factories (thanks @gskierk)
- GraphQL Validation Rules (thanks @gskierk)
- Config module now using Laminas behind the scenes (thanks @gskierk)
- Refactor path resolution, avoids depedency to the
$_SERVER['QUERY_STRING']
- GraphQL Annotations for Subscriptions
- Allow Config to receive custom Parsers
nullableList
for GraphQL annotations
- Config module
- Fix route with URL encoded query strings reported at #354
- GraphQL uploads & custom directives!
- GraphQL annotations!
- GraphiQL
- Enums
- PHPUnit v9
- GraphQL v14
- Introducing Klass module with
Klass\unqualified_name
- Introducing Obj module with
Obj\patch
- Introducing
FromArray
,ToArray
andPatch
- Introducing IO module with
println
,csv_to_array
andfetch
- Fix #276 - GraphQL WebSocket client sub-protocol
- Fix #289 - GraphQL Context on subscriptions (thanks @lemonbrain-mk)
Siler\array_get_arr
type-safe array getter for arraysStr\starts_with
,Str\ends_with
andStr\contains
Str\snake_case
andStr\camel_case
case convertersStr\mb_ucfirst
andStr\mb_lcfirst
(thanks @enricodias & @williamokano)Prelude\Dispatcher
an Event Dispatcher implementing PSR-14 interfaces- Breaking:
Result
module now adheres to Rust's naming and dropsid
,code
andjson
support.Success
is nowOk
Failure
is nowErr
- Breaking: you should now explicitly use arrays (or any other type) for subscription's root and context values
- Breaking: match doesn't return null anymore, you should provide an exhaust function
- Experimental support for gRPC servers
- Support middleware-like pipelines in Swoole with
Swoole\middleware
- Add
Swoole\redirect()
sugar - New
Siler\Env
API - Add
map
,lmap
,pipe
,conduit
,lconcat
,ljoin
,filter
andlfilter
functions - Typed array-gets:
array_get_str
,array_get_int
,array_get_float
andarray_get_bool
. - Switch from Zend to Laminas
- Add
Swoole\http2
to create HTTP/2 enabled servers
- Fix string callable on route
- Fix trailing separator on
concat
- Add
lazy
constructor and call_user_func aliascall
- Drops PHP 7.2 support and adds PHP 7.4 support
- Statically-typed Psalm support
- GraphQL Subscriptions with Swoole's WebSocket
- Fix initial data on GraphQL subscriptions
- GraphQL Enum resolvers
- API to enable GraphQL debugging
- API to add custom GraphQL's Promise Executors
- CORS helper for SAPI and Swoole
- Type-safe read ints and bools from environment
- Named route params with Regex validation
- JSON encoding and decoding with opinionated defaults
- No extensions needed on development
- Better API for Maybe Monad
- Monad API for the Result object
- New File module
- Drops Db module
- Drops GraphQL type helpers