Heim > Backend-Entwicklung > PHP-Tutorial > Symfony 2 Checkliste für Entwicklung und Bereitstellung

Symfony 2 Checkliste für Entwicklung und Bereitstellung

Jennifer Aniston
Freigeben: 2025-02-21 10:34:11
Original
601 Leute haben es durchsucht

Symfony 2 Checkliste für Entwicklung und Bereitstellung

Key Takeaways

  • Bevor Sie mit dem Entwicklungsprozess beginnen, ist es wichtig, die Kompatibilität Ihres Produktionsservers zu testen, um potenzielle Probleme wie fehlende Bibliotheken oder unveränderliche globale Einstellungen zu vermeiden, auf die sich die Anwendung verlässt.
  • Die Serverbereitschaft, die Versionskontrolle, der Remote -Entwicklermodus, die Cache -Update und die Anpassung der Fehlerseiten sind einige der wichtigsten Aspekte, die während der Bereitstellung einer Symfony 2 -Anwendung berücksichtigt werden müssen.
  • Die Verwendung von Git für die Versionskontrolle kann dazu beitragen, lokale Änderungen an der Remote -Site während der Entwicklung zu synchronisieren. Es ist auch wichtig, den Cache jedes Mal zu löschen, wenn die Anwendung aktualisiert wird, um Fehler zu vermeiden.
  • Anpassen der Fehlerseiten Ihrer Symfony 2 -Anwendung kann eine maßgeschneiderte Benutzererfahrung bieten. Diese Seiten unterstützen jedoch nicht die Erweiterung der Zweigvorlage, daher müssen sie von Grund auf neu gestaltet werden.

In meinem Erstellen einer persönlichen Web -App geht ich mit Symfony 2 -Serie, die auf SitePoint veröffentlicht wurde, einige Grundlagen in Bootstrapping, Entwicklung und Fertigstellung (zu einigen fortgeschrittenen Techniken), um Symfony 2 zur Entwicklung einer Webanwendung zu verwenden. Aufgrund der Längenbeschränkung der Serie haben wir jedoch nicht viel über den „endgültigen“ Schritt behandelt: um eine Symfony 2 -Anwendung in der Produktionsumgebung einzusetzen.

Wenn wir uns entwickeln, sind wir höchstwahrscheinlich in einer „Wurzel“ -Rolle; In einer Produktionsumgebung können wir dieses Privileg möglicherweise beraubt werden. Auch die Einstellungen können unterschiedlich sein. Um die Sache noch schlimmer zu machen, können wir diese Einstellungen manchmal nicht wie in unseren eigenen Maschinen ändern.

daher ist es von großer Bedeutung, die „Kompatibilität“ unseres Produktionsservers zu überprüfen, bevor eine echte Entwicklung auf unserem eigenen Server erfolgt. Dies vermeidet solche schrecklichen Situationen wie: Eine Bibliothek, von der Symfony abhängt, fehlt, einige globale Einstellungen, auf die die App angewiesen ist, sind unveränderlich usw.

Testen der „Kompatibilität“ unseres Produktionsservers sollte wirklich zu Beginn etwas sein. Während der Bereitstellung müssen auch einige andere Aspekte angesprochen werden - z. B. Vorlagen für verschiedene Fehlermeldungen usw.

In den folgenden Abschnitten werden wir davon ausgehen, dass Sie keine vollständige Kontrolle über Ihren Produktionsserver haben. Wenn Sie dies tun, gelten die meisten Kompatibilitätsprobleme wahrscheinlich nicht, da Sie sie ganz einfach selbst beheben können.

Ein leeres Symfony -Framework auf dem Produktionsserver

Befolgen Sie die Anweisungen in meinem ersten Artikel auf Symfony 2, um ein leeres Symfony -Framework auf dem Produktionsserver einzurichten.

Dies ist auch hilfreich zu testen, ob der Server Curl aktiviert ist, und nicht nur auf dem Server, sondern auch als PHP -Erweiterung installiert, um sicherzustellen, dass wir externe Ressourcen erfassen können. In meinem speziellen Fall ist dies sehr wichtig - Composer.org ist in meinem Land blockiert und ich muss einen Proxy verwenden, um das Symfony -Framework zu holen und zu installieren.

Dieses leere Framework kann später in die Versionskontrolle untersucht werden.

Die Konfigurationsdatei

Symfony 2 wird mit einer im Webverzeichnis befindlichen config.php -Datei geliefert. Dies ist das Skript, um den größten Teil des Problems der „Bereitschaft“ zu testen. Um diese Seite zu besuchen, müssen wir sie ein bisschen optimieren:

<span><span><?php
</span></span><span>
</span><span><span>if (!isset($_SERVER['HTTP_HOST'])) {
</span></span><span>    <span>exit('This script cannot be run from the CLI. Run it from a browser.');
</span></span><span><span>}
</span></span><span>
</span><span><span>if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
</span></span><span>    <span>'127.0.0.1',
</span></span><span>    <span>'::1',
</span></span><span><span>))) {
</span></span><span>    <span>header('HTTP/1.0 403 Forbidden');
</span></span><span>    <span>exit('This script is only accessible from localhost.');
</span></span><span><span>}
</span></span><span><span>...</span></span>
Nach dem Login kopieren
Nach dem Login kopieren

Diese Datei soll nur aus einem lokalen Browser aufgerufen werden. Wir müssen den zweiten If -Block aus kommentieren, damit wir ihn aus der Ferne besuchen können.

Mein Server ist korrekt konfiguriert und hat keine kritischen Probleme:

Symfony 2 Checkliste für Entwicklung und Bereitstellung

Diese Datei testet die Bereitschaftsprobleme, die ich in der folgenden Tabelle zusammenfasse. Die tatsächlichen Tests erfolgen in App/SymfonyRequirements.php, damit wir uns diese Datei auch ansehen können.

Einstellungen/Module Anforderung Ernsthaftigkeit Aktionen PHP -Version
= 5.3.3
Erforderlich, dürfen aber nicht 5.3.16 sein Upgrade auf die neueste Version. Schlagen Sie vor, mindestens PHP 5.4.8 und höher zu verwenden. Verkäuferbibliotheken Installiert von Composer.phar Erforderlich Aktualisieren Sie mit Composer.phar Cache, Protokolle Verzeichnis Beschreibbar Erforderlich Durch Ausgabe von CHMOD zur Erteilung von Berechtigungen. Normalerweise sollte das Privileg 755 oder 777 betragen. Zeitzone So etwas wie 'Asien/Shanghai' oder deine Zeitzone Erforderlich Ändere php.ini. json_encode, session_start, ctype_alpha, token_get_all, simplexml_import_dom Ermöglicht Erforderlich Aktivieren Sie die jeweiligen PHP -Bibliotheken. Die meisten PHP -Server haben diese aktiviert. APC Aktiviert/deaktiviert Aktiviert, wenn APC verwendet wird Aktivieren Sie APC oder deaktivieren Sie APC, wenn Sie einen anderen Cache/Accelerator verwenden. xdebug Verschiedene Einstellungen Erforderlich, empfohlen Ändern Sie die XDEBUG -Einstellungen entsprechend. Domdocument, mb_strlen, iCony, utf8_decode, intl usw. Verschiedene Module Empfohlen Aktivieren Sie, wenn Sie möchten. Beschleuniger Verschiedene Einstellungen Empfohlen Installieren und aktivieren Sie pro Anfrage. Kurzes Open -Tag, Magic_quotes_gpc, Register_Globals, Session.auto_start Deaktiviert Empfohlen Schlagen Sie vor, den Vorschlägen zu folgen. Die neuesten PHP -Versionen haben einige von ihnen standardmäßig deaktiviert. Pdo Datenbanktreiber Empfohlen Bitte installieren Sie es und aktivieren Sie es. Es ist obligatorisch, ob Sie Doctrine ORM verwenden.

Eine Ernsthaftigkeit von „Erforderlich“ bedeutet, dass wir unsere Servereinstellungen ändern müssen, um die Anforderungen zu erfüllen. Andernfalls wird Symfony 2 nicht ausgeführt und sollte daher nicht die richtige Wahl für unsere Anwendungsentwicklung sein. Ein „empfohlenes“ Artikel kann sicher ignoriert werden, aber ich schlage vor, wir erfüllen diese Empfehlungen so viel wie möglich. In meinem Fall (oben gezeigt) hat mein Produktionsserver nur eine Warnung. Dies schafft einen soliden und zuverlässigen Grund für die Weiterentwicklung.

Verwenden Sie Git, um Dateien

zu synchronisieren

Während der Entwicklung möchten Sie, anstatt die Dateien auf den Produktionsserver zu kopieren, die Versionskontrolle verwenden, um lokale Änderungen an der Remote -Website zu synchronisieren.

