You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: UPGRADE.md
+41-1
Original file line number
Diff line number
Diff line change
@@ -6,11 +6,43 @@ Sinds versie 5 zijn ale data attrbiuten van Bootstrap ge"namespaced". Dit wil du
6
6
7
7
Je kan dit oplossen door een search & replace te doen door heel je project.
8
8
9
+
```
10
+
data-toggle="modal" -> data-bs-toggle="modal"
11
+
data-trigger="focus" -> data-bs-trigger="focus"
12
+
13
+
// etc...
14
+
```
9
15
## PHP
10
16
17
+
### Manieren om up te graden
18
+
Je gaat best door de oude applicatie en maakt een inschatting van welke staat de code & dependencies zijn.
19
+
20
+
Afhankelijk van de staat van de codebase kies je voor een update strategy:
21
+
* Upgrade in het project zelf (laag aantal code changes, geen major dependency changes)
22
+
* Volledige rewrite in nieuw Symfony project (structuur van codebase is volledig anders dan moderne Symfony applicatie, veel code changes, veel dependency conflicten)
23
+
* Strangler Fig van de oude applicatie (zie https://symfony.com/doc/current/migration.html#introducing-symfony-to-the-existing-application) (legacy project zonder Symfony langzaam migreren naar Symfony)
24
+
25
+
### Bundles & Namespaces
26
+
27
+
Als het project <Symfony 3 is, staat je code mogelijk nog in bundles in src/. Indien dit het geval is begin je best met in PHPStorm de oude src/ folder te renamen naar src_old/, een nieuwe src/ folder te maken, en vervolgens alle code uit de bundles samen te voegen in de nieuwe src/ folder. Normaal gezien zal PHPStorm dan automatisch de juiste namespace al klaarzetten in je files.
28
+
11
29
### Breadcrumbs
12
30
De breadcrumbs in onze core bundle zijn niet BC. Als ze nog op de oude manier werken (met de listener in de controller) dan moet je dit manueel refactoren.
13
31
32
+
Oude manier:
33
+
```php
34
+
$this->breadCrumbBuilder->addSimpleItem(
35
+
'order.header.index',
36
+
$this->router->generate(
37
+
'qlab_order_order_overview'
38
+
)
39
+
);
40
+
```
41
+
Nieuwe manier:
42
+
```php
43
+
#[Breadcrumb('order.header.index')]
44
+
public function __invoke(
45
+
```
14
46
Als het enkel annotation -> attributen is, kan je volgende Rector sets gebruiken:
Vroeger gebruikten we veel ValueObjects, ook om simpele string values op te slaan. Sinds PHP8 hebben we hiervoor native enums.
38
70
39
-
Je kan je VOs dus omzetten naar enums (indien ze enkel een vaste lijst string values kunnen hebben). Zaken zoals Money, Coordinates of Range zijn nog steeds VOs. Zaken zoals Gender, Province, etc.. zijn dus enums.
71
+
Je kan je VOs dus omzetten naar enums (indien ze enkel een vaste lijst string values kunnen hebben). Zaken zoals Money, Coordinates of Range zijn nog steeds VOs. Zaken zoals Gender, Province, etc.. zijn enums.
72
+
73
+
Hiervoor is geen tool beschikbaar, Rector kan dit niet. Je moet dus zelf enums gaan maken en overal in de code dit aanpassen. Omdat dit best wel veel werk is, is het niet altijd de moeite om dit te doen. Is een nice-to-have.
74
+
75
+
In je entities gebruik je `#[ORM\COlumn(enumType: <enum_fqcn>)` van Doctrine. In je Symfony forms gebruik je het `EnumType` form type.
40
76
41
77
```php
42
78
enum Gender: string
@@ -91,6 +127,8 @@ return function (RectorConfig $rectorConfig): void {
91
127
```
92
128
93
129
### Security
130
+
Pre Symfony 5 was de security.yaml anders. Onder andere de password encoders/hashers config is aangepast.
Indien er een oude user implementatie (met msgphp bundle, of iets ouder) in het projet zit, is het vaak het snelst om alles weg te smijten en https://github.com/sumocoders/Framework-User-Implementation-Example opnieuw over te nemen.
106
145
### Config
146
+
De Sentry configuratie om errors te ignoren is aangepast. Je gebruikt nu best deze syntax:
0 commit comments