4D v13.4

Unterstützung von PHP Modulen

Home

 
4D v13.4
PHP
Unterstützung von PHP Modulen

Unterstützung von PHP Modulen  


 

 

Dieser Anhang beschreibt, wie Sie PHP Module in 4D integrieren können. Folgende Themen werden behandelt:

  • Liste der Standard PHP Module, die mit dem PHP Interpreter von 4D standardmäßig geliefert werden
  • Liste der Standard PHP Module, die in 4D nicht enthalten sind
  • Anweisungen zum Installieren zusätzlicher Module

Nachfolgende Tabelle listet die PHP Module auf, die mit 4D standardmäßig geliefert werden.

NameWeb SiteBeschreibung
BCMathhttp://php.net/bcBinärer Kalkulator zum Verwalten von Nummern jeglicher Größe und Genauigkeit, dargestellt als Strings.
Beispiel:
 C_LONGINT($value;$result)
 $value:=4
 $ok:=PHP Execute("";"bcpow";$result;$value;3)
Calendarhttp://php.net/calendarSatz Funktionen, um die Konvertierung verschiedener Kalenderformate zu vereinfachen. Basiert auf der Berechnung nach julianischem Datum.
Beispiel:
 C_LONGINT($NumberOfDays)
 $ok:=PHP Execute("";"cal_days_in_month";$NumberOfDays;1;2;2010)
Ctypehttp://php.net/ctypeFunktionen zum Prüfen, ob ein Zeichen oder eine Zeichenkette zu einer bestimmten Zeichenklasse gehört, abhängig von der aktuellen lokalen Konfiguration.
Beispiel:
  // Prüfen, ob alle Zeichen des gelieferten String Satzzeichen sind
 C_TEXT($myString)
 $myString:=",.;/"
 $ok:=PHP Execute("";"ctype_punct";$isPunct;$myString)
Date and Timehttp://php.net/datetimeDatum und Zeit von dem Server zurückbekommen, wo das PHP Skript ausgeführt wurde
Beispiel:
  //Berechnung der Zeit des Sonnenaufgangs in Lissabon, Portugal
  //Breitengrad: 38.4 Nord
  //Längengrad: 9 West
  //Zenit ~= 90
  //Zeitverschiebung: +1 GMT
 C_TIME($SunriseTime)
 $ok:=PHP Execute("";"date_sunrise";$SunriseTime;0;1;38,41;-9;90;1)
DOM (Document Object Model)http://php.net/domXML Dokumente via DOM API in PHP 5 verwenden.
Exifhttp://php.net/exifMit Bild Metadaten arbeiten.
Fileinfo(*)http://php.net/fileinfoTyp des Inhalts und Codierung einer Datei herausfinden.
Filterhttp://php.net/filterDaten von einer nicht-sicheren Quelle bestätigen und filtern, z.B. Benutzereingaben.
Beispiel:
 C_LONGINT($filterId)
 C_TEXT($result)
 $ok:=PHP Execute("";"filter_id";$filterId;"validate_email")
 $ok:=PHP Execute("";"filter_var";$result;"hop@123.com";$filterId)
FTP (File Transfert Protocol)http://php.net/ftpDetaillierter Zugriff auf einen FTP Server
Hashhttp://php.net/hashMessage Digest engine. Ermöglicht direktes oder inkrementelles Bearbeiten von Meldungen mit wilkürlicher Länge über eine Reihe von Hash Algorithmen.
Beispiel:
 C_TEXT($md5Result)
 $ok:=PHP Execute("";"md5";$md5Result;"this is my string to hash")
