2009-09-10 9 views
7

Ich frage mich, ob jemand wusste, wie man einige Komponenten des Zend Framework verwendet, ohne das Framework tatsächlich benutzen zu müssen. Zum Beispiel möchte ich ihre Zend_Validate Komponenten verwenden, aber nicht den Overhead des Frameworks, da es ein kleines einseitiges Skript ist.Verwenden Sie Zend Framework-Komponenten ohne das eigentliche Framework?

Kann dies leicht gemacht werden, und wenn ja, gibt es Leitfäden/Anleitungen, wie man das erreicht?

+0

Sie werden nie den Overhead des Frameworks haben, weil es wirklich mehr eine Bibliothek ist. Es wird nur enthalten, was es braucht. Wenn Sie nur 'Zend_Validate' verwenden, werden Sie es und seine Abhängigkeiten immer nur in Ihr Skript aufnehmen. – jason

Antwort

11

Zend Framework-Komponenten sind absichtlich so konzipiert, dass sie lose mit dem Framework selbst verbunden sind.

Die Komponentenstruktur von Zend Framework ist etwas einzigartig; Jede Komponente ist mit wenigen Abhängigkeiten von anderen Komponenten ausgelegt. Diese lose gekoppelte Architektur ermöglicht es Entwicklern, Komponenten einzeln zu verwenden. Wir nennen dies oft ein "use-at-will" -Design. [from here]

Here's a tool for pulling out specific components and their dependencies in Ihrer Anwendung zu verwenden.

2

Ich habe gerade das ganze Zend-Paket geschnappt und Teile davon verwendet. Es scheint immer so zu sein, dass ich im Laufe der Zeit mehr davon verwende, also behalte ich es auf dem neuesten Stand, auch wenn ich einige MVC-Sachen nicht in dem einen oder anderen Projekt verwende. Wenn Sie an der ganzen Sache festhalten, müssen Sie sich keine Gedanken über die Abhängigkeiten machen (und wie sie sich im Lauf der Zeit verändern könnten).

+0

upvote für Pragmatismus :-) – namespaceform

1

Zend Framework-Komponenten, während lose paar sind immer noch gekoppelt. Wenn Sie Zend_Mail Komponente zum Beispiel verwenden würde -, die tatsächlich auch erfordern würde:

  1. Zend_Mime
  2. Zend_Exception
  3. Zend_Validation

Zend_Validation wird für den bloßen Grund der Validierung von E-Mail geladen werden Adressdomäne.

Also - am besten wäre es, die gesamte Zend-Bibliothek einzuschließen. Indem Sie nur einige Komponenten verwenden, landen Sie bald in Abhängigkeitshölle, besonders wenn sich die API ändert (obwohl das nicht oft genug passiert).

Auch - ab Version 2.0 müssen Sie einige Auto-Loader verwenden, um Zend-Komponenten zu laden, da alle Aufrufe von PHP-Klassen entfernt werden.