© saicle/Shutterstock.com
Kolumne: Alles im Flow

Kolumne: Alles im Flow


Eineinhalb Jahre hat sich das Flow-Core-Team Zeit gelassen, um an dem zweiten Major-Release des Frameworks zu arbeiten. Neben dem neuen Namen hat sich auch auf Featureseite einiges getan und mithilfe des Feedbacks aus der Community flossen zahlreiche Optimierungen in Version 2.0 ein. Bei Erscheinen dieser Ausgabe müsste die finale Version TYPO3 Flow 2.0 bereits veröffentlicht sein – Grund genug, einen Blick auf die letzten Neuerungen zu werfen und einen Ausblick auf die nächsten Versionen zu wagen.

Integration Composer und Session Management

Wie bereits in der ersten Ausgabe dieser Kolumne erwähnt, betrifft eine der grundlegendsten Änderungen das Paketmanagement: TYPO3 Flow selbst, wie auch alle darauf aufbauenden Pakete, sind nun Composer-kompatibel. Sämtliche vom Core-Team unterstützte Pakete haben wir auf packagist.org eingetragen, wodurch die Installation einer frischen Flow-Distribution – ein installierter Composer vorausgesetzt – sehr einfach von statten geht:

composer.phar create-project typo3/flow-base-distribution MyNewFlowProject

Weitere Pakete – ob nun Flow-basiert oder aus einer anderen Bibliothek – lassen sich ebenfalls durch Composer nachinstallieren:

composer.phar require robertlemke/akismet composer.phar require phpunit/phpunit

Sessions werden in Flow 2.0 nicht mehr über die von PHP bereitgestellten Funktionen, sondern über die HTTP-­Foundation, die Teil von Flow ist, umgesetzt. Dies eröffnet neue Möglichkeiten, wenn Sessions in einer verteilten Serverumgebung eingesetzt werden: der Session-Manager behält jederzeit den Überblick über aktive Sessions und kann bei Bedarf dafür verwendet werden, um an Sessions zu gelangen, die nicht mit dem aktuellen HTTP-Request verbunden sind (Listing 1).

Listing 1

$currentSession = $this->sessionManager->getCurrentSession(); $preferredColor = $currentSession->getData('preferred_color'); $someoneElsesSessionId = 'csAIF2EfaB2DwLN6io9xswO3dg5IwFym'; $otherSession = $this->sessionManager->getSession($someoneElsesSessionId); $someData = $otherSession->getData('some_data'); $timestamp = $otherSession->getLastActivityTimestamp(); $otherSession->setData('some_new_data', 'some new data for remote session'); $mySession->addTag('staff'); $staffSessions = $this->sessionManager->getSessionsByTag('staff');

Die Session-Daten werden mithilfe des Cache-Backends gespeichert. Aktuell wird die Unterstützung für die Speicherung im Dateisystem, dem APC Key-Value Store, in Memcache, in PDO-Datenbanken und Redis mitgeliefert.

Ro...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang