Read how to get started with Tempest here.
Zero config, zero overhead. This is Tempest:
final readonly class BookController
{
#[Get('/blog')]
public function index() { /* … */ }
#[Get('/blog/{post}')]
public function show(Post $post) { /* … */ }
}
final readonly class RssSyncCommand
{
public function __construct(private Console $console) {}
#[ConsoleCommand('rss:sync')]
public function __invoke(bool $force = false) { /* … */ }
}
We welcome contributing to the Tempest framework! We only ask that you take a quick look at our guidelines and then head on over to the issues page to see some ways you might help out!