php / php/php-src

Enums inside classes

Aperta
#22,738 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Feature Status: Requires RFC
Lingua principale
C
Stelle
40.4k
Fork
8.2k
Merge medio
2g 13h
PR unite (30g)
96

Descrizione

Description

I wanted to briefly gauge the sentiment here regarding integrated enums in PHP classes, as a preliminary step toward an RFC. I think this would be quite concise.

Proposal: Enums should be embeddable in PHP classes. The goal is to avoid unnecessarily small files while keeping the namespace clean.

When classes work with many constants—perhaps even in groups—enums are a natural choice to define them and make them accessible for others:

public class Test {
    public const string PARAM_ONE = 'one';
    public const string PARAM_TWO = 'tow';
    //... more
    public const string CONST_ONE = 1;
    public const string CONST_TWO = 2;
        //... more
}

Instead of creating files just for the enums (autoloading), like TestParams.php and TestConsts.php, something like this would be nice, which would give them Enums a proper home, too:

public class Test {
    public enum PARAM {
        public const string ONE = 'one';
        public const string TWO = 'tow';
        //... more
    }
    public enum CONST {
        public const string CONST_ONE = 1;
        public const string CONST_TWO = 2;
        //... more
    }
}

The key question will be: how can the enums be made accessible? To avoid having different methods for internal and external access, general access with appropriate visibility would be the right approach:

Test::PARAM::One

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia esaminando gli esempi della proposta e le regole del linguaggio esistenti per enum e classi PHP. Non sono stati identificati file sorgente né test, quindi il primo passo consiste nel determinare la sintassi, la visibilità e la semantica di accesso necessarie prima di redigere un RFC. Il lavoro sarà considerato completato quando sarà prodotta una proposta di progettazione del linguaggio condivisa, non una modifica localizzata del codice.

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à
Tranquilla
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.