Releases: slack-php/slack-php-app-framework
Releases · slack-php/slack-php-app-framework
v1.0.0
v0.7.1
- Fixed missing
Context::error()method. 😅 - Added
InputStateValidator::new()method. - Fixed
InputStateValidator::rule()so that callback can acceptstringorstring[](e.g., for multi-selects) values.
v0.7.0
- Added
Context::appHome()that returns aHomeobject. - Added
Home::update()(force),Home::safeUpdate(), andHome::updateIfSafe(). - Deprecated
Context::home()in favor ofContext::appHome(). - Updated
Modals::update()andAdded Modals::safeUpdate()andModals::updateIfSafe(). - Updated
Context::error()to return anErrorobject, that helps you log and display errors. - Added methods in
AppConfigto configure the error templates for theErrorobject. - Added
InputStateValidatorandInputStateValidationExceptionfor validatingInputState. - Updated
ClassResolverlistener to add the listener's class to the logging context. - Updated
WIPlistener to better handle push vs. open for modals. - Removed vestigial
Context::setSensitive()method.
v0.6.0
- Improved
Baselistener. - Fixed another bug in the
WIPlistener. - Removed previously deprecated
Duallistener (should useBaselistener now).
v0.5.0
- Added support for Socket Mode in a separate package: slack-php/slack-php-socket-mode.
- Removed
SensitiveValuecode and logic. Was unused by framework and not something we want to support externally. - Added
InputStatehelper class to assist in extracting submitted data fromview_submissioninto a flat associative array structure and simplify the non-uniform input types. - Fixed a bug in the
Chaininterceptor that was preventing interceptors from firing more than once in Socket Mode. - Added the
Baselistener, which is an improvement onDuallistener. - Deprecated the
Duallistener (should useBaselistener now). - Fixed a bug in the
WIPlistener.
v0.4.0
- Fixed a bug with
App::viewSubmissionAsync(). - Updated
Context::home()for better support when working with App Home surfaces:- Allows specifying the user now via the 2nd parameter, instead of only being able to use the current user.
- Allows specifying whether to include the
hashvia the 3rd parameter for better control over handling race conditions. - Bumped up the version requirement for
slack-php/slack-block-kitto0.19.0which allows you to set all the supported fields (includingprivate_metadata) on App Home surfaces. - Updated
Payload::getMetadata()to work correctly for extracting data from theapp_home_openedevent.
- Updated the
HasDatatrait (part ofContext, to make the generalget*()functions less restrictive on return type. - Added a
timestampvalue to theContext(for HTTP server) that holds the request timestamp value provided by Slack.- This could potentially be used to determine how close you are to the ack/
trigger_idtimeout.
- This could potentially be used to determine how close you are to the ack/
v0.3.0
This release contains updates made while dogfooding.
- Improved
Router:- Added
viewSubmissionAsyncto routing (available via eitherApporRouter). I found myself unexpectedly needing this while dogfooding.
- Added
- Improved
Contextobject:- Added
Context::getAppConfig()andContext::getApiClient()getters toContext. Seemed useful while dogfooding to have these. - Added support for
Surfacefactories (i.e.,callables that returnSurfaces) to methods accepting surfaces like:ack(),respond(),say(),home(),modals(), andview(). Applies to anything calling theCoercemethods forSurfaces.
- Added
- Improve
Payloadobject:- Added
HasData::getAllOf()method, which also applies to thePayload. - Updated
Payload::getMetadata()to return an emptyPrivateMetadataobject when metadata isnull, instead of throwing an exception. - Added
Payload::getResponseUrl()for abstracting the process of getting theresponse_urlfrom the payload. Works forview_submissionpayloads too, whereresponse_urlsare created from Conversation or Channel Select inputs.
- Added
- Added some new
Listeners:Dual- An abstractListeneryou can extend to provide both sync/pre-Ack and async/post-Ack logic.WIP- A stub-likeListenerthat outputs "Work in progress" in the best way (e.g., message, modal, log) available for the current interaction type.
- Improved logging:
- (BC) Renamed
SlackLogger::addData()to SlackLogger::addContext()` because it fit with PSR-3 nomenclature better. - Added the ability to add and get context data with the base
Exceptionclass via::addContext()and::getContext(), respectively. - Improve
StderrLoggerto include context from the exception, when available.
- (BC) Renamed
- Improved
CommandRouter:- (BC) Renamed the default
listcommand inCommandRoutertohelp. - Added support for custom default commands by using
'*'or theCommandRouter::withDefault()command. - (BC) Renamed
CommandRouter::description()towithDescription().
- (BC) Renamed the default
- Improved
Deferrers:- Fixed a couple of issues with
DeferredContextCliServerwhile dogfooding. - Fixed
ShellExecDeferrerso that it allows logging viastderr.
- Fixed a couple of issues with
v0.2.0
- Improved
AppServerimplementations:- Added overrideable
init()method to assist in initialization since constructor is final. - Added support for setting AppCredentials on the base AppServer.
- Added overrideable
- Improved
Deferrerimplementations:- Moved
PreAckDeferrerto newDeferralnamespace. - Added
ShellExecDeferrerto allow deferring via a backgroundshell_execcall. - Added
DeferredContextCliServerfor processing deferredContexts via CLI. - Fixed initialization bug in
Acklistener.
- Moved
- Improved
MultiTenantHttpServerimplementation:- Added support for more lenient/intuitive app registrations.
- Added
Coerce::application()helper.
- Improved
Authcomponents:- Fixed bug in
AuthMiddlewarethat validated credentials too early. - Updated
AppCredentials::supports*()methods. - Added missing
App::withBotToken()method.
- Fixed bug in
v0.1.2
- Fixes
AppCredentials::fromEnv()to handlenullvalues.
v0.1.1
- Replaced
jeremeamia/slack-block-kitwith the new version:slack-php/slack-block-kit