Aidez-moi s'il vous plaît. J'ai besoin d'une meilleure compréhension des principes PHP OOP.Organiser des classes et des propriétés en PHP - la bonne façon?
Si j'ai une propriété de classe qui est immuable pour toutes les instances de la classe devrait être définie comme statique? Si oui, existe-t-il un moyen de s'assurer que les propriétés statiques sont définies dans toutes les classes de ce type? Comme je l'ai lu dans le manuel PHP, les propriétés statiques ne peuvent être contrôlées ni par l'interface ni par les classes abstraites. Ou ai-je tort?
exemple simple.
<?php
// Parent class
abstract class Employee
{
abstract public function getAlias();
}
// Child classes
class Manager extends Employee
{
public function getAlias()
{
return 'manager';
}
}
class Security extends Employee
{
public function getAlias()
{
return 'security';
}
}
Dites-moi, où une propriété alias
doit être placé? Je dois être sûr que tous les descendants d'employés qui seront créés à l'avenir auront cette propriété définie. Est-il acceptable de conserver ce type de propriétés dans des méthodes dynamiques? Ou ils devraient être placés dans des constantes, des méthodes statiques ou des propriétés statiques?
Pouvez-vous expliquer un peu, ce que vous avez l'intention d'utiliser l'alias? – Gordon
Par exemple, la propriété 'alias' (autant que toute autre similaire) peut être stockée dans la table DB et utilisée pour l'héritage de table unique - instancier une classe appropriée basée sur l'alias des enregistrements de base de données récupérés. – Roman
vous pourriez simplement utiliser le nom de classe réel au lieu d'un alias dans ce cas. 'Manager :: class' vous donnerait le nom de classe complet. De plus, votre ORM ne devrait-il pas gérer cela pour vous? Ne vous méprenez pas. C'est une question valide. Ça sent juste comme quelque chose qui pourrait ou devrait être géré par la vérification de type à la place. Mais pour décider cela a besoin de contexte. – Gordon