1 / 79
Der ultimative
Der ultimative
PHP Framework Vergleich
PHP Framework Vergleich
2023 Edition
2023 Edition
2 / 79
Ralf Eggert
Chef der Travello GmbH (2005+)
PHP und Web Entwickler (1999+)
ZF Fossil (2006+)
Alexa Skill Entwickler (2017+)
Alexa Champion (2018+)
3 / 79
Motivation
4 / 79
PHP Frameworks wie Sand am Meer
5 / 79
Frage 1:
Welche PHP Frameworks
setzt ihr aktuell in euren
Projekten ein?
6 / 79
Frage 2:
Welche Erwartung habt ihr
an diesen Vortrag?
7 / 79
And the
And the
winner is…
winner is…
8 / 79
https://bit.ly/3ge4rIj
Damals…
9 / 79
Probleme bei Framework Vergleichen
»Optimierte«
Performance
Vergleiche
Veraltet
Äpfel mit Birnen
vergleichen
Abhaken einer
Feature Matrix
Nicht
objektiv
10 / 79
Optimaler Framework Vergleich
»Fairer«
Performance
Vergleich
Aktuell
Äpfel mit Äpfeln
vergleichen
Umfassend
Objektiv
11 / 79
Disclaimer
Ich mag keine ORM,
Template Engines und
Annotationen.
Aber ich versuche, mich
zusammen zu reißen.
;-)
12 / 79
Vorgehensweise
13 / 79
1 Website, 3 Frameworks
14 / 79
Laminas Mezzio 3
https://laminas.katzenwelt.rocks/
Umgesetzt vom Senior
Entwickler
Mezzio Skeleton
Application per Composer
installiert
15 / 79
Symfony 6
https://symfony.katzenwelt.rocks/
Umgesetzt vom Junior
Entwickler
Projekt mit
Symfony CLI angelegt
16 / 79
Laravel 9
https://laravel.katzenwelt.rocks/
Umgesetzt vom Junior
Entwickler
Installiert über Composer
mit Skeleton
17 / 79
Gemeinsamkeiten
Frontend
mit Bootstrap 4.5
Datenbank
mit MySQL 8
PHP 8.1
Selber
Cloud Server
18 / 79
Unterschiede
Doctrine ORM
Twig Templates
Eigener Model Layer
PHP Templates
Eloquent ORM
Blade Templates
19 / 79
Bewertungskategorien
Popularität
Performance & Gedöns
Benutzerfreundlichkeit
ChatGPT
Code
20 / 79
Popularität
21 / 79
Traue keiner
Statistik, die du
nicht selber
gefälscht hast!
22 / 79
Welches
Framework ist
weltweit am
beliebtesten?
23 / 79
Weltweit
24 / 79
Weltweit
(ohne
Laravel)
25 / 79
Welches
Framework ist in
Deutschland am
beliebtesten?
26 / 79
Nur in DE
27 / 79
Nur in DE
(ohne
Laravel &
Symfony)
28 / 79
Popularität
Weltweit:
1. Laravel
2. Laminas
3. Symfony
Deutschland:
1. Laravel
2. Symfony
3. Laminas / Cakephp
29 / 79
Aufpassen
Die Messung der
Popularität anhand eines
Parameters muss nicht die
Realität widerspiegeln!
30 / 79
31 / 79
Benutzerfreundlichkeit
32 / 79
Pasquale
Was sagt der Junior Entwickler?
Bietet mir
am wenigsten
Unterstützung.
Dokumentation
wirkt etwas
unübersichtlich.
Skeleton Application
ist nicht sehr intuitiv.
Keine PhpStorm
Extension für
PHP Templates.
33 / 79
Was sagt der Senior Entwickler?
Ralf
Sehr flexibel bei
Routing, DI, Templates
und Datenbank
Dokumentation hat
sich etwas gebessert.
Middleware Ansatz
zukunftsfähiger als
MVC Ansatz.
Framework enthält
weniger Magie als
Laminas MVC.
Hohe Lernkurve.
Alles muss man
selber machen.
34 / 79
Routing
FastRoute LaminasRouter
DI
Pimple
LaminasServiceManager
Symfony DI
Container
PHP DI
Templating
Plates
LaminasView
Twig
Datenbank
Doctrine
LaminasDb
Individueller
Model Layer
Eloquent
Flexibilität
35 / 79
Entities
Hydratoren
Input Filter
Formulare
»Alles muss man selber machen«
Repositories
Storages
Nur rudimentäre
Code Generierung
36 / 79
Pasquale
Was sagt der Junior Entwickler?
Laravel macht es
deutlich besser als
Laminas Mezzio.
Die Dokumentation
ist wesentlich besser.
Laracasts! (tw. €)
Projekt wirkt
strukturierter, hat aber
einige Dateien mit
unklarem Nutzen.
Blade kommt
Templating mit PHP
sehr nahe. Es gibt eine
PhpStorm Extension!
37 / 79
Was sagt der Senior Entwickler?
Ralf
Neue Projekte lassen sich
sehr schnell aufsetzen.
Projektstruktur für
mich nicht komplett
nachvollziehbar.
Artisan ist ein sehr
mächtiges Tool, das kaum
Wünsche offen lässt!
Laravel ohne Blade und
Eloquent ist möglich,
aber wohl sinnlos.
Sehr Einsteiger
freundlich.
38 / 79
Pasquale
Was sagt der Junior Entwickler?
Symfony ist für
mich der klare Sieger.
Dokumentation
sehr gut geschrieben.
Symfonycasts! (tw. €)
Projekt gut strukturiert
und bietet notwendige
Beispiel-Dateien.
Twig ist sehr leicht zu
erlernen und erweiterbar.
PhpStorm Extension!
Sehr überzeugend ist die
Symfony CLI sowie die
Symfony Console im Projekt.
39 / 79
Was sagt der Senior Entwickler?
Ralf
Sehr gute Unterstützung
für die Entwickler
Community!
Symfony CLI und
Symfony Console sind sehr
mächtige Tools!
Symfony ohne Twig und
Doctrine ist möglich, aber
wohl sinnlos.
Für PHP Einsteiger
und Profis.
Neue Projekte lassen sich
sehr schnell aufsetzen.
40 / 79
Benutzer-
freundlichkeit
1. Symfony
2. Laravel
3. Laminas
41 / 79
Aufpassen
Das war nur die Meinung
von zwei einzelnen
Entwicklern.
Es gibt bestimmt viele
andere Sichtweisen.
42 / 79
Code
43 / 79
object(FactEntityFactEntity)
private ?int 'id' => int 1
private ?string 'status' => string 'approved'
private ?string 'title' => string 'Seit wann gibt es Katzen und ...'
private ?string 'text' => string 'Die kuschelige Hauskatze hat ...'
Entitäten in Laminas Mezzio
handgeklöppelt von Ralf
44 / 79
object(AppEntityFacts)
private ?int 'id' => int 1
private ?string 'status' => string 'approved'
private ?string 'title' => string 'Seit wann gibt es Katzen und ...'
private ?string 'text' => string 'Die kuschelige Hauskatze hat ...'
Entitäten in Symfony
mit Doctrine
45 / 79
object(AppModelsFact)
protected 'connection' => string 'mysql' (length=5)
protected 'table' => string 'facts' (length=5)
protected 'primaryKey' => string 'id' (length=2)
protected 'keyType' => string 'int' (length=3)
public 'incrementing' => boolean true
protected 'attributes' =>
array (size=4)
'id' => int 1
'status' => string 'approved'
'title' => string 'Seit wann gibt es Katzen und ...'
'text' => string 'Die kuschelige Hauskatze hat ...'
[...]
Active Record Models in Laravel
mit Eloquent (30 Eigenschaften, davon 5 public! WTF!)
46 / 79
<?php
use FactEntityFactEntity;
/** @var FactEntity $fact */
$fact = $this->fact;
$this->headTitle('Katzen Fakt ' . $fact->getId());
?>
<div class="jumbotron">
<h1>Fakt <?= $fact->getId() ?></h1>
<h2><?= $fact->getTitle() ?></h2>
<p>
<?= $fact->getText() ?>
</p>
</div>
<a href="<?= $this->url('fact-list') ?>" class="btn btn-primary">Zurück</a>
PHP Templates mit Laminas Mezzio
47 / 79
{% extends 'base.html.twig' %}
{% block title %}
Katzen Fakt {{ fact.id }} - {{ parent() }}
{% endblock %}
{% block body %}
<div class="jumbotron">
<h1>Fakt {{ fact.id }}</h1>
<h2>{{ fact.title }}</h2>
<p>
{{ fact.text }}
</p>
</div>
<a href="{{ path('app_katzen-fakten')}}" class="btn btn-primary">Zurück</a>
{% endblock %}
Twig Templates mit Symfony
48 / 79
@extends('default')
@section('title','Katzen Fakt '.$fact->id.' -')
@section('content')
<div class="jumbotron">
<h1>Fakt {{ $fact->id }}</h1>
<h2>{{ $fact->title }}</h2>
<p>
{{ $fact->text }}
</p>
</div>
<a href="{{ url('katzen-fakten') }}" class="btn btn-primary">Zurück</a>
@endsection
Blade Templates mit Laravel
49 / 79
public function handle(ServerRequestInterface $request): ResponseInterface
{
$id = (int)$request->getAttribute('id');
$data = [
'fact' => $this->factRepository->getFactById($id),
];
return new HtmlResponse(
$this->template->render('fact::fact-show', $data)
);
}
Handler mit Laminas Mezzio
50 / 79
#[Route('/katzen-fakt/{id}', name: 'app_katzen-fakt', methods: ['GET'])]
public function renderFact(ManagerRegistry $doctrine, string $id = null)
{
$catFact = $doctrine→getRepository(Facts::class)→find($id);
return $this->render('fact/singlefact.html.twig', [
'fact' => $catFact
]);
}
Controller Action mit Symfony
51 / 79
public function renderFact(int $id)
{
$fact = Fact::query()->find($id);
return view('fact.singlefact', ['fact' => $fact]);
}
Controller Action mit Laravel
52 / 79
Code
1. Symfony
1. Laminas
2. Laravel
53 / 79
Aufpassen
Wir haben nur 3 Bausteine
verglichen.
Eine Anwendung besteht
aber aus viel mehr
Bausteinen!
54 / 79
Performance und Gedöns
55 / 79
Traue keinem
Benchmark, den
du nicht selber
gefälscht hast!
56 / 79
Simple Methodik
define('SYMFONY_START', microtime(true));
[…]
echo '<em>Run time: '
. round((microtime(true) - SYMFONY_START)*1000, 2)
. '</em>';
57 / 79
Benchmark I
Aufruf 1 Aufruf 2 Aufruf 3 Aufruf 4 Aufruf 5 Aufruf 6 Aufruf 7 Aufruf 8 Aufruf 9 Aufruf 10
0,00
50,00
100,00
150,00
200,00
250,00
300,00
Laminas
Mezzio
Symfony
Laravel
58 / 79
Benchmark II
Aufruf 1 Aufruf 2 Aufruf 3 Aufruf 4 Aufruf 5 Aufruf 6 Aufruf 7 Aufruf 8 Aufruf 9 Aufruf 10
0,00
2,00
4,00
6,00
8,00
10,00
12,00
14,00
16,00
18,00
20,00
Laminas
Mezzio
Symfony
Laravel
59 / 79
Benchmark III
60 / 79
Zahlen Gedöns
Größe Application 409 KB 358 KB 252 KB
Größe Vendor 26 MB 35 MB 17 MB
Composer Pakete 60 69 40
61 / 79
Performance
1. Laminas Mezzio
2. Laravel
3. Symfony
62 / 79
Aufpassen
Der Vergleich war aus
mindestens 2 Gründen
nicht ganz fair!
Welche?
63 / 79
ChatGPT
64 / 79
Briefing
Du bist Berater für PHP
Frameworks. Du kennst nur die
PHP Frameworks Symfony,
Laravel und Laminas.
Ich werde dir nun einige Fragen
stellen, die du jeweils in
maximal 60 Wörtern oder 400
Zeichen beantworten musst.
65 / 79
Frage 1
Welches Framework würdest du
für eine kleine und einfache
Kampagnen Website
verwenden, die maximal 3
Monate online sein wird?
66 / 79
Frage 1
Welches Framework würdest du
für eine kleine und einfache
Kampagnen Website
verwenden, die maximal 3
Monate online sein wird?
Ich würde Laravel empfehlen.
Es ist benutzerfreundlich, hat
eine kurze Lernkurve und bietet
gute Unterstützung für schnelle
Entwicklung und Bereitstellung.
Die breite Palette von
Hilfsbibliotheken und -tools
macht es ideal für kleine
Projekte mit kurzer
Lebensdauer.
67 / 79
Frage 2
Welches Framework würdest du
für eine komplexere Anwendung
empfehlen mit großem
Funktionsumfang, die
voraussichtlich 2 bis 3 Jahre
online sein wird?
68 / 79
Frage 2
Welches Framework würdest du
für eine komplexere Anwendung
empfehlen mit großem
Funktionsumfang, die
voraussichtlich 2 bis 3 Jahre
online sein wird?
Für eine komplexere
Anwendung mit einem großen
Funktionsumfang würde ich
Symfony empfehlen.
Es ist robust, skalierbar und
verfügt über eine Vielzahl von
Bundles, die die Erweiterung der
Funktionalität erleichtern.
Darüber hinaus hat es eine
starke Community und einen
langfristigen Support.
69 / 79
Frage 3
Welches Framework würdest du
für eine Enterprise Anwendung
empfehlen mit hoch komplexen
Funktionsumfang, das über eine
Lebensdauer von mindestens 10
Jahren ausgerichtet ist?
70 / 79
Frage 3
Welches Framework würdest du
für eine Enterprise Anwendung
empfehlen mit hoch komplexen
Funktionsumfang, das über eine
Lebensdauer von mindestens 10
Jahren ausgerichtet ist?
Für eine langlebige, hochkomplexe
Enterprise-Anwendung würde ich
das Laminas Framework empfehlen.
Es ist das Nachfolgeprojekt von
Zend Framework, das für seine
Stabilität und Skalierbarkeit
bekannt ist.
Laminas ist modular aufgebaut, was
eine hohe Anpassbarkeit
ermöglicht. Zudem hat es
umfangreiche Enterprise-Features
und guten langfristigen Support.
71 / 79
ChatGPT
1. Laravel
1. Symfony
1. Laminas
72 / 79
Aufpassen
Antworten von KIs wie
ChatGPT sind immer mit
Vorsicht zu genießen!
73 / 79
And the winner is...
74 / 79
Verdienter
Sieg
;-)
75 / 79
Kein klarer
Sieger
76 / 79
Empfehlung
Für Einsteiger bis
Fortgeschrittene
Für kleinere bis mittlere
Anwendungen
77 / 79
Empfehlung
Für Einsteiger bis Profis
Für kleine bis komplexe
Anwendungen
78 / 79
Empfehlung
Für Fortgeschrittene bis
Profis
Für mittlere bis sehr
komplexe Anwendungen
79 / 79
Fragen?
ralf@travello.de
www.travello.de

