Frage

Ich bin nur neugierig, wenn jedes Projekt besteht, dass Versuche zur Gruppe alle (oder die meisten) von PHP eingebauten Funktionen in eine objektorientierte Klassenhierarchie. Zum Beispiel der Gruppierung der all String-Funktionen in eine einzige String-Klasse, etc.

Ich weiß, das wird nicht wirklich irgendwelche Probleme lösen (es sei denn, die Änderungen Platz an der Quellcode-Ebene PHP haben), da alle eingebauten Funktionen noch im globalen Namespace zugänglich sein würden, aber es wäre sicherlich Nutzbarkeit macht viel einfacher.

War es hilfreich?

Lösung

Um Ihre Frage zu beantworten, ja gibt es mehrere Bibliotheken, die genau das tun, was Sie reden. Soweit die Sie verwenden möchten, ist eine ganz andere Frage. PHPClasses und pear.org sind gute Orte suchen solche Bibliotheken zu starten.

Update: Wie die anderen vorgeschlagen haben, ist SPL eine gute Bibliothek und wickelt viele in PHP-Funktionen eingebaut. Allerdings gibt es noch viele PHP-Funktionen, die es nicht einwickeln. Verlassen uns noch ohne Königsweg.

Bei der Verwendung von Frameworks wie CakePHP und Zend (andere auch), ich habe bemerkt, dass sie versuchen, einige dieser Probleme zu lösen, indem sie ihre eigenen Bibliotheken und Gebäudegrundlagen einschließlich wie DB-Konnektivität in den Rahmen der Arbeit. So kann Frameworks eine andere Lösung sein

Andere Tipps

Viel zu oft. Sobald jemand entdeckt, dass PHP OO-Features hat wollen sie alles in Klassen wickeln.

Der Punkt auf der OO Sachen in PHP ist, so dass Sie Ihre Architekt Lösungen in je nachdem, wie Sie wollen. Aber Umwickeln der vorhandenen Funktionen in Objekte nicht viel Profit abwerfen.

Dieser Kern ist bereits orientiert ziemlich Objekt PHP gesagt wird. Schauen Sie sich auf SPL .

Ich denke, so etwas wie dieses intergral ist für PHP vorwärts zu bewegen. Sein erster Linie ein .Net Programmierer, finde ich PHP schmerzhaft arbeiten mit seinen 1 Million und 1 globale Funktionen. Es ist schön, dass PHP 5.3 Namespaces, aber es hilft nicht, die Dinge viel, wenn ihre eigenen Bibliotheken nicht einmal objektorientiert, allein beschäftigen Namensräume lassen. Ich glaube nicht, PHP als Sprache dagegen so viel, aber ihre API ist furchtbar schlecht organisiert, und es braucht wahrscheinlich eine komplette Überholung. Art wie das, was VB ging durch, wenn es wurde VB.Net.

Ich bin nicht einverstanden. Objektorientierte Programmierung ist nicht von Natur aus besser als prozeduralen Programmierung. Ich glaube, dass Sie sollten nicht OO verwenden, wenn Sie polymorphes Verhalten (Vererbung, übergeordnete Methoden, etc.) benötigen. Verwendung von Objekten als einfache Container für Code ist der Aufwand nicht wert. Dies ist insbesondere true von Strings, weil sie so viel (zum Beispiel als Array-Schlüssel) verwendet. Jede Anwendung kann in der Regel von einigen polymorphen Funktionen benifit aber in der Regel auf einem hohen Niveau. Würden Sie jemals einen String-Klasse erweitern möchten?

Auch eine kleine Geschichte ist notwendig, PHP ungeradee Funktion Namensgebung zu verstehen. PHP ist rund um die Standard-C-Bibliothek und POSIX-Standard geerdet und verwendet viele der gleichen Funktionsnamen (strstr, getcwd, ldap_open, etc). Dies ist eigentlich eine gute Sache, weil es die Menge an Sprachbindung Code minimiert, stellt sicher, dass eine vollständige durchdachten Satz von Funktionen (nur über alles, was Sie in C tun können Sie in PHP tun können), und diese Systembibliotheken sind sehr optimiert (zB strchr ist in der Regel inlined die es etwa 10 mal schneller macht).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top