Symfony 3 vs. Symfony 4

Symfony 3 vs. 4: Früher war alles besser … Wirklich?

Avatar von Maximilian Berghoff

Ich bin inzwischen in einem Alter, in dem ich – ähnlich wie meine Eltern früher – kopfschüttelnd die Kids von heute beobachte. Emojis, Sprachnachrichten über einen Textmessenger, … Früher war das doch nicht so, oder? Früher war alles besser!

Hilfe – ist es wirklich schon so weit? Und wie ist das dann mit dem Job? Gilt das auch für die Entwicklung von Software?

Symfony 3 vs. Symfony 4

Schauen wir dazu einfach nur ein Jahr zurück. Habe ich damals eine Symfony-Applikation aufgesetzt, habe ich das gemacht:

sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
sudo chmod a+x /usr/local/bin/symfony
symfony new symfony-a-year-ago 3.3

Was dabei herauskam war eine kleine Symfony-Skeleton-App, mit der ich nun die Entwicklung meiner Applikation starten konnte.

Auf den ersten Blick

Wie sieht es eigentlich mit dem belegten Speicherplatz aus?

du -hsc *
61M symfony-a-year-ago
16M symfony-today

Nanu, was ist denn hier passiert? Neben meiner App hat mir mein heutiges Ich eine weitere Symfony-App angelegt, die beinahe nur ein Viertel so groß ist. Beide Methoden der Installation – heute macht man das ja mit Symfony Flex – geben mir die Möglichkeit, die App im Browser zu sehen. Beide sehen identisch aus, doch die eine basiert auf Symfony 3.3, die andere auf Symfony 4.0. Was ist hier passiert?

An die Arbeit

Ich ignoriere den Unterschied jetzt einfach mal und beginne mit dem Arbeiten.

get('database_connection');
        $users = $connection->fetchAll('SELCT * from users');
        // replace this example code with whatever you need
        return $this->render('default/index.html.twig', [
            'users' => $users,
        ]);
    }
}

Das war ja einfach. Schnell die Liste aller User in mein Template gereicht, wo ich sie dann anzeigen lassen kann. Mein heutiges Ich hinterlässt mir jedoch folgenden Code:


 */
class DefaultController extends Controller
{
    /**
     * @var UserRepository
     */
    private $userRepository;

    public function __construct(UserRepository $userRepository)
    {
        $this->userRepository = $userRepository;
    }

    public function index()
    {
        return $this->render('default/index.html.twig', [
            'users' => $this->userRepository->getAllUsers(),
        ]);
    }
}

Okay, die Interaktion mit der Datenbank hätte auch ich in einen anderen Service auslagern können, doch wie kommt dieser Service in meinen Controller? Ich sehe keine Service-Definition in der Konfiguration für den Controller. Es funktioniert und sieht auf dem ersten Blick auch viel sauberer aus.

Und warte … Wo ist denn das Bundle? Weder im Namespace noch im Ordner /src/ kann ich ein Bundle finden. Das ist seltsam, Symfony ist doch das Framework der Bundles.

Alt gegen neu

Früher war also alles besser. Aber ist das wirklich so? Irgendwie sieht der neue Code besser aus und irgendwie ist er auch deutlich schneller. Damit haben wir uns beschäftigt – und noch deutlich mehr Unterschiede gefunden.

Für alle, die sich dafür interessieren was sich verändert hat, findet während der Würzburger Web Week ein Workshop dazu statt. Mein heutiges Ich und Andreas Haberberger zeigen, wie man aktuell mit Symfony 4.0 und Flex eine moderne App aufsetzt und dabei auch noch jede Menge Zeit spart. Vielleicht sehen wir uns ja dort. Die Koordinaten sind:

Wann: Montag 05.03.2018
Wo: Mayflower Würzburg, Gneisenaustraße 10
Uhrzeit: 08:30-16:30
Was muss ich mitbringen: Zeit, deinen Laptop und einen laufenden Composer.

Die kostenlose Anmeldung findet ihr auf Eventbrite.

Avatar von Maximilian Berghoff

Kommentare

2 Antworten zu „Symfony 3 vs. 4: Früher war alles besser … Wirklich?“

  1. Lesetipp: Symfony 3 vs. 4: Früher war alles besser … Wirklich? https://t.co/TMJs1ZqhGO https://t.co/U3onGdB5Eh

  2. @settermjd @nicolasgrekas @symfony you should follow me on twitter (here *g*) or my/our blog posts on… https://t.co/89OkpxBrMl

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Für das Handling unseres Newsletters nutzen wir den Dienst HubSpot. Mehr Informationen, insbesondere auch zu Deinem Widerrufsrecht, kannst Du jederzeit unserer Datenschutzerklärung entnehmen.