2010-02-01 12 views
9

Wenn ich String-Funktionen habe ich eine Menge verwenden, sollte ich sie in eine Helfer-Klasse oder eine Bibliothek Klasse?Unterschied zwischen Bibliotheken und Helfern in PHP-Frameworks

Funktionen wie: trunkieren Zeichenfolge, wenn länger als 30 Zeichen, geben Sie eine zufällige Zeichenfolge zurück, machen Sie alle Kleinbuchstaben und so weiter. Das sind Funktionen, für die ich wahrscheinlich kein Objekt erstellen muss. Es ist besser, sie als statische Methoden zu verwenden.

sollte ich sie in eine Bibliotheksklasse oder eine Hilfsklasse legen?

wann weiß ich wo ich hingelegen habe?

Antwort

13

Helfer sind die Klassen, die schon da etwas helfen zum Beispiel ein Helfer für sein:

Array
String
url
etc

Eine Bibliothek ist etwas, das jeder sein kann Lösung; Es könnte zum ersten Mal von Ihnen erstellt werden und niemand hat es erstellt.

Da es sich um eine Zeichenfolge handelt (etwas, das bereits da ist), sollten Sie es in eine Hilfsklasse einfügen oder die String-Hilfsklasse des Frameworks ändern (falls vorhanden). Dies ist jedoch eine Konvention oder ein Standard, aber Sie können auch eine Bibliothek dafür erstellen, wenn Sie etwas wirklich cooles für die String-Behandlung mit einigen Funktionen erstellen.

+1

könnten Sie sagen, dass Bibliotheksklassen verwendet werden sollten, um Objekte zu instanziieren. Wenn ja, dann ist es einfach zu wissen, wann ein Helfer erstellt werden soll und wann eine Bibliotheksklasse erstellt werden soll. Aber in Java haben wir Matheunterricht bekommen. und das hat nur statische Funktionen. zurück auf Platz eins :) – ajsie

+0

@noname: Ich konnte deinen Kommentar nicht verstehen, aber ich habe nicht über das Initiieren gesprochen oder nicht. – Sarfraz

3

Ich nehme an, dass Sie CodeIgniter verwenden.

Da Sie bereits schreiben, dass Sie ein Objekt nicht instanziieren müssen und es in seinen statischen Methoden verwenden werden, ist es sinnvoll, es zu einem Helfer zu machen, anstatt es in die Bibliothek zu schreiben.

In CI, Helfer wird auch verwaltet, einmal geladen, zweiten Versuch, es zu laden wird weggelassen. Sie können den Build-Assistenten des CI öffnen, um zu erfahren, was er tut, und ihn dann mit Bibliotheken vergleichen. Wenn Sie den Zweck kennen, können Sie sich selbst, Helfer oder Bibliotheken entscheiden.

1

wenn ich string-funktionen habe, benutze ich viel, sollte ich sie in eine helfer-klasse oder eine bibliotheksklasse legen?

Wenn sie Funktionen sind, warum möchten Sie sie in einer Klasse stecken? PHP ermöglicht freischwebende Funktionen.

+0

PHP erlaubt viel, warum es manchmal unordentlich werden kann. also wollte ich wissen, was die beste Struktur ist. – ajsie

+0

Für den Fall, dass es nicht klar war, implizierte ich, dass ich denke, dass freie Funktionen die beste Struktur für den beschriebenen Fall sind. – troelskn

2

Helfer ist Sammlung von benutzerdefinierten oder vordefinierten Funktionen, keine Notwendigkeit zu instanziieren sowie Bibliotheken Klassen müssen instanziiert werden, um sie zu verwenden. Bibliothek kann auch benutzerdefinierte und vordefinierte Funktionen/Methoden enthalten. Die in der Bibliothek (Klasse) definierte Funktion wird als Methode bezeichnet!

11

Neben den manual, dass diese alle recht gut ...

Bibliotheken erklärt: Utility-Klassen, in denen Objektzustand wichtig ist (Zahlungs-Gateways, Authentifizierung etc.)

Helfer: Sammlungen von verwandten Funktionen (nicht Klassen) das tun sich wiederholende Aufgaben (Strings, Arrays, etc.)

Plugins: Eine einfache Möglichkeit, in Drittanbieterklassen fallen. In der Regel wird der gesamte Prozess mit einer einzelnen Wrapper-Funktion aufgerufen. (In der kommenden Version 2.0 von CodeIgniter veraltet.)