Ereditarietà Per Restrizione

Buonasera a tutti,

vorrei chiedere un parere su un dubbio riguardo l’ereditarietà tra due classi.

Vi spiego la situazione:

Ho un model User ed il suo relativo UserController, che come potete intuire gestisce le informazioni riguardante l’utente.

Ora, vorrei creare un secondo controller chiamato RegisterController (per gestire la registrazione) utilizzando sempre User come model.

Se io nella classe RegisterController estendo la classe UserController, posso evitare l’accesso ad alcune variabili e funzioni?

Sostanzialmente vorrei utilizzare il model User, evitando alla classe RegisterController di utilizzare alcuni attributi "di troppo" (cioè, attributi che non è compito della classe RegisterController gestire).

Come si gestisce una cosa del genere? In java c’è la parola chiave “final”, presente anche in PHP, ma si può applicare solo ai metodi e non agli attributi.

Secondo me stai confondendo Controller e Model.

Infatti qui scrivi:

Quando la classe RegisterController eredita dalla UserController, la classe User rimane sempre quella,

al massimo puoi aggiungere o sovrascrivere metodi nella RegisterController.

Comunque per quello che ho capito che intendi fare, puoi usare anche solo la classe UserController e gestire l’azione di registrazione attraverso il metodo (azione) actionRegister, che andrai a creare e definire.

Non capisco poi cosa servirebbe il final in questo caso.

Il model ed il controller sono cose separate. Studiati il pattern MVC (Model View Controller).