Dieses Tutorial erklärt, wie eine PHP -Erweiterung mit einer neuen Sprache erstellt wird: Zephir, die C und Forran ähnelt. Sie können den vollständigen Quellcode von GitHub herunterladen. Wir haben das Konzept von Zephir schon einmal angesprochen. Wenn Sie also einen breiten Überblick erhalten möchten, sehen Sie uns unsere vorherigen Artikel an.
Zephir kann als eine hybride Sprache betrachtet werden, mit der Sie Code schreiben können, der wie PHP aussieht, aber dann mit nativem C zusammengestellt wird, was bedeutet, dass Sie eine Erweiterung daraus erstellen und mit sehr effizientem Code wegkommen können.
Key Takeaways
- Zephir ermöglicht es PHP -Entwicklern, effiziente Erweiterungen mit einer ähnlichen Syntax zu schreiben, die jedoch für eine verbesserte Leistung mit nativem C kompiliert wird.
- Um eine Zephir-Entwicklungsumgebung einzurichten, benötigen Sie spezifische Tools wie GCC, GNU MAKE, PHP-Entwicklungsheader, RE2C und JSON-C mit einer Empfehlung für ein Linux-basiertes System.
- Der Prozess des Erstellens einer PHP -Erweiterung in Zephir beinhaltet die Initialisierung eines Projekts, das Schreiben von Code in .zep -Dateien, das Kompilieren des Codes und die Konfiguration Ihrer PHP -Umgebung, um die neue Erweiterung einzuschließen.
- Zephir steigert nicht nur die Leistung, sondern bietet auch eine Möglichkeit, den Quellcode zu schützen, wodurch er zum Erstellen geschlossener Quell -PHP -Anwendungen geeignet ist.
Installation
, um eine PHP -Erweiterung zu erstellen und Zephir zu verwenden, benötigen Sie Folgendes:
- gcc> = 4.x/klang> = 3.x/vc 9
- gnu machen 3.81 oder später
- PHP -Entwicklungsheader und Tools
- re2c 0.13 oder später
- JSON-C
Die Installationsanweisungen variieren für jede Plattform. Ich vertraue daher, dass Sie wissen, wie Sie sie erhalten, wenn Sie einen Artikel mit einem so fortgeschrittenen Thema lesen. Für den Datensatz - ich empfehle die Verwendung eines Linux -basierten Systems zur Entwicklung von Zephir -Apps.
Sobald Sie die gesamte Voraussetzung erhalten haben
<span>git clone https://github.com/phalcon/zephir </span><span>cd zephir && ./install -c</span>Es sollte automatisch installiert werden - versuchen Sie Zephir -Hilfe einzugeben. Wenn es nicht funktioniert, fügen Sie das Verzeichnis „Bin“ Ihrer Pfadumweltvariable hinzu. In meinem Fall:/home/duythien/App/Zephir/bin wie SO:
vi $HOME/.bash_profileAnhängen des folgenden Exportbefehls:
export PATH=$PATH:/home/duythien/app/zephir/binUm die neuen Pfadeinstellungen zu überprüfen und die Installation zu testen, geben Sie ein:
echo $PATH zephir helpSie können sich über Zephir -Grundlagen und Syntax sowie über das Schreibsystem informieren und einige Demo -Skripte auf ihrer Website sehen.
Programmierung mit Zephir
Jetzt werden wir Zephir verwenden, um eine mathematische Gleichung zu überarbeiten, die C und Forran sehr gut verarbeiten. Das Beispiel ist eher esoterisch und wird nicht viel detailliert erklärt, außer um die Kraft von Zephir zu demonstrieren.
zeitabhängige Schrodinger-Gleichung mit endlicher Differenz
gelöst
Die zeitabhängige Schrödinger-Gleichung kann sowohl mit impliziten (großen Matrix-) als auch mit expliziten (LeaProg) -Methoden gelöst werden. Ich werde die explizite Methode verwenden.Geben Sie zunächst den folgenden Befehl aus, um das Skelett der Erweiterung zu erstellen:
<span>git clone https://github.com/phalcon/zephir </span><span>cd zephir && ./install -c</span>
Wenn dieser Befehl abgeschlossen ist, wird im aktuellen Arbeitsverzeichnis ein Verzeichnis namens "MyApp" erstellt. Das sieht aus wie:
vi $HOME/.bash_profile
Erstellen Sie im Ordner "MyApp" eine Datei namens "quantum.zep" (die uns den MyAppquantum -Namespace gibt). Kopieren Sie den folgenden Code ein.
export PATH=$PATH:/home/duythien/app/zephir/binWir haben viele PHP -Funktionen wie fopen (), sin (), fprintf () usw. verwendet - zögern Sie nicht, die Syntax zu untersuchen. Ich werde Ihnen auch noch ein Beispiel geben. Bei der Arbeit mit dem PHP -Rahmen von Phalcon ist die Funktion Phalcontag :: FriendlyTitle () ungültig, wenn Sie in Vietnamesisch oder Deutsch arbeiten. Dieses Beispiel, das weitaus einfacher als die obige Gleichung, erstellt die Datei Normalizechars.zep. Fügen Sie den folgenden Code in die Datei ein:
echo $PATH zephir helpJetzt müssen wir Zephir mitteilen, dass unser Projekt zusammengestellt werden muss und die Erweiterung erzeugt wird:
zephir init myappZum ersten Mal wird eine Reihe interner Befehle ausgeführt, um den erforderlichen Code und Konfigurationen zu erstellen, um diese Klasse in die PHP -Erweiterung zu exportieren. Wenn alles gut läuft, sehen Sie die folgende Nachricht am Ende der Ausgabe:
kompilieren…Beachten Sie, dass Zephir in den Kinderschuhen in den Kinderschuhen möglich ist, auf Fehler und Probleme zu stoßen. Als ich das erste Mal versuchte, dies zu kompilieren, funktionierte es nicht. Ich habe die folgenden Befehle ausprobiert und schließlich zum Laufen gebracht:Installieren…
Erweiterung installiert!
Erweiterung = myapp.so zu Ihrem php.ini
hinzufügen Vergessen Sie nicht, Ihren Webserver
neu zu starten
myapp/ |-----ext/ |-----myapp/ |-----config.jsonDer letzte Befehl installiert das Modul im Ordner PHP -Erweiterungen (in meinem Fall:/usr/lib/php5/20121212/). Der letzte Schritt besteht darin, diese Erweiterung Ihrem Php.ini hinzuzufügen, indem Sie die folgende Zeile hinzufügen:
namespace Myapp; class Quantum{ const PI = 3.14159265358979323846; const MAX = 751; public function Harmos(double x){ int i,j,n; var psr, psi, p2, v,paramater,fp; double dt,dx,k0,item_psr,item_psi; let dx = 0.02, k0 = 3.0*Myapp\Quantum::PI, dt = dx*dx/4.0; let paramater =[dx,k0,dt,x]; let i = 0, psr = [], psi = [], p2 = [], v = [], fp = []; let fp = fopen ("harmos.txt", "w"); if (!fp) { return false; } while i old let j = 1; while j starten Sie Apache neu, und wir sind fertig. <p> </p> testen Sie den Code <h4> </h4> Erstellen Sie nun eine neue Datei namens Zephir.php: <p> </p> <pre class="brush:php;toolbar:false">namespace Myapp; class NormalizeChars{ public function trans(var s) { var replace; let replace = [ "ế" : "e", "ề" : "e", "ể" : "e", "ễ" : "e", "ệ" : "e", //--------------------------------E^ "Ế" : "e", "Ề" : "e", "Ể" : "e", "Ễ" : "e", "Ệ" : "e", //--------------------------------e "é" : "e", "è" : "e", "ẻ" : "e", "ẽ" : "e", "ẹ" : "e", "ê" : "e", //--------------------------------E "É" : "e", "È" : "e", "Ẻ" : "e", "Ẽ" : "e", "Ẹ" : "e", "Ê" : "e", //--------------------------------i "í" : "i", "ì" : "i", "ỉ" : "i", "ĩ" : "i", "ị" : "i", //--------------------------------I "Í" : "i", "Ì" : "i", "Ỉ" : "i", "Ĩ" : "i", "Ị" : "i", //--------------------------------o^ "ố" : "o", "ồ" : "o", "ổ" : "o", "ỗ" : "o", "ộ" : "o", //--------------------------------O^ "Ố" : "o", "Ồ" : "o", "Ổ" : "o", "Ô" : "o", "Ộ" : "o", //--------------------------------o* "ớ" : "o", "ờ" : "o", "ở" : "o", "ỡ" : "o", "ợ" : "o", //--------------------------------O* "Ớ" : "o", "Ờ" : "o", "Ở" : "o", "Ỡ" : "o", "Ợ" : "o", //--------------------------------u* "ứ" : "u", "ừ" : "u", "ử" : "u", "ữ" : "u", "ự" : "u", //--------------------------------U* "Ứ" : "u", "Ừ" : "u", "Ử" : "u", "Ữ" : "u", "Ự" : "u", //--------------------------------y "ý" : "y", "ỳ" : "y", "ỷ" : "y", "ỹ" : "y", "ỵ" : "y", //--------------------------------Y "Ý" : "y", "Ỳ" : "y", "Ỷ" : "y", "Ỹ" : "y", "Ỵ" : "y", //--------------------------------DD "Đ" : "d", "đ" : "d", //--------------------------------o "ó" : "o", "ò" : "o", "ỏ" : "o", "õ" : "o", "ọ" : "o", "ô" : "o", "ơ" : "o", //--------------------------------O "Ó" : "o", "Ò" : "o", "Ỏ" : "o", "Õ" : "o", "Ọ" : "o", "Ô" : "o", "Ơ" : "o", //--------------------------------u "ú" : "u", "ù" : "u", "ủ" : "u", "ũ" : "u", "ụ" : "u", "ư" : "u", //--------------------------------U "Ú" : "u", "Ù" : "u", "Ủ" : "u", "Ũ" : "u", "Ụ" : "u", "Ư" : "u", //--------------------------------a^ "ấ" : "a", "ầ" : "a", "ẩ" : "a", "ẫ" : "a", "ậ" : "a", //--------------------------------A^ "Ấ" : "a", "Ầ" : "a", "Ẩ" : "a", "Ẫ" : "a", "Ậ" : "a", //--------------------------------a( "ắ" : "a", "ằ" : "a", "ẳ" : "a", "ẵ" : "a", "ặ" : "a", //--------------------------------A( "Ắ" : "a", "Ằ" : "a", "Ẳ" : "a", "Ẵ" : "a", "Ặ" : "a", //--------------------------------A "Á" : "a", "À" : "a", "Ả" : "a", "Ã" : "a", "Ạ" : "a", "Â" : "a", "Ă" : "a", //--------------------------------a "ả" : "a", "ã" : "a", "ạ" : "a", "â" : "a", "ă" : "a", "à" : "a", "á" : "a"]; return strtr(s, replace); } }Beenden Sie Ihre Zephir.php -Seite. Es sollte der folgenden Ausgabe ähnlich aussehen:
cd myapp zephir buildDieser Befehl zeichnet das Bild mit der Datendatei harmos.txt, die so aussieht und beweist, dass unsere Gleichung ordnungsgemäß berechnet wurde.
geschützter Code
In einigen Fällen verbessert die Zusammenstellung die Leistung nicht signifikant, möglicherweise aufgrund eines Engpasses, der sich in der I/A -Grenze der Anwendung (sehr wahrscheinlich) und nicht aufgrund von Grenzen der Berechnung oder des Speichers befindet. Das Kompilierungscode könnte jedoch auch einen gewissen Schutz in intellektuellem Schutz in Ihrer Bewerbung bringen. Wenn Sie native Binärdateien mit Zephir produzieren, können Sie den Code auch vor Benutzern oder Kunden ausblenden - Zephir können Sie mit geschlossenen Quellen -PHP -Anwendungen schreiben.
Schlussfolgerung
Dieser Artikel gab eine grundlegende Anleitung zum Erstellen von Erweiterungen in Zephir. Denken Sie daran, Zephir wurde nicht zum Ersetzen von PHP oder C erstellt, sondern als Ergänzung zu ihnen, sodass Entwickler sich in die Codekompilierung und die statische Typisierung wagen können. Zephir ist ein Versuch, sich den besten Dingen aus den C- und PHP -Welten anzuschließen und die Anwendungen schneller laufen zu lassen, und konkurriert als solche eher direkt mit HHVM und Hack.
Weitere Informationen zu Zephir finden Sie in der Online -Dokumentation. Hat Ihnen dieser Artikel gefallen? Lass es mich in den Kommentaren wissen!
häufig gestellte Fragen zur Entwicklung der PHP -Erweiterung über Zephir
Was ist Zephir und warum wird es in der PHP-Erweiterungsentwicklung verwendet? Es wird in der PHP -Erweiterungsentwicklung verwendet, da es eine ähnliche Syntax wie PHP bietet, wodurch es den PHP -Entwicklern erleichtert wird, Erweiterungen zu schreiben, ohne die Komplexität von C zu lernen, die Sprache, die normalerweise für PHP -Erweiterungen verwendet wird. Zephir bietet auch Speichersicherheits- und Leistungsoptimierung, wodurch die resultierenden Erweiterungen zuverlässiger und schneller werden.
Wie installiere ich Zephir? Ihre lokale Maschine. Navigieren Sie nach dem Klonen zum geklonten Verzeichnis und führen Sie den Befehl Install aus. Es ist wichtig zu beachten, dass Zephir bestimmte Abhängigkeiten wie PHP -Entwicklungsheader und C -Compiler benötigt. Stellen Sie sicher, dass diese vor dem Start des Installationsprozesses installiert sind.
Wie erstelle ich eine PHP -Erweiterung mit Zephir? Zunächst müssen Sie ein Zephir -Projekt mit dem Init -Befehl initialisieren. Dies schafft eine Verzeichnisstruktur für Ihre Erweiterung. Als nächstes schreiben Sie Ihren Erweiterungscode in .zep -Dateien. Sobald Ihr Code fertig ist, können Sie ihn mit dem Befehl Compile in eine PHP -Erweiterung zusammenstellen. Schließlich müssen Sie die Erweiterung Ihrer Php.ini -Datei hinzufügen, um sie zu aktivieren.
Was sind die Vorteile der Verwendung von Zephir über C für die Entwicklung von PHP -Erweiterung? Zephir hingegen bietet eine einfachere, vertrautere Syntax für PHP -Entwickler. Es wird auch automatisch die Speicherverwaltung behandelt und das Risiko von Speicherlecks verringert. Darüber hinaus enthält Zephir Leistungsoptimierungen, mit denen die resultierenden Erweiterungen schneller laufen können. . Die Entwickler haben jedoch Interesse daran bekundet, in Zukunft andere Sprachen zu unterstützen. Wenn Sie Erweiterungen für andere Sprachen erstellen möchten, müssen Sie ein anderes Tool oder eine andere Sprache verwenden.
Wie kann ich eine Zephir -Erweiterung debuggen? mit einer Vielzahl von Werkzeugen erledigt. Eine gemeinsame Methode besteht darin, die Zephir -Parser -Erweiterung zu verwenden, die detaillierte Fehlermeldungen liefert und Ihnen dabei helfen kann, Probleme in Ihrem Code zu identifizieren. Sie können auch Standard-PHP-Debugging-Tools wie Xdebug verwenden, obwohl diese möglicherweise nicht so viele Details für zephirspezifische Probleme enthalten. ist so konzipiert, dass sie hocheffizient ist, und in vielen Fällen können Erweiterungen, die in Zephir geschrieben wurden, schneller sein als der äquivalente PHP -Code. Dies liegt daran, dass Zephir zu C kompiliert, eine Sprache auf niedrigerer Ebene, die schneller vom Computer ausgeführt werden kann. Der genaue Leistungsunterschied kann jedoch je nach dem spezifischen Code und der Art und Weise variieren.
Kann ich zum Zephir-Projekt beitragen? Aus der Community sind willkommen. Wenn Sie einen Beitrag leisten möchten, können Sie das Projekt auf GitHub überprüfen, um festzustellen, welche Probleme derzeit geöffnet sind und welche Hilfe benötigt wird. sind mehrere Ressourcen für das Erlernen von Zephir zur Verfügung. Die offizielle Zephir -Dokumentation ist ein guter Ausgangspunkt und bietet einen umfassenden Leitfaden für die Funktionen und die Verwendung der Sprache. Es gibt auch mehrere Tutorials und Blog -Beiträge online verfügbar, die zusätzliche Erkenntnisse und Beispiele liefern können.
Was sind einige gemeinsame Anwendungsfälle für Zephir? kritischer Teil einer PHP -Anwendung für die Leistung. Es wird auch verwendet, wenn es erforderlich ist, mit einer C -Bibliothek eine Schnittstelle zu haben, da Zephir als Brücke zwischen PHP und C dienen kann Code.
Das obige ist der detaillierte Inhalt vonErste Schritte mit der PHP -Erweiterungsentwicklung über Zephir. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Der Artikel erläutert, wie Schnittstellen in PHP erstellt, implementiert und verwendet werden und sich auf ihre Vorteile für die Organisation von Code und die Wartbarkeit konzentriert.

In dem Artikel werden die Unterschiede zwischen CryPT () und Passage_hash () in PHP für Passwort -Hashing erörtert und sich auf ihre Implementierung, Sicherheit und Eignung für moderne Webanwendungen konzentriert.

In Artikel werden in PHP durch Eingabevalidierung, Ausgabecodierung und Verwendung von Tools wie OWASP ESAPI und HTML-Reinigungsmittel die Verhinderung des Cross-Site-Skripts (XSS) erläutert.

Das Autolading in PHP lädt bei Bedarf die Klassendateien automatisch und verbessert die Leistung durch Reduzierung des Speichergebrauchs und Verbesserung der Codeorganisation. Zu den Best Practices gehört die Verwendung von PSR-4 und das organisierende Code effektiv.

PHP -Streams vereinheitlichen die Handhabung von Ressourcen wie Dateien, Netzwerkhöhlen und Komprimierungsformaten über eine konsistente API, die Komplexität abstrahieren und die Flexibilität und Effizienz der Code verbessern.

In dem Artikel wird das Verwalten von Datei -Upload -Größen in PHP erläutert, wobei der Schwerpunkt auf der Standardgrenze von 2 MB und der Erhöhung der PHP.ini -Einstellungen liegt.

In dem Artikel werden nullbare Typen in PHP erörtert, die in PHP 7.1 eingeführt wurden und ermöglicht, dass Variablen oder Parameter entweder ein angegebener Typ oder ein Null sind. Es zeigt Vorteile wie eine verbesserte Lesbarkeit, Typsicherheit und explizite Absicht und erklärt, wie man deklariert

Der Artikel erörtert die Unterschiede zwischen UNSET () und Unlink () in der Programmierung und konzentriert sich auf ihre Zwecke und Anwendungsfälle. UnSet () entfernt Variablen aus dem Speicher, während Unlink () Dateien aus dem Dateisystem löscht. Beide sind für Effec von entscheidender Bedeutung


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool
