Classe d'assistance en PHP
Je veux créer un helper classe contenant la méthode comme cleanArray, split_char, split_word, etc.
L'aide de la classe elle-même doit être utilisé avec beaucoup de classe. exemple :
Class A will user Helper, Class B, Class C, D, E also user Helper Class
quelle est la meilleure façon d'écrire et l'utilisation de la classe helper en PHP ?
ce que je sais, c'est la connaissance de base de la programmation orientée objet qui, dans chaque Classe, que l'utilisation de la classe Helper doit créer un objet d'assistance.
$helper = new Helper();
Que le droit ou peut-être quelqu'un peut me donner meilleur moyen de le faire.
Je vais aussi créer XXX Classe qui peut utiliser la Classe A, B, C, etc.
Mise à JOUR : ->correction de ma faute en split_word méthode 😀
Basé sur Saül, Aram Kotcharian et alex réponse, j'ai modifié mon code mais sa ne fonctionnent pas, je ne sais pas pourquoi.
<?php
class Helper {
static function split_word($text) {
$array = mb_split("\s", preg_replace( "/[^\p{L}|\p{Zs}]/u", " ", $text ));
return $this->clean_array($array);
}
static function split_char($text) {
return preg_split('/(?<!^)(?!$)/u', mb_strtolower(preg_replace( "/[^\p{L}]/u", "", $text )));
}
}
?>
et je l'utilise dans d'autres Classe
<?php
include "Helper.php";
class LanguageDetection {
public function detectLanguage($text) {
$arrayOfChar = Helper::split_char($text);
$words = Helper::split_word($text);
return $arrayOfChar;
}
}
$i = new Detection();
print_r($i->detectLanguage("ab cd UEEef する ح خهعغ فق 12 34 ٢ ٣ .,}{ + _"));
?>
source d'informationauteur Ahmad
Vous devez vous connecter pour publier un commentaire.
En règle générale, ils doivent contenir des fonctionnalités communes, mais n'a pas de désignation spéciale en vertu de l'architecture globale de l'application.
Helper
En bref:
Helper classes sont généralement un signe de manque de connaissances sur le Modèle du domaine du problème et considéré comme un AntiPattern (ou au moins une Odeur de Code) par de nombreux. Méthodes de déplacement où ils appartiennent, par exemple, sur les objets sur lesquels les propriétés qu'ils opèrent, au lieu de la collecte à distance des fonctions associées dans les classes statiques. Utiliser l'Héritage pour les classes qui partagent le même comportement. Utilisation de la Composition lorsque les objets sont différents sur le plan comportemental, mais besoin de partager certaines fonctionnalités. Ou de l'utilisation des Traits.
La statique Utils classe que vous trouverez souvent dans PHP est une odeur de code. Les gens jettent plus ou moins aléatoire des fonctions dans une classe pour l'organisation. Ce qui est bien quand vous voulez faire la procédure de codage avec PHP<5.2. Que de 5,3 vous groupe de personnes dans un espace de noms à la place. Lorsque vous voulez faire de la programmation orientée objet, vous voulez éviter les méthodes statiques. Vous souhaitez que vos objets ont Une forte Cohésion et de Couplage Faible. Méthodes statiques atteindre l'exact opposé. Ce sera également rendre votre code moins vérifiables.
En outre, chaque Classe que l'utilisation de la classe Helper doit créer un objet d'assistance est une odeur de code. Vos collaborateurs ne doivent pas créer d'autres collaborateurs. Déplacez la création de l'ensemble d'objets graphiques dans des Usines ou des Constructeurs à la place.
Au lieu de créer de classe statique , vous devez juste écrire de simples fonctions , et d'inclure ce fichier dans le répertoire/fichier d'amorçage (vous pouvez même utiliser des espaces de noms).
Au lieu de:
Il devrait être:
Il n'y a pas de point enveloppant le tout dans une classe. Juste parce que vous le mettez dans une classe n'est pas orienté objet .. en fait il fait exactement le contraire.
Vous pouvez créer une classe avec des méthodes statiques...
Vous pouvez également l'espace de noms d'un tas de fonctions avec un
namespace
mais je pense que le premier est préféré.Utiliser les méthodes statiques de la classe en tant que telle:
Ensuite appeler comme ceci:
Si dans un autre fichier, utilisez la commande suivante en haut: