Symlex zielt darauf ab, die agile Webentwicklung zu vereinfachen, indem ein Arbeitssystem bereitgestellt wird, das mit Beispiel Best Practices fördert:
Seit seiner ersten Veröffentlichung im Jahr 2014 hat es sich als gut für den raschen Aufbau von Microservices, CLI- und einseitigen Anwendungen erwiesen. Es wird mit Arbeitsbeispielen von Tests bis hin zu Formularen und Datenbankabstraktion geliefert. Löschen Sie einfach, was Sie nicht brauchen.
Der Kernel ist winzig und erstellt nur einen Service -Container für Bootstrapping in seinem Kontext. Die Verwendung eines einzelnen Containers zur Konfiguration und Abhängigkeitsinjektion verringert die Komplexität und führt zu einer verbesserten Leistung im Vergleich zu anderen Frameworks. Es hindert Entwickler auch daran, Bündel gedankenlos zu installieren, ohne sie zu verstehen. Das Ergebnis ist weniger blau und einfacher, wartbarer und überprüfbarer Code, der für die agile Entwicklung von grundlegender Bedeutung ist.
Nach Möglichkeit werden einfache Klassen verwendet, um das Lock-In der Hersteller zu vermeiden und eine Wiederverwendung von Framework-Code zu aktivieren. Siehe Kompromisses.md.
Sie können das PHP -basierte Backend mit jeder JavaScript -Bibliothek oder einem REST -Client kombinieren. Die Front-End-Kesselplatte ist für Ihre Bequemlichkeit vorhanden und bringt Sie gerade auf den Weg, um beeindruckende einseitige Anwendungen mit Webpack und Vuetify zu erstellen, siehe Demo.Symlex.org. Ein Arbeitsbeispiel für Befehlszeilenanwendungen ist ebenfalls enthalten.
Unsere vollständige Rahmendokumentation finden Sie unter docs.symlex.org. Tuzi Liu unterhält eine chinesische Übersetzung für uns.
Hinweis: https://github.com/symlex/symlex-core enthält den Kernel und die Router als wiederverwendbare Komponenten.
Stellen Sie vor Beginn sicher, dass Sie PHP 7.3+, Komponist und Docker in Ihrem System installiert haben (Howto for Mac OS X). Führen Sie get-composer.sh aus, um composer lokal unter Linux zu installieren. Anstatt Docker zu verwenden, können Sie Ihre eigene Laufzeit -Umgebung basierend auf der vorhandenen Dockerfile einrichten. Darüber hinaus benötigen Sie eine Datenbank plus NodeJs und NPM, um die Frontend zu erstellen.
Schritt 1: Führen Sie composer aus, um ein neues Symlexprojekt zu erstellen:
composer create-project symlex/symlex myapp
Der Composer fordert Konfigurationswerte auf, um app/config/parameters.yml für Sie zu generieren.
Stellen Sie sicher, dass storage/cache beschreibbar ist, damit Cache -Dateien von der App erstellt werden können.
Schritt 2: Start Roadrunner und Mariadb mit docker-compose :
cd myapp
docker-compose up
Hinweis: Diese Konfiguration dient nur zum Testen und Entwicklungszwecken. Weitere Informationen finden Sie in den Kommentaren von docker-compose.yml. Möglicherweise müssen Sie es optimieren, wenn Sie Docker aus Sicherheitsgründen mit einem anderen Benutzer ausführen. Auf OS X ist die aktuelle Version von Docker sehr langsam bei der Ausführung von PHP aus dem Dateisystem des Hosts. docker-compose up -d führt Docker im Hintergrund aus, aber in diesem Fall werden Sie keine hilfreichen Protokollnachrichten angezeigt.
Schritt 3: Lassen Sie die Datenbank initialisieren und die Front-End-Komponenten für Sie erstellen:
make terminal
make all database
Um zu überprüfen, ob alles funktioniert, rennen Sie make test .
Hinweis: Sie können diesen Ansatz auch verwenden, um andere CLI -Befehle später auszuführen. Make sollte in typischen Unix-Entwicklungsumgebungen vorinstalliert sein xcode-select --install build-essential müssen Sie es möglicherweise zuerst abrufen, z build-base Das Makefile enthält eine Liste aller Ziele.
Öffnen Sie nach erfolgreicher Installation die Website unter http: // localhost: 8081/und melden Sie sich unter [email protected] mit dem Passwort passwd an.
YAML -Dateien, die sich in app/config befinden, konfigurieren Sie die App basierend auf Parametern und Diensten. Die Hauptkonfigurationsdateien sind app/config/web.yml und app/config/console.yml .
Wenn Sie localhost-debug zu Ihren /etc/hosts hinzufügen und damit auf die Website zugreifen, wird der Debug-Modus geladen (Sie sehen eine Stapelverfolgung und andere Debug-Informationen zu den Fehlerseiten).
Die MailHog -Benutzeroberfläche ist unter http: // localhost: 8025/verfügbar. Es kann verwendet werden, um E -Mails zu empfangen und anzeigen, die automatisch vom System gesendet werden, z. B. wenn neue Benutzer erstellt werden.
Wenn Sie eine leichtere App erstellen möchten, schauen Sie sich unsere anderen Beispiele an:
Vollständige Dokumentation: https://docs.symlex.org/en/latest/framework/
Symlex enthält jetzt Roadrunner - einen Hochleistungs -PHP -Anwendungsserver - als Alternative zu Nginx. Es wird automatisch heruntergeladen, wenn Sie das Docker -Bild erstellen.
Unsere Installationsanweisungen für Symlex> = 4.4.0 funktionieren für frühere Veröffentlichungen nicht, da sie immer noch Nginx und PHP-FPM verwenden. Anstelle von web und php gibt es jetzt einen einzigen app -Service, der von Roadrunner betrieben wird. Wenn Sie NGINX bevorzugen, können Sie eine ältere Version verwenden oder die vorherige Konfiguration in die neue Version kopieren. Einige unserer Beispiel -Apps verwenden auch Nginx.
Symlex wird von Michael Mayer gepflegt und zielt darauf ab, die agile Webentwicklung zu vereinfachen, indem ein Arbeitssystem bereitgestellt wird, das durch Beispiel Best Practices fördert. Michael veröffentlichte 2001 seinen ersten PHP -Framework und hat in der Vergangenheit mit verschiedenen wichtigen Rahmenanbietern zusammengearbeitet. Das Aufbau dies wäre ohne viele frühere Arbeiten anderer Entwickler nicht möglich gewesen. Vielen Dank an die und alle, die beigetragen haben!
Die Wahl ist der Feind der Produktivität. Anders ausgedrückt, wenn Ihre Lösung alles tut und keine Meinung zu irgendetwas hat, dann löst sie nichts. - Asim Aslam
Senden Sie gerne eine E-Mail an [email protected], wenn Sie Fragen haben, kommerzielle Unterstützung benötigen oder einfach nur Hallo sagen möchten. Wir begrüßen Beiträge jeglicher Art. Wenn Sie einen Fehler oder eine Idee haben, lesen Sie unseren Leitfaden, bevor Sie ein Problem eröffnen.
Es ist offensichtlich, dass die PHP -Framework -Leistung hauptsächlich von den Codezeilen abhängt, die für jede Anfrage ausgeführt werden müssen. Während Symlex so konzipiert wurde, dass er einfach und schlank ist, ist eine gute Leistung ein sehr wichtiges Nebenprodukt dieses Ansatzes.
Der beste Code ist kein Code. Wo es keinen Code gibt, gibt es keine Fehler. Keine API zum Lernen. Keine unangenehme UI. Die besten Refaktoren sind Löschungen. - Eric Elliott
Wie von PHPBENCHMARKS.com veröffentlicht, sind REST -Anfragen mehr als 40% schneller als bei anderen gemeinsamen PHP -Frameworks:
Beachten Sie, dass diese Antwortzeiten im vollständig optimierten Produktionsmodus auf Fast Server -Hardware mit nur 5 gleichzeitigen Anforderungen gemessen wurden. In der Praxis könnten Unterschiede in Bezug auf die absolute Zeit viel größer sein. Der Verbrauch des Gedächtnisses sollte ebenfalls berücksichtigt werden:
Warum solltest du dich interessieren? Erstens werden Ihre Benutzer es lieben. In der Faustregelung geht es bei 100 ms um die Grenze, wenn sie das Gefühl haben, dass das System sofort reagiert, was bedeutet, dass kein spezielles Feedback erforderlich ist, außer dass das Ergebnis angezeigt wird. Die Gesamtreaktionszeit umfasst auch Netzwerk (~ 25 ms), Browser und andere Overheads, wodurch nur ein kleiner Teil dieser 100 ms für die Implementierung der tatsächlichen Geschäftslogik hinterlassen wird. Zweitens sparen Sie viel Geld für die Serverinfrastruktur und Entwickler sind produktiver, da die Tests schneller laufen.
Symlex wurde 2014 als einfacher Silex -Kesselplatte gestartet, da Silex selbst nicht mit einer "Standard Edition" ausgestattet ist, die Sie in die richtige Richtung zeigt. Die Verwendung von Silex anstelle von Symfony wurde von Senssiolabs (den Schöpfer beider Frameworks) als leichte Alternative zu Symfony + FosrestBundle empfohlen, um schnell leistungsstarke Rastdienste und einseitige Webanwendungen zu erstellen.
Es wurde bald festgestellt, dass Pickel - der Service -Container mit Silex - für Entwickler aus Symfony minderjährig fühlt und es schwierig macht, vorhandenen Code wiederzuverwenden. Darüber hinaus haben viele Silex-Code-Beispiele und sogar Anwendungen in der realen Welt auf den Service-Container aus allen Teilen des Codes (nicht nur auf das Framework selbst) zugegriffen, was die Kontrolle der Kontrolle umgeht und zu unangenehmer Testbarkeit führt. Symlex fördert daher die strikte Verwendung der Abhängigkeitsinjektion und kombiniert die Bequemlichkeit eines vollwertigen Service-Containers mit der Geschwindigkeit eines Mikro-Frameworks.
Heute hat Symlex eine eigene Routing -Komponente (basierend auf Symfony 4) und verwendet Silex nicht mehr. Der Rahmen hat sich für eine große Anzahl verschiedener Anwendungen als nützlich erwiesen. Einige von ihnen basierten zuvor auf dem regulären Symfony -Kernel und haben die Veränderung vorgenommen, weil sie in Komplexität ertrinken und unter Reaktionszeiten über 30 Sekunden im Entwicklungsmodus litten. Symlex brachte sie ohne große Änderungen an ihrer vorhandenen Codebasis wieder auf den richtigen Weg.
Symlex ist ein gemeinnütziges Projekt, das ausschließlich von Freiwilligen geführt wird. Sie können uns über Github -Sponsoren am besten unterstützen, insbesondere wenn Sie Hilfe bei der Verwendung unserer Software benötigen. Sie werden jede Spende im ersten Jahr entsprechen.
Bitte hinterlassen Sie einen Stern, wenn Ihnen dieses Projekt gefällt. Es bietet zusätzliche Motivation, weiterzumachen. Vielen Dank! <3