Abstract properties (hooks) in traits
Nessuno ha ancora preso questa issue.
- Lingua principale
- C
- Stelle
- 40.4k
- Fork
- 8.1k
- Merge medio
- 2g 13h
- PR unite (30g)
- 96
Descrizione
Description
At the moment such code does not work (8.4 and 8.5/master), which does not seem very logical:
<?php
trait Example
{
abstract public string $property {
get;
}
}
class ExampleImpl
{
use Example;
public function __construct(
public readonly string $property,
) {}
}
Produces:
Fatal error: ExampleImpl and Example define the same hooked property ($property) in the composition of ExampleImpl. Conflict resolution between hooked properties is currently not supported. Class was composed
According to RFC (https://wiki.php.net/rfc/property-hooks#interaction_with_traits), traits do not actually support properties, but at least such primitive conflict resolution would be nice to have.
P.S. Is it worth writing to internals for RFC if there is no way to send a PR?
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con il riproduttore fornito per trait e hooked property, quindi leggi la sezione del property-hooks RFC sull’interazione con i trait. Traccia il modo in cui la composizione dei trait gestisce l’abstract hooked property e la implementing constructor-promoted property. Il lavoro è completo quando l’esempio può essere composto senza il conflitto segnalato, preservando al contempo il comportamento previsto del property-hook.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- php
- Ambito
- compilers
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 30/100