Heim >Backend-Entwicklung >PHP-Tutorial >Einige PHP-Frameworks
PHP ist eine der beliebtesten Programmiersprachen der Welt und wird häufig in Großprojekten eingesetzt. Facebook verwendet beispielsweise PHP zur Erstellung und Wartung seiner internen Systeme; WordPress basiert intern auf PHP und bietet im Gegenzug technischen Support für mehr als 26 % der Website. Und inzwischen unterstützt PHP mehr als 82 % aller Websites (die serverseitige Programmiersprache, die von der Website „Web Technology Surveys“ erfasst wird).
Dieser Artikel hilft Ihnen dabei, das am besten geeignete PHP-Framework zu finden, indem er die drei beliebtesten PHP-Frameworks vergleicht: Symfony, Laravel und Yii.
Warum PHP-Framework wählen?
Im Folgenden sind einige der Vorteile der Entwicklung mit einem PHP-Framework aufgeführt:
Das PHP-Framework beschleunigt die Entwicklung. Beispielsweise müssen Sie keine komplexen Abfrageoperationen schreiben, um Daten aus der Datenbank abzurufen. PHP bietet Operationen zum Hinzufügen (Erstellen), Lesen (Abrufen) (Daten abrufen), Aktualisieren (Aktualisieren) und Löschen (Löschen).
Das Framework kann Entwicklern die Erweiterung des Systems erleichtern.
Die Codepflege ist einfacher als bei gewöhnlichen PHP-Anwendungen. Der Anwendungscode wird sauberer.
MVC-Modell sorgt für eine schnelle Entwicklung.
Framework schützt Webanwendungen besser vor häufigen Sicherheitsbedrohungen.
Das DRY-Prinzip (Don’t Repeat Yourself) ermöglicht es, dass der wenigste Code die größte Rolle spielt.
Die oben aufgeführten Vorteile sind von großer Bedeutung. Obwohl jede Anwendung mit nativem PHP geschrieben werden kann, erfordert die heutige Entwicklung mehr Tools und Zeitmanagementfähigkeiten, um den Marktanforderungen gerecht zu werden.
Wie wählt man ein geeignetes PHP-Framework aus?
Die Beantwortung der folgenden Fragen kann Ihnen bei der Auswahl eines geeigneten Frameworks helfen:
Was sind die Merkmale und Funktionen dieses Frameworks? (Bietet es das, was ich brauche?)
Wie hoch ist die Lernkurve für dieses Framework?
Wie skalierbar ist dieses Framework?
Wirkt sich dieses Framework positiv auf die Entwicklung und Aufrechterhaltung des Coding-Teams aus?
Bietet dieses Framework eine Langzeit-Support-Version (LTS-Unterstützung)?
Erfährt dieses Framework starke Community-Unterstützung?
Überblick über Symfony, Laravel und Yii
Bevor wir auf die technischen Details eingehen, geben wir einen Überblick über die drei:
Symfony
Symfony ist eine wiederverwendbare PHP-Komponente, die es Entwicklern ermöglicht, skalierbare, leistungsstarke Anwendungen zu entwickeln. Es stehen 30 Komponenten zur Auswahl und Entwickler können frei experimentieren oder in der RAD-Umgebung arbeiten.
Einige der bekannteren Projekte, wie Drupal und phpBB, verwenden das Symfony-Framework. Tatsächlich basiert auch ein weiteres beliebtes PHP-Framework, Laravel, auf Symfony.
Laravel
„PHP-Framework für Web-Artisans“ – Laravel bietet Entwicklern als beliebtestes PHP-Framework eine hervorragende Community-Kommunikationsplattform (eine von der Gründer von Laravel ist Sfiskell von Livecoding.tv).
Die von Laravel im Mai 2015 veröffentlichte Version 5.1 wird eine langfristige Supportversion (zwei Jahre) bieten. Im Dezember 2015 kam auch die Version 5.2 auf den Markt. Es gibt viele Hosting-Unternehmen, die Laravel-Support sowie Laravel-Anwendungshosting-Lösungen anbieten.
Yii
Yii wurde 2008 vom Chinesen Xue Qiang entwickelt und ist ein sicheres, schnelles und leistungsstarkes Anwendungs-/Webentwicklungs-Framework. Yii nutzt den Composer-Abhängigkeitsmanager von PHP, um verschiedene Abhängigkeiten und Installationen zu verwalten (wir werden weiter unten darüber sprechen). Die Lazy-Loading-Technik macht Yii zum schnellsten PHP-Framework.
Ein weiteres nettes Feature von Yii ist die Integration von jQuery, die Frontend-Entwicklern einen schnelleren Einstieg ermöglicht. Es nutzt Gerüste, um Code zu generieren. Yii verwendet wie Symfony Komponenten, um die Anwendungsentwicklung zu beschleunigen.
Vergleich von Symfony, Laravel und Yii
Diese drei Frameworks sind alle für die Entwicklung von Web 2.0-Anwendungen konzipiert, ihr Fokus ist jedoch unterschiedlich. Werfen wir einen Blick auf die jeweiligen Funktionen und Installationen:
Template Engine
Template Engine kann die Belastung für Entwickler verringern und mehr Informationen beim Schreiben von Front- Endcode. Gute Funktionalität. Die Template-Engine bietet Funktionen wie automatisches HTML-Escape und Filterung und füllt die Lücken, die natives PHP hinterlässt.
Symfony Twig Template System
Twig ist eine flexible, schnelle und sichere PHP-Vorlagensprache. Der Vorteil von Symfony besteht darin, dass es Twig verwendet, um Entwicklern das Schreiben sauberer und aufgeräumter Codes zu ermöglichen, und dass sie natives PHP verwenden können, um weitere Funktionen zu implementieren. Beispielsweise implementiert der folgende lange Code das Escapen:
<?php echo $var ?> <?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>
Twig kann Folgendes verwenden. Der Code implementiert dasselbe Funktion:
{{ var }} {{ var|escape }} {{ var|e }} {# shortcut to escape a variable #}
你可以进入 Twig 主页来查看更多的功能。
Laravel Blade 模板系统
跟其他的模板系统不同,Blade 允许你在视图中使用 PHP 代码。而且,由于blade 视图文件存储在 .blade.php extension里面,所以 Blade 对你的应用性能损耗为 0。所有在视图文件里面的代码可以在处理过程中就转换成原生 PHP。
Yii 默认的模板系统
Yii 默认不使用任何第三方的模板系统,但这并不意味着它缺少模板系统的支持,模板系统的选择取决于开发团队,推荐 Twig 和 Smarty。Symfony 使用的是 Twig,所以如果你之前使用过 Symfony,你可能会想选择 Twig 作为你下一个 Yii 项目的选择。
很难定义那款才是最好的。这三个框架都利用了模板系统来更好地编写和维护前端。 Yii 的一个小优势是它没有一个预定义的模板系统。
框架的差异
每个框架的构建都是不同的。Symfony 致力于可重用组件,并提供最好的模块化。另外 Symfony 利用模块和控制器来开发 Web 应用,这可能会让一些刚入门的开发者望而却步。此外,Symfony 还是一个很好的模块化结构的例子,你可以以模块化的方式在你的项目里使用 symfony 提供的 30 个组件。
Yii采用 MVC 框架。(symfony 也支持 MVC 架构,更详细的讨论请看 blog.sznapka.pl 网站的 Is Symfony2 a MVC framework )
Symfony 可以用于快速开发复杂的项目。如果说哪个框架最适合复杂的项目的话,symfony 相比于其他框架具有十分优秀的复杂处理的能力 。Yii 也利用了组件,但和 symfony 的模块不一样。Laravel 虽然没有提供一个模块化的方法,但和其他两个框架一样好用。
如果你正在寻找一个模块化的框架的话就选择 symfony。否则,Laravel 和 Yii 都是不错的选择。
安装
这三个框架都提供了多个安装过程,如果您使用 Composer 来处理包,就发现其实所有框架都可以通过Composer 安装。
而对于 Symfony 来说,Composer 的作用尤为重要。因为使用 PHP 的 Composer 依赖项管理器是处理组件的好帮手。
当然也有其他的安装框架的方式,例如使用简单的归档方法来安装。
安装后,Yii 将提供一个 Web 应用程序和一个基本的模板帮助你的开发;Symfony 2 提供了一个开始演示应用程序;通过 Laravel 安装程序来安装和使用 Composer 来创建项目,使得 Laravel 也能够很容易安装使用。详细信息请查看 Laravel 安装指南。
发展
从公司或客户的角度来看,迅速将应用程序推向市场以满足消费者的需求并击败竞争对手是很重要的。 Symfony 由于其背后有强大的社区支撑而站稳脚跟; Laravel 正在快速成长,要被开发者完全认可仍有很长的路要走。另外,如果你还不知道任何 PHP 框架,希望尽快选择一款适合你的,Laravel 是个不错的选择,它有一个简单的学习曲线,并且有很多在线教程帮助你开始使用。Yii 将性能提升到一个新的水平,并提供代码基架,以便更快地生成和开发代码。
性能
任何应用程序的性能只有当它使用关键数据的实时应用程序时才有意义。有多少基于 Web 的应用程序依赖于高性能呢? 并不多,但是框架的性能在许多项目中可以发挥关键性的作用。
社交网络是实时事件的主要例子,我们的明星流媒体之一——jadson 就使用了 Yii2 建立移动社交网络。最快的 PHP 框架 Yii 毫无疑问是高性能应用程序编码框架的最佳选择。
Laravel 的性能是非常有争议的。它是最慢的,但这重要吗? 您可以找到很多用于加快性能的在线资源,包括使 Laravel 应用程序更快的 GitHub 指南。
数据库支持
Symfony 2 提供更好的数据库支持。您可以使用数据库数组,包括 NoSQL 和 DynamoDB。Yii 和 Laravel 也支持数据库,但是所支持的数据库比 Symfony 少。每个框架支持的数据库如表1所示。
表1
社区和资源
Die Stärke der Community ist ein wichtiger Indikator für die Langlebigkeit eines Open-Source-Frameworks. Diese drei Frameworks verfügen über ihre eigenen etablierten Communities und Symfony ist relativ ausgereift. Die Community entwickelt sich immer noch weiter, daher ist es schwierig vorherzusagen, wie sie sich in Zukunft entwickeln wird.
Laravel macht den besten Job mit Lernmaterialien und Dokumentation, Symfony und Yii sind auch nicht schlecht:
Laravel-Dokumentation
Symfony-Dokumentation (3.0)
Yii-Dokumentation
Erweiterbarkeit
Frameworks sind Strukturen, die erweitert oder gebündelt werden können, um ihre Funktionalität und ihren Umfang zu verbessern. Laravel ist in dieser Hinsicht der klare Gewinner. Packalyst ist ein Verzeichnis für Laravel-Pakete und bietet über 9000 Pakete. Yii und Symfony bieten etwa 2800 Erweiterungen bzw. 2830 Bundles. Laravel ist in dieser Hinsicht das beste Framework mit der dreifachen Skalierbarkeit der beiden anderen.
Symfony-, Laravel- und Yii-Ähnlichkeiten
Wir haben uns die Unterschiede zwischen den Frameworks angesehen. Schauen wir uns nun ihre Gemeinsamkeiten an:
1 Alle drei Frameworks sind Full-Stack-PHP-Frameworks und bieten Funktionen von der Erstellung von Webanwendungen über das Schreiben von Front-End-Code bis zum Abrufen von Back-End-Daten.
2. Diese Projekte sind alle Open Source, ihr Quellcode ist auf GitHub zu finden, jeder kann ganz einfach seinen eigenen Code beisteuern:
Symfony
Laravel
Yii
3. Diese Frameworks verfügen über eine gute Dokumentation und erhalten große Community-Unterstützung.
4. Sie unterstützen jeweils ORM (Object Relational Mapping). ORMs schreiben sehr gern objektorientierten Code (OO-Code) für Anwendungen.
5. Es ist sicher und zuverlässig, mit ihnen Web 2.0-Anwendungen zu erstellen.
Sie können sich immer noch nicht entscheiden? Vielleicht können Ihnen diese Listen helfen, Ihre Auswahl einzugrenzen:
Symfony:
LTS-Version verfügbar,
hat eine Ladefunktion,
ist derzeit das stabilste Framework,
ist ein komponentenbasiertes Framework, das Folgendes bietet breites Spektrum an Modularen,
Hat eine starke Community und viele Lernressourcen
Yii:
Kommt mit Ajax-Unterstützung
Ideal für die Entwicklung von Echtzeitanwendungen
Hoch skalierbar
Genaue Fehlerbehandlung
Gut in der Erstellung von Restful Web Services
Hat eine starke Community und eine große Anzahl der Lernressourcen
Laravel:
Die beliebtesten Frameworks 2015-2016
Unterstützt Composer für die Paketverwaltung
Gut bei Unit-Tests
Stellt eine große Anzahl von Softwarepaketen bereit Erweitern Sie die Framework-Funktionen
Hat eine starke Community und jede Menge Lernressourcen
Fazit:
Die drei PHP-Frameworks Symfony, Laravel und Yii sind allesamt hervorragende Optionen, um Entwicklern eine Full-Stack-Entwicklungsumgebung bereitzustellen. Ich denke, Laravel ist der größte Gewinner und weiterhin stark.
Symfony und Yii sind jedoch beide hervorragende Frameworks. Symfony ist ausgereifter und verfügt über eine größere, etabliertere Community. Yii ist ein einzigartiges Framework, das die Arbeit robust und sicher erledigt.
Andere Ressourcen
Symfony2 vs Yii2: Welches Entwicklungsframework sollten Sie wählen?
10 PHP-Frameworks für Entwickler
Es ist Laravel 5.1 für die Unternehmensentwicklung
Das obige ist der detaillierte Inhalt vonEinige PHP-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!