Perchè i costruttori SameAsClassName () sono deprecati in PHP7?

4

Secondo il manuale PHP5 , __construct() è stato introdotto in PHP5 come sostituto di SameAsClassName() costruttori, e da PHP7, il vecchio stile è contrassegnato come deprecato, quindi nelle versioni future, SameAsClassName() non sarà più consentito.

Mi sto solo interrogando sulla logica di questa decisione. Il manuale non fornisce alcuna motivazione per tale modifica. Quali sono i vantaggi dell'uso di __construct () vs SameAsClassName ()?

Sidenote: nel mio code-base dove ci sono circa 2000 classi, questo cambiamento causa la necessità di rinominare manualmente ogni classe nel __construct.

    
posta user1179459 14.03.2016 - 01:04
fonte

1 risposta

3

Il cambiamento potrebbe aver fatto parte di uno schema più ampio per distinguere le funzioni speciali dalle funzioni regolari. Nella stessa pagina che hai collegato, descrivono la funzione speciale __destruct che in precedenza non aveva un analogo.

L'idioma di una funzione con lo stesso nome della classe è che il costruttore non è eccessivamente diffuso al di fuori di Java / C ++ / C #.

Queste ragioni combinate potrebbero essere state sufficienti a giustificare la revisione del sistema di classe in quella versione principale della lingua.

La denominazione è probabilmente dovuta al fatto che il doppio carattere di sottolineatura __ viene comunemente usato per l'implementazione o il linguaggio in lingue come Python, C e C ++ - seguendo l'esempio non ci sono sorprese.

Se vuoi una risposta definitiva, vai a sfogliare gli archivi delle liste e spera che non sia stato discusso in privato o di persona.

    
risposta data 14.03.2016 - 13:40
fonte

Leggi altre domande sui tag