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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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?

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
du -hsc *
61M symfony-a-year-ago
16M symfony-today
du -hsc * 61M symfony-a-year-ago 16M symfony-today
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.

Goodies von Mayflower

 

Das klingt nach einem Thema, dass Dich in Deinem Alltag bei euch beschäftigt? Das Dich mit vielen Fragen zurück lässt?

Keine Sorge – Hilfe ist nah! Melde Dich unverbindlich bei uns und wir schauen uns gemeinsam an, ob und wie wir Dich unterstützen können.


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.

Goodies von Mayflower

Keine Sorge – Hilfe ist nah! Melde Dich unverbindlich bei uns und wir schauen uns gemeinsam an, ob und wie wir Dich unterstützen können.

Unsere Data-Webinar-Reihe

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.