crvcl

Aus php bar
Wechseln zu: Navigation, Suche
Kategorie

Framework

Aktuelle Version
stable: 2.4 (Dezember 2012)
Opensource
Mozilla Public License 1.1
Betriebssyteme
  • Alle
Vorausetzungen
  • PHP ab 5.2.1 / Webserver
Homepage

crVCL PHP Framework (kurz crVCL) ist ein Open Source Framework für PHP, welches unter der Mozilla Public License (MPL) als Freie Software veröffentlicht wurde. Ziel des Projektes ist es, durch verschiedene Programmbibliotheken die Entwicklung komplexer Webseiten und Web-Applikationen in PHP zu vereinfachen und zu beschleunigen - ganz nach dem Motto Rapid Application Development (RAD). Es umfasst sowohl Klassen, Bibliotheken und Funktionen die den Alltag eines Entwicklers erleichtern sollen, als auch GUI-Elemente die an die herkömmlichen grafischen Benutzeroberflächen unter Windows und Linux angelehnt sind. Weiter umfasst es eine eigene Funktionalität um AJAX-Webanwendungen direkt aus PHP zu entwickeln ohne jQuery benutzen zu müssen. Die meisten der Funktionalitäten bestehen aus rein nativen Code und sind somit von keinen anderen Modulen und Kopmonenten abhängig, dies sorgt für noch mehr Unabhängigkeit und Performance.


Geschichte

Die erste Version des Frameworks wurde von Ricardo Cescon 2003 entwickelt. Die Idee dahinter war - bei der Entwicklung von Webseiten und Webapplikationen sich mehr auf PHP zu konzentrieren und den HTML Output in den Hintergrund zu stellen, um so eine höhere Qualität des Quellcodes zu erhalten. In der inoffiziellen Version 1.1 kamen dann zu den eigentlichen grafischen Komponenten, die Unterstützung von MySQL, AJAX und eine eigene Zip-Klasse. Im April 2007 wurde der Code erstmals auf Sourceforge als Open Source - Projekt unter dem Namen crGUI PHP Framework mit der Version 1.2 beta veröffentlicht. 2008 wurde es dann mit der Version 1.6 in crVCL PHP Framework umbenannt. Aktuell wird das Framework von einer kleinen Gruppe von ca. 5 Personen aus aller Welt und einem Resourcen-Sponsor mit- und weiterentwickelt, hierbei stehen nicht mehr so ganz die grafischen Komponenten im Vordergrund, sondern durch ein breites Spektrum an Funktionalität möglichst viele Einsatzgebiete abzudeken ohne zusätzliche Bibliotheken nutzen zu müssen. Dieses Prinzip ist stark an den Gedanken der JEDI JVCL und an Java Spring angelehnt. Mittlerweile umfasst das Framework zahlreiche Klassen und Funktionen die einem PHP Softwareentwickler das Leben deutlich erleichtern. Seit der Version 1.6 wird auch der Ansatz von MVC verfolgt. Durch ein weitgehend ähnlichen MVC Ansatz wie bei allen großen gängigen Frameworks wie z.B. .Net oder auch in Java, kann auch hier eine äußerst saubere Trennung des Programmablaufes erzielt werden. Weiter wird ein hoher Grad der Wiederverwendbarkeit und Skalierbarkeit des Codes erreicht. Siehe auch des Weißpapier auf der Homepage: PHP GET/POST vs. crVCL MVC Events

Merkmale

Beispielbild grafischer Komponenten

Komponenten

Das Framework umfasst eine Vielzahl von grafischen Komponenten wie zum Beispiel: Dokumentkomponente, Eingabefeldkomponente, Kalenderkomponente, Buttonkomponente, Tabellenkomponente (mit auto. Sortierungsfunktionen), Comboboxkomponente, Radiobuttonkomponente, Checkboxkomponente, Resultbarkomponente und weitere ... Diese Komponenten basieren alle auf einer Basiskomponente (Abstrakten-Klasse) wie man es aus anderen Komponentenbibliotheken wie der VCL oder MFC gewohnt ist.

AJAX

keine Notwendigkeit von jQuery, benutze AJAX direkt aus PHP, verwende callback Javascript, verwende multi response um beliebig viele HTML Elemente über eine Anfrage zu tauschen.

Klassen

Es wird auch durch etliche Klassen versucht, möglichst viele Einsatzgebiete aus einer Hand abzudecken: MVC Klasse, MySQL-Klasse (mit Lastverteilung), Sphinx Full Text Search Engine Klasse Zip-Klasse, Socketklasse, XML-Klassen, XML-RPC und REST Webservice Klassen, RSS-Feed Klasse, Sitemap Klasse, DTA Klassen, Mailklassen, Chartklasse, PDF Klasse, Sessionhandler Klasse, Error- u. Exception-Handler Klasse und weitere ... Durch die Benutzung des Frameworks eigenen Errorhandlers ist es z.B. möglich Programmiererfehler professionell abzufangen und in eine Logdatei und/oder in E-Mails umzuleiten. Mit der Implementierung von Wörterbüchern über DICT + XDXF Dictionary können z.B. Keywords und Co. automatisiert übersetzt werden. Für Webanwendungen mit sogenannten "Long-Time-Requests" gibt es noch einen asynchronen CLI Job Daemon der Interaktiv mit dem Client kommunizieren kann.

Funktionen

Der Funktionsumfang ist seit der ersten Version stark gewachsen und beinhaltet viele Funktionen die man vielleicht in seiner aktuellen PHP Version als Entwickler vermisst, zum Beispiel: zusätzliche Stringfunktionen, AJAX Funktionen, zusätzliche Arrayfunktionen und viele weitere ...

Dokumentation

Die Dokumentation zum Quellcode liegt als PHPDoc im Format HTML vor. Durch den Einsatz von PHPDoc ist es Entwicklungsumgebungen wie dem Zend-Studio, NetBeans und Eclipse möglich die Klassen und Funktionen aufzulösen und deren Deklarationen (Parameter und Rückgabewerte) als Tooltip anzuzeigen, wie man es hier auch von den Standard PHP Funktionen in diesen IDE´s gewohnt ist. Für den einfachen Start gibt es auch eine kleine Zahl an einfach gehaltenen Beispielscripts.

Verbreitung/Weiterentwicklung

Die Verbreitung des Quellcodes erfolgt über code.google.com. Die Weiterentwicklung selbst wird zentral über den Chefentwickler koordiniert um eine hohe Qualität des Codes zu gewährleisten. Bei Interesse über die Details der Weiterentwicklung (das Mitwirken am Projekt) findet man einige Textdateien in der Projektdatei (Zip-Datei) selbst.

Ähnliche Frameworks

Weblinks


Kategorie:Framework | Kategorie:Bibliothek | Kategorie:Open Source | Kategorie:PHP 5 | Kategorie:OOP | Kategorie:Entwurfsmuster Kategorie:Programmiertechnik


Framework Übersicht
Binarycloud | BlueShoes| Cake | InterJinn | KONG42 | Mojavi | PEAR | php.MVC | phpOpenTracker | Phrame | PIWI | PRADO | Seagull | SMART | Solar | Studs | Struts4php | symfony | WACT | Zend Framework