2009-08-09 5 views
9

Ich möchte Zend_Tool (ZF 1.9) mit meinem Projekt verwenden, aber ich würde gerne in der Lage sein, die Standardausgabe neuer Dateien anzupassen. Zum Beispiel sollten alle Controller eine bestimmte Kopfzeile haben, die mit phpdoc Markup- und Lizenzinformationen an die Ausgabe angehängt wird, um zu vermeiden, dass ich dies als zusätzlichen Schritt hinzufügen muss.Wie passt man Zend_Tool Output an?

Auch für dieses spezielle Projekt (aber nicht alle anderen Projekte), brauche ich die Controller, um etwas anderes als die Standard-Zend-Controller zu erweitern, wie ich das für einige spezifische Funktionalität erweitert habe.

Die Dokumentation bezieht sich auf die Fähigkeit, diese Dinge zu tun, aber es macht es nicht sehr deutlich.

Von was ich sagen kann ich ein Verzeichnis ~/.zf einrichten (auf *** nix-basierten Systemen) und benutzerdefinierte Anbieter dort einschließen. Dies wird jedoch maschinenweit statt auf einen einzelnen Projektumfang beschränkt sein. Während dies neue Anbieter hinzufügen wird, erlaubt es mir (scheinbar) nicht, die Funktionalität von bestehenden Providern anzupassen.

Jede Hilfe hier würde sehr geschätzt werden!

Antwort

0

Sie können natürlich weiterhin überschreiben, wenn Sie die spezifischen Klassen definieren. Sie können angeben, dass sie auf Ihrer Klasse und nicht auf der ZF-Klasse basieren.

Bei bestimmten Projekten können Sie Ihren Klassenpfad als benutzerdefinierte Version von ZF ändern oder möglicherweise einen benutzerdefinierten Override-Ordner verwenden. Mit einem benutzerdefinierten Ordner sind Ihre Änderungen nicht maschinenweit, aber auch nicht Ihr Zend Framework. Auf *** nix-basierten Systemen können Sie symbolische Links nutzen, um sich auf eine Kopie von ZF zu beschränken.

Möchten Sie Ihren Quellcode so ändern, dass er die Lizenzheader und PHPdoc enthält? Wenn ja, habe ich in der Vergangenheit einen einfachen Build-Schritt ausgeführt, der die benötigten Informationen hinzufügt. Jeder Dateityp kann die entsprechenden Header-Informationen enthalten. Sie können nette Tags haben, um das System anzuweisen, Dateien zu ignorieren oder nur auf Controllern zu laufen.

Good Luck, Jacob

1

Wesentlichen, was Jacob war immer an: über was Sie sprechen scheint, wie einfach Klasse erweitern. Es ist eine wirklich einfache Diashow Einführung in die Verlängerung Zend Framework hier:

http://www.slideshare.net/PHPBelgium/extending-zend-framework-presentation

Es gibt auch viele andere Ressourcen online zur Verfügung für die Erweiterung Zend Framework. Sie können separate Quellbäume für Ihre verschiedenen Projekte erstellen, und die für verschiedene Projekte üblichen Funktionen können abstrakten Klassen hinzugefügt werden, die sich in gemeinsamen Ordnern befinden. So etwas ist nicht üblich, aber ich habe festgestellt, es in dieser Art von Situationen funktioniert:

class My_Component_HelloProvider extends My_Common_Component_HelloProvider 
{ 
    public function say() 
    { 
     echo 'Hello from my provider!'; 
    } 

    // public function do() is inherited 

} 

class My_Common_Component_HelloProvider 
    implements Zend_Tool_Framework_Provider_Interface 
{ 
    public function do() 
    { 
     // do something 
    } 
} 

Lassen Sie mich wissen, wenn dies anders ist, was Sie versuchen zu tun, aber es gibt keinen Grund, warum Sie können Erstellen Sie nicht mehrere Anwendungserweiterungen von einer einzelnen Instanz von ZF.

Verwandte Themen