2010-04-01 6 views
0

Je suis encore assez nouveau à CodeIgniter et je me demandais, où devrais-je placer mes fonctions PHP qui n'ont rien à voir avec les contrôleurs et les vues, par exemple, une fonction qui accède à un fichier local.CodeIgniter: placer des fonctions PHP?

Merci.

Répondre

3

N'utilisez pas de plugins car ils sont supprimés du CI 2.0 et vous devrez les convertir.

Un groupe de fonctions qui ne nécessitent pas d'interaction de données doivent être placés dans une aide.

+0

Et ceux qui le font? – thedp

+1

Si vous avez besoin d'une interaction de données, placez le code dans un modèle. –

+2

Helper = Groupe de fonctions pour les petites choses. Model = Méthodes d'interaction de données. Bibliothèque = Groupe de fonctions pour les grandes choses, qui doit partager la logique, les propriétés, etc. dans une classe. –

1

Vous devez les placer dans le contrôleur, dans le contrôleur, vous pouvez mettre en même vos propres fonctions personnalisées.

+0

Cela semble vraiment désordonné, ne vaudrait-il pas mieux placer un répertoire nommé 'PHP' à l'extérieur, à côté des répertoires' system' et 'javascript'? – thedp

+1

@thedp: Ce n'est pas que vous ne pouvez pas mettre vos propres fonctions dans le contrôleur, même si vous lisez les documents CI, il est dit que vous pouvez y mettre vos fonctions. Cependant, si vous le sentez désordonné, vous le placez ailleurs que vous pensez approprié. – Sarfraz

1

Il y a des plugins et des répertoires de helpers où vous pouvez placer des fichiers qui incluent des fonctions « globales » qui sont partagées dans toute votre application.

Cela dit, vous devriez penser avant de le faire, il se pourrait bien plus judicieux de placer le fichier dans un modèle, si vous travaillez avec des données stockées sur le système de fichiers.

+0

Je cherche à placer des fonctions PHP avec des fonctionnalités générales et globales que toutes les fonctionnalités de mon application peuvent utiliser. J'ai donc du mal à décider de l'endroit: module, plugin, helper, répertoire externe. – thedp

+1

Il semble que vous deviez utiliser soit un assistant (si ce sont vraiment des fonctions globales) ou un modèle (si les fonctions sont en lecture/écriture/modification/etc) un "type" spécifique de données sur le système de fichiers). –

2

Mettez des fonctions détachées dans les aides. Regroupez des fonctions similaires dans un assistant et attribuez-lui un nom de fichier significatif. Une fois l'assistant chargé, les fonctions peuvent être utilisées comme si elles étaient require_once() ou include.

Si vous avez une classe qui a ostensiblement « rien à voir » avec CodeIgniter, ceux-ci peuvent généralement être converties en bibliothèques avec peu ou aucun effort.

Plugins sont prises dans CI 2.0, comme l'a dit Phil Sturgeon, en faveur des aides et des bibliothèques. Ce qui est une bonne chose, je pense. Je n'ai jamais eu beaucoup besoin de 'plugins'.