Wenn Sie so viel wie möglich abstrahieren, können Sie sich von Rahmenproblemen fernhalten.
Ich gebe Ihnen ein Beispiel. Ich habe in letzter Zeit angefangen, viel mit Codeigniter zu arbeiten. Ich schätze einige der Dinge, die das Framework tut, aber ich bin kein Fan von anderen Aspekten davon. Eine Sache, die ich nicht mag, ist, dass man so ziemlich für jede Anwendung, die man schreibt, eine eigene Kopie von CI verwenden muss. Wenn CI mit einer neueren Version herauskommt, muss ich zurückgehen und mehrere Anwendungen aktualisieren.
Aus diesem Grund habe ich in meinen CI-Installationen ein separates Verzeichnis mit dem Namen "Base" erstellt und einen PHP-Autoloader eingerichtet, um Klassen daraus laden zu können. Ich habe Dinge wie "Base_controller", "Base_service", "Base_model", usw., und ich verwende diese in allen meinen CI-Installationen. Diese Klassen erweitern die normalen CI-Klassen, und meine Anwendungen erweitern ihrerseits diese Basisklassen. Anstatt eine Controller-Klasse zu schreiben, die die Codeigniter-Klassen erweitert, habe ich zum Beispiel in der ersten Anwendung Controller
Klasse, erweitere ich meine Base_controller
, was wiederum die CI Controller
.
Damit habe ich eine Ebene der Trennung zwischen CI und meinen Anwendungen. Wenn sich CI jemals ändert, sollte ich in der Lage sein, es zu verwalten, indem ich nur meine "Basis" Schicht aktualisiere. Ich kann auch eine Menge Basisfunktionen in dieser Schicht haben und sie nur einmal schreiben, anstatt jedes Mal eine neue Installation von CI zu erweitern.
Die Abstraktion erfordert eine sorgfältige Gestaltung, denn man will es nicht übertreiben. Aber es ist definitiv ein nützliches Werkzeug, um Ihren Code vom Code eines Frameworks zu trennen.