2010-11-29 20 views
2

Ich habe einige Code, den ich in einer Klasse oder Bibliothek für andere Entwickler organisieren möchten, um einfacher auf ihrer Website zu verwenden.So erstellen Sie eine Bibliothek

Die Art, wie ich die Klasse jetzt benutze, besteht darin, eine Instanz davon zu instanziieren und die Funktionen aufzurufen, die ich brauche, wenn ich sie brauche.

$class_object = new MyClass(); 
$class_object->myFunction(); 

Ist das alles, was ich brauche, um eine Bibliothek zu erstellen, oder muss ich weitere Änderungen vornehmen, um daraus eine Bibliothek zu machen?

+0

Hängt von Ihren Bedürfnissen ab. Im Wesentlichen ... Möchten Sie PHP's OOP lernen? Check out http://php.net/manual/en/language.oop5.php –

+1

Vergessen Sie nicht die Dokumentation! –

Antwort

1

Es hängt davon ab, was genau Ihre Bibliothek ist. Eine Klasse ist eine gute Lösung, wenn Sie beschreiben ein Objekt, das Eigenschaften und Methoden haben kann, und alle Aktionen sind auf das Objekt bezogen.

Wenn Sie nur eine Sammlung von Funktionen haben und Sie davon ausgehen können, dass Benutzer PHP 5.3+ haben, dann können Sie sie einfach unter namespace definieren.

1

Es hängt viel von der Funktionalität ab, die Sie bereitstellen. Wenn die Bibliothek nur eine Gruppe von Funktionen ist, dann könnte es am besten sein, sie statisch zu haben:

class MyLib 
{ 
    public static function convertData($data) 
    { 
     // Do something 
    } 
} 

Aber wenn es auf dem Objekt abhängt instanziiert wird und gespeicherten Informationen in diesem Objekt, dann würde ich überlasse es als -ist. Alles hängt davon ab, wie Sie es verwenden.

1

PHP hat kein anderes Konzept einer Bibliothek als das, was Sie bereits tun. Wenn Sie es abstrahieren wollen (stellen Sie sicher, dass es außerhalb Ihrer Anwendung funktioniert) und es in ein separates Dateiverzeichnis verschieben, können Sie das, aber das qualifiziert es nicht mehr als gewöhnlich als eine Bibliothek!

Ich werde allerdings beachten, gibt es einige Rahmenbedingungen sind, die den Begriff Bibliothek als etwas Bestimmtes zu verwenden, aber Sie werden für die in den einzelnen Rahmen der Dokumentation suchen müssen, fürchte ich.

1

Soweit ich weiß, ja. Sie müssen Ihre Bibliothek jedoch mit den akzeptierten Autoloading-Standards kompatibel machen. Auf diese Weise können Entwickler sie einfach in ihr System einfügen und verwenden.

http://groups.google.com/group/php-standards/web/psr-0-final-proposal?pli=1

+0

Ich weiß über Autoloading von den Frameworks wie Symfony und Zend, aber ich glaube nicht, dass ich jemals eine externe Bibliothek automatisch laden musste. Wenn ich die Bibliothek nicht mit den akzeptierten Autoloading-Standards kompatibel mache, was wird passieren? Kann der Entwickler es nicht einfach irgendwo auf seinem Weg speichern und eine Instanz davon erstellen und es benutzen? – silow

+0

Wenn es nicht Autoloader-kompatibel ist, müssen sie es manuell mit require() oder include() laden. Wenn dies der Fall ist, können sie es einfach in ihr lib-Verzeichnis einfügen und es funktioniert einfach. – Jonah

Verwandte Themen