45 votes

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

Après avoir développé dans CodeIgniter pour un certain temps, je trouve qu'il est difficile de prendre des décisions quand à créer une bibliothèque personnalisée et quand créer un helper personnalisé.

Je ne comprends qui permettent à la fois d'avoir de la logique métier et sont réutilisables dans le cadre de l'appel à partir de différents contrôleur etc.)

Mais je crois fermement que le fait que celui CI les développeurs principaux sont la séparation des bibliothèques d'aides, il y a une raison derrière elle, et je pense, c'est la raison d'attente pour moi de découvrir et obtenir éclairé.

CI développeurs là-bas, pls conseiller.

je pense qu'il est préférable d'inclure un exemple.

J'ai pu avoir une

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

   function get_message() {/*...*/}

   function update_message() {/*...*/}
}

Sinon, je pourrais aussi inclure toutes les fonctions dans un helper.

En notification_helper.php le fichier, je vais l'inclure set_message(), get_message(), update_message()..

Où de toute façon, il peut encore être réutilisés. Donc, cela m'a fait penser à la prise de décision point sur quand exactement nous créer une bibliothèque et un aide en particulier dans les IC.

Dans des conditions normales (cadre moins) php app, le choix est clair qu'il n'y a aucune aide, vous aurez juste besoin de créer une bibliothèque dans le but de réutiliser les codes. Mais ici, en CI, j'aimerais bien comprendre le cœur des développeurs de séparation des bibliothèques et des aides

59voto

Phil Sturgeon Points 19227

Eh bien, le choix se résume à un ensemble de fonctions ou de la classe. Le choix est presque le même comme une instance de la classe versets d'une classe statique.

Si vous avez juste un simple groupe de fonctions alors vous avez seulement besoin de faire un groupe de fonctions. Si ces groupe de fonctions partagent un grand nombre de données, alors vous avez besoin de faire une classe qui a une instance de stocker ces données dans l'entre de la méthode (fonction de classe) des appels.

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

Si vous utilisez une classe, vous pouvez définir plusieurs messages via le système get_messages() peut retourner un array privée de messages. Qui le rendent parfait pour être une bibliothèque.

28voto

Seaux Points 1546

Il y a une question que je me pose au moment de décider de ce que je pense va vous aider. La question est: Suis-je fournir une fonctionnalité de mon cadre ou suis-je la consolidation?

Si vous avez une fonctionnalité que vous ajoutez à votre cadre, vous aurez envie de créer une bibliothèque pour que. La validation d'un formulaire, par exemple, est une fonctionnalité que vous ajoutez à un cadre. Même si vous pouvez faire de la validation du formulaire, sans cette bibliothèque, vous êtes en train de créer un système de référence pour la validation qui est une caractéristique.

Cependant, il est aussi une forme d'helper qui permet de créer le code HTML de formes. La grande différence de la validation du formulaire de la bibliothèque, c'est que le helper form n'est pas la création d'une nouvelle fonctionnalité, c'est juste un ensemble de fonctions qui vous aident à écrire le code HTML des formulaires correctement.

Nous espérons que cette différenciation sera d'aider à vous qu'il a de moi.

7voto

Sarfraz Points 168484

Première de tous, vous devez être sûr que vous comprenez la différence entre CI libaray et de la classe helper. Classe d'aide, c'est ce qui permet de pré-chose comme array, string, uri, etc, ils sont là et PHP déjà fournit des fonctions pour eux, mais vous avez encore de créer un helper pour ajouter plus de fonctionnalités à eux. D'autre part, libaray peut être quelque chose comme quelque chose que vous créez pour la première fois, toute solution qui pourrait ne pas être nécessairement déjà là.

Une fois que vous comprenez cette différence entièrement, la prise de décision ne doit pas être si difficile.

Espérons que cela aide.

Merci

4voto

MR Srinivas Points 1730

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

http://ellislab.com/codeigniter/user-guide/general/helpers.html

Les bibliothèques contiennent généralement de la non-CI des fonctionnalités spécifiques. Comme une image de la bibliothèque. Quelque chose qui est portable entre les applications.

http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html

Source lien

1voto

Christoffer Points 2291

Personnellement, j'utilise des bibliothèques pour de grandes choses, disons une bibliothèque FTP que j'ai construite et qui est beaucoup plus rapide que la bibliothèque fournie par CodeIgniters. C'est une classe avec beaucoup de méthodes qui partagent des données les unes avec les autres.

J'utilise des aides pour des tâches plus petites qui ne sont pas liées à beaucoup d'autres fonctionnalités. De petites fonctions telles que la décoration de chaînes pourraient être un exemple. Ou copier un répertoire de manière récursive vers un autre emplacement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X