Complex classes like DroitAcces often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use DroitAcces, and based on these observations, apply Extract Interface, too.
| 1 | <?php |
||
| 6 | class DroitAcces { |
||
| 7 | private $logged; |
||
| 8 | |||
| 9 | //pour la table identite |
||
| 10 | private $id_identite; |
||
| 11 | private $super_admin; |
||
| 12 | |||
| 13 | //pour la table liste_droit_acces |
||
| 14 | private $id_liste_droit_acces; |
||
| 15 | |||
| 16 | //pour des droits pour la gestion des contenus |
||
| 17 | private $modif_seo; |
||
| 18 | private $modif_contenu; |
||
| 19 | private $modif_navigation; |
||
| 20 | private $supprimer_page; |
||
| 21 | |||
| 22 | |||
| 23 | //-------------------------- CONSTRUCTEUR ----------------------------------------------------------------------------// |
||
| 24 | public function __construct() { |
||
| 45 | //-------------------------- FIN CONSTRUCTEUR ----------------------------------------------------------------------------// |
||
| 46 | |||
| 47 | |||
| 48 | |||
| 49 | //-------------------------- GETTER ----------------------------------------------------------------------------// |
||
| 50 | public function getLogged(){ |
||
| 71 | |||
| 72 | /** |
||
| 73 | * @return array |
||
| 74 | */ |
||
| 75 | private function getListeDroitAcces() { |
||
| 92 | |||
| 93 | /** |
||
| 94 | * @return array |
||
| 95 | */ |
||
| 96 | private function getListeDroitPage($page) { |
||
| 107 | |||
| 108 | /** |
||
| 109 | * @param $id_page |
||
| 110 | */ |
||
| 111 | private function getListeDroitModificationContenu($id_page) { |
||
| 138 | |||
| 139 | //autres getter |
||
| 140 | /** |
||
| 141 | * pour savoir si en fonction des droits d'accès de l'utilisateur il peu ou non accéder à cete page |
||
| 142 | * on passe outre les test si on est super admin |
||
| 143 | * @param string $page |
||
| 144 | * @return bool |
||
| 145 | */ |
||
| 146 | public function getDroitAccesPage($page) { |
||
| 157 | |||
| 158 | /** |
||
| 159 | * fonction qui permet de gérer les droits d'accès sur les contenus : |
||
| 160 | * - creer une page |
||
| 161 | * - modifier du contenu (SEO, navigation, contenu) |
||
| 162 | * - supprimer une page |
||
| 163 | * si on est super admin on passe outre tous les tests |
||
| 164 | * @param $droit |
||
| 165 | * @param $id_page |
||
| 166 | * @return bool|null |
||
| 167 | */ |
||
| 168 | public function getDroitAccesContenu($droit, $id_page) { |
||
| 181 | |||
| 182 | /** |
||
| 183 | * pour savoir si un utilisateur à le droit de supprimer, modifier ou ajouter des trucs |
||
| 184 | * @param $droit_acces |
||
| 185 | * @return bool |
||
| 186 | */ |
||
| 187 | public function getDroitAccesAction($droit_acces) { |
||
| 197 | //-------------------------- FIN GETTER ----------------------------------------------------------------------------// |
||
| 198 | |||
| 199 | |||
| 200 | |||
| 201 | //-------------------------- SETTER ----------------------------------------------------------------------------// |
||
| 202 | |||
| 203 | //-------------------------- FIN SETTER ----------------------------------------------------------------------------// |
||
| 204 | } |