CodeIgniter: Prise de décision pour créer une bibliothèque et une aide dans CodeIgniter

Après avoir développé pendant un certain temps dans CodeIgniter, j’ai du mal à prendre des décisions pour créer une bibliothèque personnalisée et quand créer une aide personnalisée.

Je comprends que les deux permettent d’avoir une logique d’entreprise et qu’ils sont réutilisables dans l’ensemble de la structure (appel depuis un autre contrôleur, etc.).

Mais je crois fermement que le fait que les développeurs de base de CI séparent les bibliothèques des assistants, il doit y avoir une raison derrière et je suppose, c’est la raison pour laquelle je dois découvrir et être éclairé.

Les développeurs CI là-bas, les pls conseillent.

Je pense qu’il vaut mieux inclure un exemple.

Je pourrais avoir un

class notification_lib { function set_message() { /*...*/} function get_message() {/*...*/} function update_message() {/*...*/} } 

Alternativement, je pourrais également inclure toutes les fonctions dans un assistant.

Dans un fichier notification_helper.php , je vais inclure set_message(), get_message(), update_message() ..

Où que ce soit, il peut toujours être réutilisé. Donc, cela m’a fait réfléchir à la question de savoir à quel moment exactement nous créons une bibliothèque et une aide en particulier dans CI.

Dans une application php normale (sans cadre), le choix est clair car il n’y a pas d’aide, il vous suffit de créer une bibliothèque pour réutiliser les codes. Mais ici, dans CI, je voudrais comprendre la séparation des développeurs principaux des bibliothèques et des assistants

    Il y a une question que je me pose lorsque je décide de cela et je pense que cela vous aidera également. La question est: est-ce que je propose une fonctionnalité à mon framework ou est-ce que je consolide?

    Si vous avez une fonctionnalité que vous ajoutez à votre framework, vous voudrez créer une bibliothèque pour cela. La validation de formulaire, par exemple, est une fonctionnalité que vous ajoutez à une structure. Même si vous pouvez effectuer une validation de formulaire sans cette bibliothèque, vous créez un système standard pour la validation, qui est une fonctionnalité.

    Cependant, il existe également une aide de formulaire qui vous aide à créer le code HTML des formulaires. La grande différence par rapport à la bibliothèque de validation de formulaire est que l’assistant de création ne crée pas de nouvelle fonctionnalité, il ne s’agit que d’un ensemble de fonctions connexes qui vous aident à écrire correctement le code HTML des formulaires.

    Espérons que cette différenciation vous aidera comme elle l’a fait.

    Le choix se résume à un ensemble de fonctions ou de classes. Le choix est presque le même qu’une classe d’instance vers une classe statique.

    Si vous avez simplement un groupe de fonctions, il vous suffit de créer un groupe de fonctions. Si ces groupes de fonctions partagent beaucoup de données, vous devez créer une classe avec une instance pour stocker ces données entre les appels de méthode (fonction de classe).

    Avez-vous beaucoup de propriétés publiques ou privées à stocker concernant vos messages de notification?

    Si vous utilisez une classe, vous pouvez définir plusieurs messages via le système, puis get_messages () peut renvoyer un tableau privé de messages. Cela le rendrait parfait pour être une bibliothèque.

    Tout d’abord, vous devez être sûr de comprendre la différence entre libaray CI et classe d’assistance. La classe d’assistance est tout ce qui aide n’importe quelle chose pré-faite telle que le array , la ssortingng , l’ uri , etc. ils sont là et PHP leur fournit déjà des fonctions, mais vous créez toujours une aide pour leur append plus de fonctionnalités. D’un autre côté, libaray peut être quelque chose comme quelque chose que vous créez pour la première fois, une solution qui n’est peut-être pas nécessairement déjà là.

    Une fois que vous avez bien compris cette différence, prendre une décision ne doit pas être si difficile.

    J’espère que cela pourra aider.

    Merci

    Helper contient un groupe de fonctions pour vous aider à effectuer une tâche particulière.

    Assistants disponibles dans CI

    Les bibliothèques contiennent généralement des fonctionnalités non spécifiques à CI. Comme une bibliothèque d’images. Quelque chose qui est portable entre les applications.

    Bibliothèques disponibles dans CI

    Lien source

    Si quelqu’un me demande comment vous suivez quand vient le temps de créer des helpers ou des bibliothèques.

    Je pense que ces différences:

    • Classe: En résumé, une classe est un modèle pour un object. Et un object encapsule l’état et la responsabilité conceptuellement liés de quelque chose dans votre application et offre généralement une interface de programmation avec laquelle interagir avec ceux-ci. Cela favorise la réutilisation du code et améliore la maintenabilité.
    • Fonctions: Une fonction est un morceau de code qui prend une entrée supplémentaire sous la forme de paramètre et effectue un traitement et renvoie une valeur. Vous avez déjà vu de nombreuses fonctions comme fopen () et fread (), etc. Elles sont des fonctions intégrées, mais PHP vous offre également la possibilité de créer vos propres fonctions.

    Alors, allez à la classe, c.-à-d. Les bibliothèques si un seul point correspond

    1. variable globale doit utiliser dans deux ou plusieurs fonctions ou même une, je déteste en utilisant le mot-clé global
    2. initialisation par défaut à chaque appel ou chargement
    3. certaines tâches sont privées pour une entité et ne sont pas ouvertes publiquement, pensez aux fonctions pour lesquelles les modificateurs publics n’ont jamais besoin?
    4. fonction à fonction dépendances c.-à-d. les tâches sont séparées, mais deux ou plusieurs tâches en ont besoin. Pensez à valider_email vérifier uniquement pour l’envoi de script pour to, cc, bcc, etc. Tous ces éléments doivent être validate_email.
    5. Enfin, toutes les tâches liées, c’est-à-dire les fonctions, doivent être placées dans un object ou un fichier unique, ce qui facilite la référence et le souvenir.

    Pour les assistants: tout point qui ne correspond pas aux bibliothèques

    Personnellement, j’utilise des bibliothèques pour de grandes choses, disons une bibliothèque FTP que j’ai construite qui est beaucoup plus rapide que la bibliothèque livrée de CodeIgniters. Ceci est une classe avec beaucoup de méthodes qui partagent des données entre elles.

    J’utilise les helpers pour les petites tâches qui ne sont pas liées à beaucoup d’autres fonctionnalités. De petites fonctions telles que la décoration de chaînes peuvent être un exemple. Ou copier un répertoire récursivement vers un autre emplacement.