Skip to content

Commit 553ff27

Browse files
committed
chore: clean up spaces and add more links
1 parent 26a4bcf commit 553ff27

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

src/Web/Blog/articles/2025-05-08-beta-1.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ tag: Release
88

99
Two years ago, Tempest started out as an educational project during one of my livestreams. Since then, we've had 56 people contribute to the framework, merged 591 pull requests, resolved 455 issues, and have written around 50k lines of code. Two contributors joined the core team and dedicated a lot of their time to help make Tempest into something real. And today, we're tagging Tempest as beta.
1010

11-
We have to be real though: we won't get it perfect from the start. Tempest is now in beta, which means we don't plan any breaking changes to stable components anymore, but it also means we expect there to be bugs. And this puts us in an underdog position: why would anyone want to use a framework that has fewer features and likely more bugs than other frameworks?
11+
We have to be real though: we won't get it perfect from the start. Tempest is now in beta, which means we don't plan any breaking changes to stable components anymore, but it also means we expect there to be bugs. And this puts us in an underdog position: why would anyone want to use a framework that has fewer features and likely more bugs than other frameworks?
1212

1313
It turns out, people _do_ see value in Tempest. It's the only reason I decided to work on it in the first place: there is a group of people who _want_ to use it, even when they are aware of its current shortcomings. There is interest in a framework that embraces modern PHP without 10 to 20 years of legacy to carry with it. There is interest in a project that dares to rethink what we've gotten used to over the years. There already is a dedicated community. People already are building with Tempest. Several core members have real use cases for Tempest and are working hard to be able to use it in their own projects as soon as possible. So while Tempest is the underdog, there already seems enough reason for people to use it today.
1414

@@ -62,7 +62,7 @@ use Tempest\Database\IsDatabaseModel;
6262
final class Book
6363
{
6464
use IsDatabaseModel;
65-
65+
6666
// …
6767
}
6868

@@ -97,11 +97,11 @@ $data = query(Book::class)
9797
->all();
9898
```
9999

100-
We've managed to truly decouple model classes from the persistence layer, while still making them really convenient to use. This is a great example of how Tempest gets out of your way.
100+
We've managed to truly decouple model classes from the persistence layer, while still making them really convenient to use. This is a great example of how Tempest gets out of your way.
101101

102102
An important note to make here is that our ORM is one of the few experimental components within Tempest. We acknowledge that there's more work to be done to make it even better, and there might be some future breaking changes still. It's one of the prime examples where we need the community to help us learn what should be improved, and how.
103103

104-
## tempest/view changes
104+
## `tempest/view` changes
105105

106106
We've added support for [dynamic view components](/main/essentials/views#dynamic-view-components), which allows you to render view components based on runtime data:
107107

@@ -120,19 +120,18 @@ We've improved [boolean attributes](/main/essentials/views#boolean-attributes),
120120
<!-- <div data-active></div> when $isActive is truthy -->
121121
```
122122

123-
Finally, we switched from PHP's built-in DOM parser to our custom implementation. We realized that trying to parse tempest/view syntax according to the official HTML spec added more problems than it solved. After all, tempest/view syntax is a superset of HTML: it compiles to spec-compliant HTML, but in itself it is not spec-compliant.
123+
Finally, we switched from PHP's built-in DOM parser to our custom implementation. We realized that trying to parse {`tempest/view`} syntax according to the official HTML spec added more problems than it solved. After all, {`tempest/view`} syntax is a superset of HTML: it compiles to spec-compliant HTML, but in itself it is not spec-compliant.
124124

125125
Moving to a custom parser written in PHP comes with a small performance price to pay, but our implementation is slightly more performant than [masterminds/html5](https://github.com/Masterminds/html5-php), the most popular PHP-based DOM parser, and everything our parser does is cached as well. You can [check out the implementation here](https://github.com/tempestphp/tempest-framework/tree/main/packages/view/src/Parser).
126126

127127
## Container features
128128

129-
We've added a new interface called `HasTag`, which allows any object to manually specify its container tag. This feature is especially useful combined with config files, and allows you to define multiple config files for multiple occasions. For example, to define multiple database connections:
130-
129+
We've added a new interface called {b`Tempest\Container\HasTag`}, which allows any object to manually specify its container tag. This feature is especially useful combined with config files, and allows you to define multiple config files for multiple occasions. For example, to define multiple database connections:
131130

132131
```php
133132
return new PostgresConfig(
134133
tag: 'backup',
135-
134+
136135
// …
137136
);
138137
```
@@ -160,7 +159,7 @@ use Tempest\Container\Proxy;
160159
final readonly class BookController
161160
{
162161
public function __construct(
163-
#[Proxy]
162+
#[Proxy]
164163
private VerySlowClass $verySlowClass
165164
) { /* … */ }
166165
}
@@ -205,21 +204,21 @@ final readonly class OverviewMiddleware implements ConsoleMiddleware
205204

206205
## Smaller features
207206

208-
Finishing with a couple of smaller changes, but it's these kinds of small details that make the difference in the long run. So thanks to everyone who contributed:
207+
Finishing with a couple of smaller changes, but it's these kinds of small details that make the difference in the long run. So thanks to everyone who contributed:
209208

210209
- We've added a couple of new commands: `make:migration` and `container:show`
211-
- We've added testing utilities for our event bus
210+
- We've added testing utilities for our [event bus](/main/tempest-in-depth/events)
212211
- There's a new `Back` response class to redirect to the previous page
213212
- We now allow controllers to also return strings and arrays directly
214-
- We've added a new storage component, which is a slim wrapper around [Flysystem](https://flysystem.thephpleague.com/docs/)
213+
- We've added a [new storage component](/main/tempest-in-depth/storage), which is a slim wrapper around [Flysystem](https://flysystem.thephpleague.com/docs/)
215214
- And, [a lot more](https://github.com/tempestphp/tempest-framework/releases/tag/v1.0.0-beta.1)
216215

217216
## In closing
218217

219218
It's amazing to see what we've achieved in a little less than two years. Tempest has grown from being a dummy project used during livestreams, to a real framework.
220219

221-
There's a long way to go still, but I'm confident when I see how many people are contributing to and excited about Tempest. You can follow along the beta progress on [GitHub](https://github.com/tempestphp/tempest-framework/milestone/16); and you can be part of the journey as well: [give Tempest a try](/main/getting-started/getting-started) and [join our Discord server](https://tempestphp.com/discord).
220+
There's a long way to go still, but I'm confident when I see how many people are contributing to and excited about Tempest. You can follow along the beta progress on [GitHub](https://github.com/tempestphp/tempest-framework/milestone/16); and you can be part of the journey as well: [give Tempest a try](/main/getting-started/getting-started) and [join our Discord server](https://tempestphp.com/discord).
222221

223222
See you soon!
224223

225-
<img class="w-[1.66em] shadow-md rounded-full" src="/tempest-logo.png" alt="Tempest" />
224+
<img class="w-[1.66em] shadow-md rounded-full" src="/tempest-logo.png" alt="Tempest" />

0 commit comments

Comments
 (0)