GD (Graphics Draw) Libraryhttp://php.net/gdMit Bildern arbeiten
Iconvhttp://php.net/iconvKonvertierung von Dateien zwischen verschiedenen Zeichensätzen
JSON (JavaScript Object Notation)http://php.net/jsonImplementierung des JSON Datenaustauschformats
LDAPhttp://php.net/ldapLDAP  ist ein Zugriffsprotokoll auf "folder servers", die Information in Form eines Baumdiagramm speichern.
LibXMLhttp://php.net/libxmlLibrary mit XML Funktionen und Konstanten
Multibyte Stringhttp://php.net/mbstringSatz Funktionen zum Arbeiten mit Zeichenketten, zur Verwaltung der Codierung von multi-byte Zeichen oder zum Konvertieren von Zeichenketten.
OpenSSLhttp://php.net/opensslVerwendung der Funktionen OpenSSL zum Generieren und Verifizieren von Signaturen, zum Versiegeln (Verschlüsseln) und Öffnen (Entschlüsseln) von Daten.
PCRE (Perl Compatible Regular Expressions)http://php.net/pcreSatz Funktionen, die rationale Ausdrücke implementieren, welche dieselbe Syntax und semantische Perl 5 verwenden
Beispiel:
  // Dieses Beispiel entfernt unnötige Leerzeichen in einer Zeichenkette.
 C_TEXT($myString)
 $myString:="foo       o        bar"
 PHP Execute("";"preg_replace";$myString;"/\\s\\s+/";" ";$myString)
 ALERT($myString)
  // $myString ist nun "foo o bar" ohne wiederholte Leerzeichen
PDO (PHP Data Objects) (*)http://php.net/pdoSchnittstelle für Zugriff auf eine Datenbank. Erfordert einen datenbankspezifischen PDO Treiber.
PDO_SQLITE (*)http://php.net/pdo_sqliteTreiber, der die PHP Data Objects (PDO) Schnittstelle implementiert, um PHP Zugriff auf SQLite 3 Datenbanken zu ermöglichen.
Reflectionhttp://php.net/reflectionKomplette Reflection API zur Untersuchung/Erkennung von Klassen, Interfaces, Funktionen und Methoden sowie Erweiterungen
Phar (PHP Archive)http://php.net/pharEinfügen einer kompletten PHP Anwendung in einer einmaligen Datei mit Namen "phar" (PHP Archiv), um ihre Installation und Konfiguration zu erleichtern
Sessionhttp://php.net/sessionUnterstützung der PHP Sitzungen
Beispiel:
In Web Anwendungen dienen Sitzungen dazu, den Kontext zwischen jeder Anfrage zu behalten. Rufen Sie PHP Execute in 4D auf, kann das PHP Skript eine Sitzung starten und alles, was als Kontext erhaltenswert ist, im Array $_SESSION speichern. Verwendet ein PHP Skript Sitzungen, müssen Sie die von PHP zurückgegebene Sitzungs ID über den Befehl PHP GET FULL RESPONSE erhalten und sie vor jedem Aufruf von PHP Execute über den Befehl SET ENVIRONMENT VARIABLE spezifizieren.
  // "PHP Execute with context" method
 If(<>PHP_Session#"")
    SET ENVIRONMENT VARIABLE("HTTP_COOKIE";<>PHP_Session)
 End if
 If(PHP Execute($1))
    PHP GET FULL RESPONSE($0;$errorInfos;$errorValues;$headerFields;$headerValues)
    $idx:=Find in array($headerFields;"Set-Cookie")
    If($idx>0)
       <>PHP_Session:=$headerValues{$idx}
    End if
 End if
SimpleXMLhttp://php.net/simpleXMLSehr einfache und leicht-verwendbare Werkzeuge, um XML in ein Objekt zu konvertieren, das mit seinen Eigenschaften und Array Iteratoren bearbeitet werden kann.
Socketshttp://php.net/socketsImplementierung einer low-level Schnittstelle zu Funktionen für Socket Kommunikation, basierend auf BSD Sockets und mit der Möglichkeit, sowohl als Socket-Server als auch als -Client zu operieren.
SPL (Standard PHP Library)http://php.net/splSammlung von Interfaces und Klassen, die zum Lösen von Standardproblemen dienen.
SQLite (*)http://php.net/sqliteErweiterung für die SQLite Datenbank Engine. Diese Engine ist einbindbar.
SQLite3 (*)http://php.net/sqlite3Unterstützung für SQLite Version 3 Datenbanken.
Tokenizerhttp://php.net/tokenizerFunktionen, über die Sie Ihre eigenen PHP Analyse- oder Änderungswerkzeuge schreiben können, ohne sich mit Sprachspezifikationen auf lexikalischer Ebene befassen zu müssen.
XML (eXtensible Markup Language)http://php.net/xmlDurchlaufen von XML Dokumenten.
XMLreaderhttp://php.net/xmlreaderXML Pull Parser
XMLwriterhttp://php.net/xmlwriterGenerierung von Streams oder Dateien im XML Format
Zlibhttp://php.net/zlibKomprimierte gzip (.gz) Dateien lesen und schreiben
Beispiel:
 WEB GET HTTP HEADER($names;$values)
 $pos:=Find in array($names;"Accept-Encoding")
 If($pos>0)
    Case of
       :(Position($values{$pos};"gzip")>0)
          WEB SET HTTP HEADER("Content-Encoding: gzip")
          PHP Execute("";"gzencode";$html;$html)
       :(Position($values{$pos};"deflate")>0)
          WEB SET HTTP HEADER("Content-Encoding: deflate")
          PHP Execute("";"gzdeflate";$html;$html)
    End case
 End if
 WEB SEND TEXT($html)
Ziphttp://php.net/zipZIP komprimierte Archive und darin enthaltene Dateien lesen und schreiben.

(*) Diese Module sind in der aktuellen 4D Version unter Windows nicht verfügbar.

Aus strukturellen Gründen sind folgende PHP Module nur auf der Windows Plattform verfügbar.

NameWeb SiteBeschreibung
COM & .NEThttp://php.net/comCOM (Component Object Model) ist einer der Hauptwege für Anwendungen und Komponenten zur Kommunikation auf Windows Plattformen. Darüberhinaus unterstützt 4D die Instantiation und Erstellung von .Net Ansammlungen über den COM layer.
ODBC (Open DataBase Connectivity)http://php.net/odbcZusätzlich zur standardmäßigen ODBC Unterstützung gewähren die Unified ODBC Funktionen in PHP Zugriff auf verschiedene Datenbanken, die die Semantik der ODBC API zum Implementieren ihrer eigenen API übernommen haben.
WDDX (Web Distributed Data eXchange)http://php.net/wddxErleichtert den Datenaustausch zwischen Web Anwendungen über das Web, unabhängig von der Plattform.

Nachfolgende PHP Module wurden nicht in 4D v12 integriert. Die dritte Spalte gibt den Grund dafür an:

NameWeb SiteGrund - Alternative
Mimetypehttp://php.net/mime-magicVeraltet (Deprecated) - Fileinfo verwenden
POSIX (Portable Operating System Interface)http://php.net/posixVeraltet (Deprecated)
Regular Expression (POSIX Extended)http://php.net/regexVeraltet (Deprecated) - PCRE verwenden
Crackhttp://php.net/crackRestriktive Lizenz
ffmpeghttp://ffmpeg-php.sourceforge.net/Restriktive Lizenz - ffmpeg in Befehlszeile mit LAUNCH EXTERNAL PROCESS verwenden
Image Magickhttp://php.net/manual/book.imagick.phpRestriktive Lizenz - GD 2 verwenden
IMAP (Internet Message Access Protocol)http://php.net/imapRestriktive Lizenz - Das integrierte Plug-In 4D Internet Commands verwenden.
PDF (Portable Document Format)http://php.net/pdfRestriktive Lizenz - Haru PDF verwenden
Mysqlnd (MySQL Native Driver)http://dev.mysql.com/downloads/connector/php-mysqlnd/Nicht relevant in der 4D Umgebung

Über den PHP Interpreter haben Sie die Möglichkeit, zusätzliche Module zu installieren. So können Sie auf spezifische Funktionalitäten zugreifen, die standardmäßig nicht vorhanden sind. So können Sie verschiedene Extensions installieren:

  • PECL (PHP Extension Community Library) Extensions
  • Extensions des PEAR Framework (PHP Extension und Application Repository)
  • Extensions des Zend Framework
  • Extensions des Symphony Framework
  • Extensions des JELIX Framework
  • eZ Komponenten

Die Installation dieser Extensions wird nachfolgend beschrieben.

Hinweis: Die mit 4D v12 gelieferten PHP Versionen haben folgende Merkmale:

  • Version 5.3.2
  • Unter Windows und auf Mac OS, 32-bit Kompilierung und "thread-safe" Modus
"php.ini" Datei: Die zu ändernde "php.ini" Datei (siehe oben) kann entweder im Ordner Resources der 4D Anwendung (Standarddatei) oder im Ordner Preferences der Datenbank (eigene Datei) liegen. Weitere Informationen dazu finden Sie im Abschnitt Architektur.

Web Site: http://pecl.php.net
Um PECL Extensions hinzuzufügen:

  1. Laden und erstellen Sie die gewünschte PECL Extension.
    ODER
    nehmen Sie die Extension, die bereits von einem PHP 5.3 VC9 Non Thread Safe Windows binary package erstellt wurde (http://windows.php.net/download/#php-5.3-nts-VC9-x86)
  2. Fügen Sie die Extension im Extension Ordner hinzu. 
  3. Aktivieren Sie die Extension in der Datei php.ini.

Warnung: Sind die auf der PECL Web Site verfügbaren Extensions unter PHP Lizenz, welche nicht restriktiv ist, benötigen manche unter Umständen Libraries, die selbst eine restriktivere Lizenz haben können.

PHP sind auch auf anderen Web Sites verfügbar, haben in diesem Fall aber nicht die Sicherheitsgarantie, die durch Validierung von der PHP Gruppe gegeben wird.

Web Site: http://pear.php.net
PEAR ist ein vollständig objektorientiertes Framework.
Um PEAR Extensions hinzuzufügen:

  1. Laden (http://pear.php.net/package/PEAR/download) and entpacken Sie das PEAR package in einen Ordner mit Namen "pear".
  2. Fügen Sie diesen Ordner "pear" in "include_path" ein, spezifiziert in der Datei "php.ini" file.
  3. Laden und entpacken Sie alle PEAR Packages in diesen Ordner.

  1. Laden (http://framework.zend.com/download/latest) und entpacken Sie das Zend Framework in einen Ordner mit Namen "zend". 
  2. Fügen Sie diesen Ordner "zend" in "include_path" ein, spezifiziert in der Datei "php.ini". 
  3. Lesen Sie die Dokumentation zu den Zend Framework Komponenten: http://framework.zend.com/manual/en

Web Site: http://www.symfony-project.org
Das Symphony Framework ist so strukturiert, dass es sich als eine Web Application inkl. ihrem Web Controller einsetzen lässt. 

  1. Laden und entpacken Sie das Source Framework sowie die Sandbox unter: http://www.symfony-project.org/installation/1_2.

  1. Laden (http://jelix.org/articles/en/download/stable) und entpacken Sie JELIX Framework.
  2. Fügen Sie den Ordner "jelix" in "include_path" ein, spezifiert in der Datei "php.ini".
  3. Lesen Sie die Dokumentation zu den JELIX Framework Komponenten: http://jelix.org/articles/en/manual-1.1/components

  1. Laden (http://www.ezcomponents.org/download) und entpacken Sie die eZ Komponenten in einen Ordner "ez".
  2. Fügen Sie den Ordner "ez" in "include_path" ein, spezifiziert in der Datei "php.ini".
  3. Lesen Sie die Dokumentation zu den eZ Komponenten: http://www.ezcomponents.org/docs/api/latest

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: PHP