# Migrazio-gida: 9.8.4 → 9.8.5

**9.8.5** bertsioak osagaien `run()` metodoaren kudeaketa hobetzen du eta `plain` txantiloi-pipe berria gehitzen du.

---

## Laburpena

### Gehitua

- Osagaien `run()` metodoak parametrorik gabe defini daitezke orain.
- `plain` txantiloi-pipe berria, URL kodetzerik gabeko JSONerako kate seguruetarako.
- Migrazio-gida hau.

### Aldatuak

- Osagaien `run()` metodoetako DTO parametroak `ODTO`-ren herentziaren bidez detektatzen dira orain, namespace-aren bidez detektatu beharrean.
- Osagaien `run()` metodoen sinadurak esplizituki baliozkotzen dira orain.

### Kenduak

- Ez da ezer kendu.

---

## Osagaien `run()` metodoaren sinadurak

Osagaiek honako `run()` sinadura hauetako bat erabil dezakete:

```php
public function run(): void
```

```php
public function run(ORequest $req): void
```

```php
public function run(MyDTO $dto): void
```

Azken kasuan, `MyDTO` klaseak `ODTO` hedatu behar du.

DTOen detekzioa `ODTO`-ren herentzian oinarritzen da orain, ez klasearen namespace-an. Beraz, DTO klaseak aplikazioaren edozein lekutan egon daitezke.

Beste sinadurak ez dira baliozkoak. `run()` metodo batek gehienez parametro bat jaso dezake, eta parametro horrek nullable ez den `ORequest` bat edo `ODTO` hedatzen duen klase bat izan behar du.

---

## `plain` txantiloi-pipe berria

`plain` pipe berriak JSON txantiloietan kateak URL kodetzerik gabe erakusteko aukera ematen du:

```text
{{ user.name | plain }}
```

Adibidez:

```text
John Doe → "John Doe"
"Kaixo" esan zuen → "\"Kaixo\" esan zuen"
```

Pipeak JSONerako kodetze segurua erabiltzen du, Unicode karaktereak eta ihes egin gabeko barrak mantentzen ditu, eta komatxoak eta JSONerako bereziak diren beste karaktereak behar bezala ihes egiten ditu.

Null balioak `null` gisa errendatzen dira.

Lehendik dagoen `string` pipeak `urlencode()` aplikatzen jarraitzen du.

---

## Eragina lehendik dauden proiektuetan

`run(ORequest $req)` edo `ODTO` hedatzen duen DTO bat erabiltzen duten osagaiek bateragarriak izaten jarraitzen dute.

Ohiko `App\DTO` namespace-an kokatutako DTOek aldaketarik gabe funtzionatzen jarraitzen dute.

Aplikazioek parametrorik gabeko `run()` metodoak erabil ditzakete orain eskaeraren datuak behar ez dituztenean.

---

## Aurreko bertsioekiko bateragarritasuna

Ez da aldaketarik behar baliozko `ORequest` edo `ODTO` parametroak erabiltzen dituzten aplikazioetan.

Onartzen ez diren `run()` sinadurak dituzten aplikazioek sinadura horiek onartutako formetako batera eguneratu behar dituzte.

---

## Garatzaileak egin beharrekoa

Ohiko aplikazioetan ez da ezer egin behar. Berrikusi `run()` metodo pertsonalizatuen sinadurak tipatu gabeko, nullable, union type, onartzen ez diren mota edo parametro anitz erabiltzen badituzte.

---

## Oharrak

Ez da konfigurazioan, datu-basean edo CLIan aldaketarik behar.