Der ultimative PHP Framework Vergleich 2023 Edition

  • 1.
    1 / 79 Derultimative Der ultimative PHP Framework Vergleich PHP Framework Vergleich 2023 Edition 2023 Edition
  • 2.
    2 / 79 RalfEggert Chef der Travello GmbH (2005+) PHP und Web Entwickler (1999+) ZF Fossil (2006+) Alexa Skill Entwickler (2017+) Alexa Champion (2018+)
  • 3.
  • 4.
    4 / 79 PHPFrameworks wie Sand am Meer
  • 5.
    5 / 79 Frage1: Welche PHP Frameworks setzt ihr aktuell in euren Projekten ein?
  • 6.
    6 / 79 Frage2: Welche Erwartung habt ihr an diesen Vortrag?
  • 7.
    7 / 79 Andthe And the winner is… winner is…
  • 8.
  • 9.
    9 / 79 Problemebei Framework Vergleichen »Optimierte« Performance Vergleiche Veraltet Äpfel mit Birnen vergleichen Abhaken einer Feature Matrix Nicht objektiv
  • 10.
    10 / 79 OptimalerFramework Vergleich »Fairer« Performance Vergleich Aktuell Äpfel mit Äpfeln vergleichen Umfassend Objektiv
  • 11.
    11 / 79 Disclaimer Ichmag keine ORM, Template Engines und Annotationen. Aber ich versuche, mich zusammen zu reißen. ;-)
  • 12.
  • 13.
    13 / 79 1Website, 3 Frameworks
  • 14.
    14 / 79 LaminasMezzio 3 https://laminas.katzenwelt.rocks/ Umgesetzt vom Senior Entwickler Mezzio Skeleton Application per Composer installiert
  • 15.
    15 / 79 Symfony6 https://symfony.katzenwelt.rocks/ Umgesetzt vom Junior Entwickler Projekt mit Symfony CLI angelegt
  • 16.
    16 / 79 Laravel9 https://laravel.katzenwelt.rocks/ Umgesetzt vom Junior Entwickler Installiert über Composer mit Skeleton
  • 17.
    17 / 79 Gemeinsamkeiten Frontend mitBootstrap 4.5 Datenbank mit MySQL 8 PHP 8.1 Selber Cloud Server
  • 18.
    18 / 79 Unterschiede DoctrineORM Twig Templates Eigener Model Layer PHP Templates Eloquent ORM Blade Templates
  • 19.
    19 / 79 Bewertungskategorien Popularität Performance& Gedöns Benutzerfreundlichkeit ChatGPT Code
  • 20.
  • 21.
    21 / 79 Trauekeiner Statistik, die du nicht selber gefälscht hast!
  • 22.
    22 / 79 Welches Frameworkist weltweit am beliebtesten?
  • 23.
  • 24.
  • 25.
    25 / 79 Welches Frameworkist in Deutschland am beliebtesten?
  • 26.
  • 27.
    27 / 79 Nurin DE (ohne Laravel & Symfony)
  • 28.
    28 / 79 Popularität Weltweit: 1.Laravel 2. Laminas 3. Symfony Deutschland: 1. Laravel 2. Symfony 3. Laminas / Cakephp
  • 29.
    29 / 79 Aufpassen DieMessung der Popularität anhand eines Parameters muss nicht die Realität widerspiegeln!
  • 30.
  • 31.
  • 32.
    32 / 79 Pasquale Wassagt der Junior Entwickler? Bietet mir am wenigsten Unterstützung. Dokumentation wirkt etwas unübersichtlich. Skeleton Application ist nicht sehr intuitiv. Keine PhpStorm Extension für PHP Templates.
  • 33.
    33 / 79 Wassagt der Senior Entwickler? Ralf Sehr flexibel bei Routing, DI, Templates und Datenbank Dokumentation hat sich etwas gebessert. Middleware Ansatz zukunftsfähiger als MVC Ansatz. Framework enthält weniger Magie als Laminas MVC. Hohe Lernkurve. Alles muss man selber machen.
  • 34.
    34 / 79 Routing FastRouteLaminasRouter DI Pimple LaminasServiceManager Symfony DI Container PHP DI Templating Plates LaminasView Twig Datenbank Doctrine LaminasDb Individueller Model Layer Eloquent Flexibilität
  • 35.
    35 / 79 Entities Hydratoren InputFilter Formulare »Alles muss man selber machen« Repositories Storages Nur rudimentäre Code Generierung
  • 36.
    36 / 79 Pasquale Wassagt der Junior Entwickler? Laravel macht es deutlich besser als Laminas Mezzio. Die Dokumentation ist wesentlich besser. Laracasts! (tw. €) Projekt wirkt strukturierter, hat aber einige Dateien mit unklarem Nutzen. Blade kommt Templating mit PHP sehr nahe. Es gibt eine PhpStorm Extension!
  • 37.
    37 / 79 Wassagt der Senior Entwickler? Ralf Neue Projekte lassen sich sehr schnell aufsetzen. Projektstruktur für mich nicht komplett nachvollziehbar. Artisan ist ein sehr mächtiges Tool, das kaum Wünsche offen lässt! Laravel ohne Blade und Eloquent ist möglich, aber wohl sinnlos. Sehr Einsteiger freundlich.
  • 38.
    38 / 79 Pasquale Wassagt der Junior Entwickler? Symfony ist für mich der klare Sieger. Dokumentation sehr gut geschrieben. Symfonycasts! (tw. €) Projekt gut strukturiert und bietet notwendige Beispiel-Dateien. Twig ist sehr leicht zu erlernen und erweiterbar. PhpStorm Extension! Sehr überzeugend ist die Symfony CLI sowie die Symfony Console im Projekt.
  • 39.
    39 / 79 Wassagt der Senior Entwickler? Ralf Sehr gute Unterstützung für die Entwickler Community! Symfony CLI und Symfony Console sind sehr mächtige Tools! Symfony ohne Twig und Doctrine ist möglich, aber wohl sinnlos. Für PHP Einsteiger und Profis. Neue Projekte lassen sich sehr schnell aufsetzen.
  • 40.
    40 / 79 Benutzer- freundlichkeit 1.Symfony 2. Laravel 3. Laminas
  • 41.
    41 / 79 Aufpassen Daswar nur die Meinung von zwei einzelnen Entwicklern. Es gibt bestimmt viele andere Sichtweisen.
  • 42.
  • 43.
    43 / 79 object(FactEntityFactEntity) private?int 'id' => int 1 private ?string 'status' => string 'approved' private ?string 'title' => string 'Seit wann gibt es Katzen und ...' private ?string 'text' => string 'Die kuschelige Hauskatze hat ...' Entitäten in Laminas Mezzio handgeklöppelt von Ralf
  • 44.
    44 / 79 object(AppEntityFacts) private?int 'id' => int 1 private ?string 'status' => string 'approved' private ?string 'title' => string 'Seit wann gibt es Katzen und ...' private ?string 'text' => string 'Die kuschelige Hauskatze hat ...' Entitäten in Symfony mit Doctrine
  • 45.
    45 / 79 object(AppModelsFact) protected'connection' => string 'mysql' (length=5) protected 'table' => string 'facts' (length=5) protected 'primaryKey' => string 'id' (length=2) protected 'keyType' => string 'int' (length=3) public 'incrementing' => boolean true protected 'attributes' => array (size=4) 'id' => int 1 'status' => string 'approved' 'title' => string 'Seit wann gibt es Katzen und ...' 'text' => string 'Die kuschelige Hauskatze hat ...' [...] Active Record Models in Laravel mit Eloquent (30 Eigenschaften, davon 5 public! WTF!)
  • 46.
    46 / 79 <?php useFactEntityFactEntity; /** @var FactEntity $fact */ $fact = $this->fact; $this->headTitle('Katzen Fakt ' . $fact->getId()); ?> <div class="jumbotron"> <h1>Fakt <?= $fact->getId() ?></h1> <h2><?= $fact->getTitle() ?></h2> <p> <?= $fact->getText() ?> </p> </div> <a href="<?= $this->url('fact-list') ?>" class="btn btn-primary">Zurück</a> PHP Templates mit Laminas Mezzio
  • 47.
    47 / 79 {%extends 'base.html.twig' %} {% block title %} Katzen Fakt {{ fact.id }} - {{ parent() }} {% endblock %} {% block body %} <div class="jumbotron"> <h1>Fakt {{ fact.id }}</h1> <h2>{{ fact.title }}</h2> <p> {{ fact.text }} </p> </div> <a href="{{ path('app_katzen-fakten')}}" class="btn btn-primary">Zurück</a> {% endblock %} Twig Templates mit Symfony
  • 48.
    48 / 79 @extends('default') @section('title','KatzenFakt '.$fact->id.' -') @section('content') <div class="jumbotron"> <h1>Fakt {{ $fact->id }}</h1> <h2>{{ $fact->title }}</h2> <p> {{ $fact->text }} </p> </div> <a href="{{ url('katzen-fakten') }}" class="btn btn-primary">Zurück</a> @endsection Blade Templates mit Laravel
  • 49.
    49 / 79 publicfunction handle(ServerRequestInterface $request): ResponseInterface { $id = (int)$request->getAttribute('id'); $data = [ 'fact' => $this->factRepository->getFactById($id), ]; return new HtmlResponse( $this->template->render('fact::fact-show', $data) ); } Handler mit Laminas Mezzio
  • 50.
    50 / 79 #[Route('/katzen-fakt/{id}',name: 'app_katzen-fakt', methods: ['GET'])] public function renderFact(ManagerRegistry $doctrine, string $id = null) { $catFact = $doctrine→getRepository(Facts::class)→find($id); return $this->render('fact/singlefact.html.twig', [ 'fact' => $catFact ]); } Controller Action mit Symfony
  • 51.
    51 / 79 publicfunction renderFact(int $id) { $fact = Fact::query()->find($id); return view('fact.singlefact', ['fact' => $fact]); } Controller Action mit Laravel
  • 52.
    52 / 79 Code 1.Symfony 1. Laminas 2. Laravel
  • 53.
    53 / 79 Aufpassen Wirhaben nur 3 Bausteine verglichen. Eine Anwendung besteht aber aus viel mehr Bausteinen!
  • 54.
  • 55.
    55 / 79 Trauekeinem Benchmark, den du nicht selber gefälscht hast!
  • 56.
    56 / 79 SimpleMethodik define('SYMFONY_START', microtime(true)); […] echo '<em>Run time: ' . round((microtime(true) - SYMFONY_START)*1000, 2) . '</em>';
  • 57.
    57 / 79 BenchmarkI Aufruf 1 Aufruf 2 Aufruf 3 Aufruf 4 Aufruf 5 Aufruf 6 Aufruf 7 Aufruf 8 Aufruf 9 Aufruf 10 0,00 50,00 100,00 150,00 200,00 250,00 300,00 Laminas Mezzio Symfony Laravel
  • 58.
    58 / 79 BenchmarkII Aufruf 1 Aufruf 2 Aufruf 3 Aufruf 4 Aufruf 5 Aufruf 6 Aufruf 7 Aufruf 8 Aufruf 9 Aufruf 10 0,00 2,00 4,00 6,00 8,00 10,00 12,00 14,00 16,00 18,00 20,00 Laminas Mezzio Symfony Laravel
  • 59.
  • 60.
    60 / 79 ZahlenGedöns Größe Application 409 KB 358 KB 252 KB Größe Vendor 26 MB 35 MB 17 MB Composer Pakete 60 69 40
  • 61.
    61 / 79 Performance 1.Laminas Mezzio 2. Laravel 3. Symfony
  • 62.
    62 / 79 Aufpassen DerVergleich war aus mindestens 2 Gründen nicht ganz fair! Welche?
  • 63.
  • 64.
    64 / 79 Briefing Dubist Berater für PHP Frameworks. Du kennst nur die PHP Frameworks Symfony, Laravel und Laminas. Ich werde dir nun einige Fragen stellen, die du jeweils in maximal 60 Wörtern oder 400 Zeichen beantworten musst.
  • 65.
    65 / 79 Frage1 Welches Framework würdest du für eine kleine und einfache Kampagnen Website verwenden, die maximal 3 Monate online sein wird?
  • 66.
    66 / 79 Frage1 Welches Framework würdest du für eine kleine und einfache Kampagnen Website verwenden, die maximal 3 Monate online sein wird? Ich würde Laravel empfehlen. Es ist benutzerfreundlich, hat eine kurze Lernkurve und bietet gute Unterstützung für schnelle Entwicklung und Bereitstellung. Die breite Palette von Hilfsbibliotheken und -tools macht es ideal für kleine Projekte mit kurzer Lebensdauer.
  • 67.
    67 / 79 Frage2 Welches Framework würdest du für eine komplexere Anwendung empfehlen mit großem Funktionsumfang, die voraussichtlich 2 bis 3 Jahre online sein wird?
  • 68.
    68 / 79 Frage2 Welches Framework würdest du für eine komplexere Anwendung empfehlen mit großem Funktionsumfang, die voraussichtlich 2 bis 3 Jahre online sein wird? Für eine komplexere Anwendung mit einem großen Funktionsumfang würde ich Symfony empfehlen. Es ist robust, skalierbar und verfügt über eine Vielzahl von Bundles, die die Erweiterung der Funktionalität erleichtern. Darüber hinaus hat es eine starke Community und einen langfristigen Support.
  • 69.
    69 / 79 Frage3 Welches Framework würdest du für eine Enterprise Anwendung empfehlen mit hoch komplexen Funktionsumfang, das über eine Lebensdauer von mindestens 10 Jahren ausgerichtet ist?
  • 70.
    70 / 79 Frage3 Welches Framework würdest du für eine Enterprise Anwendung empfehlen mit hoch komplexen Funktionsumfang, das über eine Lebensdauer von mindestens 10 Jahren ausgerichtet ist? Für eine langlebige, hochkomplexe Enterprise-Anwendung würde ich das Laminas Framework empfehlen. Es ist das Nachfolgeprojekt von Zend Framework, das für seine Stabilität und Skalierbarkeit bekannt ist. Laminas ist modular aufgebaut, was eine hohe Anpassbarkeit ermöglicht. Zudem hat es umfangreiche Enterprise-Features und guten langfristigen Support.
  • 71.
    71 / 79 ChatGPT 1.Laravel 1. Symfony 1. Laminas
  • 72.
    72 / 79 Aufpassen Antwortenvon KIs wie ChatGPT sind immer mit Vorsicht zu genießen!
  • 73.
    73 / 79 Andthe winner is...
  • 74.
  • 75.
    75 / 79 Keinklarer Sieger
  • 76.
    76 / 79 Empfehlung FürEinsteiger bis Fortgeschrittene Für kleinere bis mittlere Anwendungen
  • 77.
    77 / 79 Empfehlung FürEinsteiger bis Profis Für kleine bis komplexe Anwendungen
  • 78.
    78 / 79 Empfehlung FürFortgeschrittene bis Profis Für mittlere bis sehr komplexe Anwendungen
  • 79.