In diesem Fall wird ein ordnungsgemäßes .Gitignore (oder gleichwertig in anderen Versionskontrollsystemen) praktisch. Der folgende Auszug aus meiner .Gitignore -Datei ist als Referenz:

<span><span><?php
</span></span><span>
</span><span><span>if (!isset($_SERVER['HTTP_HOST'])) {
</span></span><span>    <span>exit('This script cannot be run from the CLI. Run it from a browser.');
</span></span><span><span>}
</span></span><span>
</span><span><span>if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
</span></span><span>    <span>'127.0.0.1',
</span></span><span>    <span>'::1',
</span></span><span><span>))) {
</span></span><span>    <span>header('HTTP/1.0 403 Forbidden');
</span></span><span>    <span>exit('This script is only accessible from localhost.');
</span></span><span><span>}
</span></span><span><span>...</span></span>
Nach dem Login kopieren
Nach dem Login kopieren

Dies ist niemals eine ausführliche oder fit-All-Purpose-Liste. Wenn Sie beispielsweise PHPSTORM, jedoch nicht NetBeans verwenden, können Sie den Abschnitt NetBeans löschen und durch Filter ersetzen, die für PHPStorm geeignet sind:

<span># Composer
</span><span>vendor
</span><span>vendor/*
</span><span>!public/assets/js/vendor
</span><span>!public/assets/js/vendor/*
</span><span>!public/assets/css/vendor
</span><span>!public/assets/css/vendor/*
</span><span>composer.phar
</span><span>composer.lock
</span><span>
</span><span># Symfony
</span><span>app/cache/*
</span><span>app/logs/*
</span><span>
</span><span># Logs
</span><span>error.log
</span><span>access.log
</span><span>
</span><span># Netbeans
</span><span>nbproject
</span><span>.nbproject
</span><span>.nbproject/*
</span><span>nbproject/*
</span><span>nbproject/private/
</span><span>build/
</span><span>nbbuild/
</span><span>dist/
</span><span>nbdist/
</span><span>nbactions.xml
</span><span>nb-configuration.xml</span>
Nach dem Login kopieren

oder lassen Sie sie einfach beide in, damit Sie automatisch andere Entwickler berücksichtigen, die möglicherweise andere IDES verwenden. Es wird empfohlen, immer die ersten 3 Abschnitte (Komponisten, Symfony, Protokolle) einzuschließen.

Cache Cache

Wenn eine Symfony -App zum ersten Mal auf einem Remote -Server ausgeführt wird, wird eine kompilierte Version unserer App im App/Cache/Prod -Verzeichnis erstellt. Wenn unsere Dateien, insbesondere unsere Controller und Routen, aktualisiert werden, müssen wir den Cache aktualisieren oder die Ausgabe kann falsch sein und häufig 500 Fehler verursachen.

Um den Cache zu löschen, werde ich normalerweise SSH auf meinem Produktionsserver und einen RM -RF -Cache -Befehl im App -Verzeichnis durchführen. Der Konsolen -Cache: Löschen oder Konsolencache: Warmup -Befehl ist möglicherweise nicht die sauberste Art, dies zu tun.

Remote Dev -Modus

Verwenden Sie dies mit Vorsicht und nur dann, wenn dies unbedingt erforderlich ist!

In einigen Fällen kann eine lokale Funktionsseite nur abstürzen, wenn sie auf dem Produktionsserver bereitgestellt wird. Die Gründe, die dies verursachen, können komplex sein und nicht mit dem Codierungsprozess selbst zusammenhängen. Unter diesen Umständen können wir in Betracht ziehen, den Remote -Entwicklermodus zu aktivieren.

, um dies zu tun, verfolgen wir den ähnlichen Ansatz, um die Localhost -Prüfung zu deaktivieren, indem wir den folgenden Codeblock in app_dev.php:

kommentieren
<span># IntelliJ - PhpStorm and PyCharm
</span><span>.idea
</span><span>.idea/
</span><span>.idea/*
</span><span>*.iml
</span><span>*.ipr
</span><span>*.iws </span>
Nach dem Login kopieren

Wir können dann die Domain und Seiten mit so etwas wie folgt besuchen: http: //rsywx_remote/app_dev.php. Wenn etwas schief geht, zeigt dieser Entwicklermodus nützlichere Debug -Informationen an und kann uns sehr helfen, einige tief verwurzelte Probleme zu finden. Fügen Sie für zusätzliche Sicherheit während dieser Debug -Zeit einen Scheck hinzu, der nur Besuche von Ihrer eigenen IP zu der obigen Datei ermöglicht. Dadurch wird der Entwicklermodus für alle anderen in Betrieb genommen. Die meisten Probleme beziehen sich auf die Datenbank -Setup (falsche Datenbank und/oder Anmeldeinformationen), falsche API -URIs (lokale und Remote -URIs können unterschiedlich sein), veralteter Cache, fehlende Bibliotheken, die lokal verwendet, aber nicht aktiviert sind usw.

Wenn die Probleme behoben wurden, denken Sie bitte daran, diese Linien zu entlassen, um die volle Zugriffskontrolle wiederherzustellen. Reguläre Benutzer dürfen App.php nur als Einstiegspunkt unserer App verwenden.

passen Sie die Fehlerseiten

an Die Standard -Zweig -Twig -Template -Engine von Symfony 2 bietet einige Fehlerseiten (404, 500 usw.). Das Design dieser Seiten passt jedoch normalerweise nicht zu unserer Anwendung. Die offizielle Site hat die detaillierte Erklärung dazu. Wir können unsere eigenen Fehlerseiten basierend auf unserem eigenen Layout und Thema entwickeln.

Wir können die Fehlerseiten anpassen und unter App/Ressourcen/Twigbundle/Ansichten/Ausnahme einsetzen. Die Dateien können für 404 Fehler, Fehler403.html.twig für 403 Fehler usw. oder nur error.html.twig für allgemeine Zwecke für 403 Fehler usw. als Fehler404.html.twig bezeichnet werden.

Es ist wichtig zu beachten, dass in Symfony 2 Fehlermeldungsseiten die Erweiterung der Twig -Vorlagen nicht unterstützen. Dies bedeutet, dass wir keine Fehlerseite von einem vorhandenen Layout für andere Seiten erweitert haben. Wir müssen die Fehlerseiten von Grund auf neu gestalten. Dies ist ein bisschen unpraktisch, aber es lohnt sich immer noch, für eine ernsthafte Seite zu tun.

Schlussfolgerung

In diesem Artikel haben wir einige Symfony Deployment -bezogene Themen behandelt: die Serverbereitschaft, die Versionskontrolle, den Remote -Entwicklermodus, die Cache -Update, die Anpassung der Fehlerseiten usw.

Einsatz ist normalerweise der letzte Schritt in unserer Entwicklung. Ich hoffe, dieser Artikel hat Ihnen geholfen, ein gemeinsames Pitfals zu vermeiden, und Ihr Bereitstellungsprozess reibungsloser gemacht.

Bitte fordern Sie diesen Artikel um, wenn Sie ihn interessant oder nützlich empfunden haben, und hinterlassen Sie unten einen Kommentar, wenn Sie Feedback haben. Er wird sehr geschätzt!

häufig gestellte Fragen zu Symfony 2 Entwicklung und Bereitstellung

Was ist Symfony 2 und warum sollte ich es für mein Webentwicklungsprojekt verwenden? Es ist bekannt für seine Geschwindigkeit, Flexibilität und wiederverwendbare Komponenten. Es ermöglicht Entwicklern, robuste Anwendungen effizient zu erstellen. Das Framework folgt dem Entwurfsmuster MVC (Modell-View-Controller), wodurch die Codebasis einfacher wird und die Entwicklung skalierbarer Anwendungen fördert. Symfony 2 hat auch eine lebendige Community, die hervorragende Unterstützung bietet und zu seiner umfangreichen Bibliothek von Bündeln beiträgt.

Wie installiere ich Symfony 2 auf meinem lokalen Computer? beinhaltet ein paar Schritte. Zunächst müssen Sie sicherstellen, dass Sie PHP installiert haben. Symfony 2 erfordert PHP 5.3.9 oder höher. Sobald Sie PHP installiert haben, können Sie Composer, ein Abhängigkeitsmanagement -Tool für PHP, verwenden, um Symfony zu installieren. Sie können Komponist von seiner offiziellen Website herunterladen. Nach dem Installieren von Composer können Sie es verwenden, um ein neues Symfony-Projekt zu erstellen, indem Sie den Befehl 'Composer Create-Project Symfony/Framework-Standard-Edition my_project_name' ausführen.

Was sind die Schlüsselfunktionen von Symfony 2? >

Symfony 2 verfügt über eine Vielzahl von Funktionen, die es zu einem leistungsstarken Tool für die Webentwicklung machen. Einige dieser Funktionen umfassen seine wiederverwendbaren Komponenten, die über mehrere Projekte hinweg verwendet werden können, deren Unterstützung für das MVC -Designmuster, das sauberen und wartbaren Code fördert, und deren Verwendung von Doctrine ORM für Datenbankabstraktion. Symfony 2 verfügt außerdem über eine robuste Sicherheitskomponente, die ein umfassendes Sicherheitssystem für Ihre Anwendungen bietet.

Wie bereitete ich eine Symfony 2 -Anwendung bereit? Zunächst müssen Sie sicherstellen, dass Ihr Server die Anforderungen für das Ausführen von Symfony erfüllt. Dies beinhaltet die korrekte Installation und Konfiguration von PHP. Sobald Ihr Server eingerichtet ist, können Sie ein Tool wie Git verwenden, um Ihre Anwendung auf den Server zu klonen. Danach müssen Sie die Abhängigkeiten der Anwendung mit Composer installieren. Schließlich müssen Sie Ihren Webserver so konfigurieren, dass Sie auf das Verzeichnis "Web" Ihrer Symfony -Anwendung verweisen. 2 Die Anwendung auf eine neuere Version kann mit Composer erfolgen. Zunächst müssen Sie die Datei "Composer.json" in Ihrem Projekt aktualisieren, um die neue Version von Symfony anzugeben, die Sie verwenden möchten. Danach können Sie den Befehl "Composer Update" ausführen, um Ihre Anwendung zu aktualisieren. Es ist wichtig, Ihre Anwendung nach einem Upgrade gründlich zu testen, um sicherzustellen, dass alles wie erwartet funktioniert.

Was sind Bündel in Symfony 2 und wie benutze ich sie? Plugins in anderen Software. Sie sind eine Möglichkeit, Symfony 2 -Code zu verpacken und zu verteilen. Sie können alles aus Bibliotheken, Vorlagen, Controllern und Konfiguration enthalten - im Wesentlichen jeden PHP -Code, der ausgeführt werden kann. Sie können Bündel verwenden, die von der Symfony -Community bereitgestellt oder Ihre eigenen erstellen. Um ein Bundle zu verwenden, müssen Sie es herunterladen, in der Datei 'appkernel.php' aktivieren und gegebenenfalls konfigurieren. > Symfony 2 bietet eine leistungsstarke und flexible Möglichkeit, Fehler und Ausnahmen zu behandeln. Es verfügt über eine integrierte Debug-Komponente, die während der Entwicklung detaillierte Fehlermeldungen liefert. In einer Produktionsumgebung fängt Symfony 2 alle Ausnahmen auf und wandelt sie in „Antwort“ -Objekte um. Sie können die Fehlerseiten anpassen, indem Sie Vorlagen im Verzeichnis "App/Ressourcen/Twigbundle/Ansichten/Ausnahme" erstellen.

Wie erstelle ich Formulare in Symfony 2? Eine "Form" -Komponente, die es einfach macht, Formulare zu erstellen und zu verwalten. Sie können ein Formular erstellen, indem Sie eine Formyp -Klasse erstellen und die Felder im Formular definieren. Sobald das Formular erstellt wurde, können Sie die Formulareingabe in Ihrem Controller verarbeiten. Symfony 2 bietet auch eine Möglichkeit, die Formulardaten mithilfe von Validierungsbeschränkungen zu validieren. und Genehmigung. Sie können verschiedene Authentifizierungsmethoden wie Formular Login, HTTP Basic Authentication oder OAuth konfigurieren. Zur Autorisierung bietet Symfony 2 ein flexible „Access Control List“ (ACL) -System, mit dem Sie feinkörnige Berechtigungen für Ihre Benutzer definieren können.

Wie optimiere ich die Leistung meiner Symfony 2 -Anwendung?

Es gibt verschiedene Möglichkeiten, die Leistung einer Symfony 2 -Anwendung zu optimieren. Einige davon umfassen die Nutzung der Produktion von „prod“ für die Produktion, die Aktivierung der APC -PHP -Erweiterung für Opcode -Caching, die Optimierung des Autoloaders mit Composer und die Verwendung der HTTPCache -Klasse, um HTTP -Caching -Headern zu Ihren Antworten hinzuzufügen.

.

Das obige ist der detaillierte Inhalt vonSymfony 2 Checkliste für Entwicklung und Bereitstellung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage