Skip to content

Repository files navigation

Swytch Framework

The Swytch Framework is a new, fledgling, but powerful framework allowing you to write HTML inline with your application logic, including API endpoints. It is built on top of htmx for the browser-side heavy-lifting, and a custom, streaming HTML5 parser, to handle the HTML and escaping.

Features:

  • Write HTML inline with your PHP code, relying on context-aware escaping.
  • Keep you API logic near the HTML that uses it.
  • Application routing via HTML (similar to ReactRouter).
  • Automatic CSRF protection.
  • Context-Aware escaping.
  • Automatic HTML5 validation.
  • Authorization and authentication aware routing and rendering.
  • Browser cache control.
  • Builtin support for translations.

NOTE: This is currently pre-production software and is not recommended for production use.

Example Apps

The following are some example apps using the Swytch Framework:

Check it out live on once.getswytch.com. This is a secret message app.

This app provides a simple authentication system by emailing passwords. It provides Kubernetes ingress authentication.

Example Component

#[\Bottledcode\SwytchFramework\Template\Attributes\Component('example')]
class ExampleComponent {
use \Bottledcode\SwytchFramework\Template\Traits\RegularPHP;
use \Bottledcode\SwytchFramework\Template\Traits\Htmx;
#[\Bottledcode\SwytchFramework\Router\Attributes\Route(\Bottledcode\SwytchFramework\Router\Method::POST, '/api/number')]
publicfunctiongetNumber(string$name, string$number): int {
return$this->render($name, random_int(0, 100));
}
publicfunctionrender(string$name, int$number = null): string {
$this->begin();
?>
<div>
<h1>Hello, {<?=$name?>}</h1>
<form hx-post="/api/number">
<!-- CSRF protection is automatically added to forms -->
<input type='hidden' name='name' value={<?=$name?>} />
<p>Here is a random number: {<?=$number?>}</p>
<button type="submit">Generate a new random number</button>
</form>
</div>
<?phpreturn$this->end();
}
}

About

The Smart PHP Framework

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

21 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages