Development and tests
Architecture
Channel/— selects the route, callsSlack Channel. php to, and invokes the transport; implementsSlack () Channel.Interface Configuration/— validated destination value object.Slack Route. php Configuration/— TYPO3 extension configuration and secrets at the delivery boundary.Slack Configuration. php Message/— immutable Slack message content.Slack Message. php Transport/— HTTPS request/response handling.Slack Transport. php Exception/— delivery failure details.Slack Transport Exception. php
The extension uses service autowiring and the
notifications. tag. Changes to the notification core are not
required to register the channel.
Run tests
From the extension source root, install development dependencies:
composer install
composer test:php:unit
composer test:php:acceptance
composer phpstan
composer cgl:ci
The composer. also defines composer test, which includes
lint, unit, functional, and acceptance scripts. Consult the repository
for the exact scripts available in the checkout.
Tests are grouped under Tests/ and Tests/.
Acceptance tests boot TYPO3 with a simulated Slack HTTP handler and do
not send live Slack notifications. They cover the main routing entry
points, formats, queued message serialization and failures.
Note
A repository checkout may require its own testing dependencies and a valid TYPO3/PHP test matrix. Test both TYPO3 13.4 and 14.3 before asserting full cross-version compatibility.
Build and preview documentation
TYPO3's documentation renderer supports the reStructuredText files in
Documentation/. From the root of the extension, with Docker
available, run:
docker run --rm --pull always \
-v "$(pwd):/project" \
ghcr.io/typo3-documentation/render-guides:latest
For renderer options and local preview instructions, see the TYPO3 documentation guide.
Contributing
Keep the public API backward compatible and add or adjust tests for
message validation, route changes, network errors, and security behavior.
When changing configuration keys or APIs, update these documentation
pages and README. together.