Aktuelle Informationen rund um TYPO3

Archiv zur KategoriePHP

FLOW3 Beta released

Das FLOW3-Entwicklerteam rund um Mastermind Robert Lemke verkündete gestern eine lang ersehnte Nachricht für die TYPO3/PHP-Community: die Veröffentlichung einer FLOW3 Beta mit der Version 1.0.0.

Acht lange Monate waren seit dem letzten offiziellen Alpha Release vergangen, doch die Zeit wurde wohl gut genutzt. Knapp 1500 Überarbeitungen hat das 17-köpfigen Entwicklerteam in dieser Zeit umgesetzt. Neben einer stabilen API stehen hauptsächlich die neu entwickelten Features im Mittelpunkt. Dabei wird vor allem die Fähigkeit, Proxy-Klassen aus dem Quelltext zu erstellen, das ORM-System Doctrine 2 sowie die verbesserte Kommandozeile hervorgehoben. Viele der Änderungen wurden aufgrund der zahlreichen Rückmeldungen vieler Entwickler umgesetzt, die das Framework bereits einsetzten.

Mit einer überarbeiteten Doku und einem neuen Tutorial soll die Anzahl an aktiven FLOW3-Instanzen deutlich gesteigert werden. Abwärtskompatibilität sowie ständige Aktualisierung, rücken nun ebenfalls in den Fokus, womit talentierten Entwicklern „das Basteln“ mit FLOW3 auch für größere Projekte schmackhaft gemacht werden soll. Die Funktionalität ist bereits auf einem sehr hohen Stand, doch die Leistungsfähigkeit muss natürlich ebenso noch verbessert wie auch zahlreiche Fehler aus dem Code entfernt werden.

Die Beta 2 wurde auch gleich angekündigt und soll bereits in zwei Wochen vorgestellt werden. Doch die Beta  1 sollte ja auch schon ein bisschen früher das Licht der Welt erblicken.

Downlad der Beta-Version.

Icon für verschiedene Zustände der Extension-Records (z.B. versteckt / hidden)

TYPO3 verwaltet Datenbank-Einträge (s.g. Records) über die Konfiguration im TCA-Array. Es ist möglich, bei diesen ein eigenes Symbol zu setzen. Dieses wird dann in der Listenansicht angezeigt. Welche Datei für das Icon verwendet werden soll, lässt sich wie folgt konfigurieren:

$TCA['ext_key'] = Array (
   'ctrl' => Array (
      ...
      'iconfile' => t3lib_extMgm::extRelPath($_EXTKEY)."res/icon.gif",
      ...
   )
   ...
);

Mit dieser Zeile kann man aber zunächst mal nur ein einziges Icon definieren. Man kennt es aber von TYPO3, im Icon bereits einen Hinweis auf die Eigenschaften des Record-Eintrags zu geben. So erkennt man bereits am Icon, ob der Datensatz versteckt ist, wegen der Start-Stop-Zeit nicht gezeigt wird oder sogar wegen beiden Einstellungen nicht im Frontend zu sehen ist. Anschaulich kann man das bei normalen Seiten im Seitenbaum (und normalen Seiten in der Listenansicht) verfolgen.

Diese Statusicons sind auch bei eigenen Extensions möglich. TYPO3 handhabt das ganz einfach über den Dateinamen. Dabei gelten die folgenden Konventionen für den Dateinamen:

icon__[$flags].gif

Um zu erfahren, wie die Flags aussehen, auf den Mehr-Link klicken.

weiterlesen »

Eine vergessene Funktion: substituteMarkerArrayCached

TYPO3 stellt diverse Funktionen zur Verfügung, die die Erstellung von Extensions deutlich vereinfachen. Dabei gibt es auch einige, die selten genutzt werden, obwohl sie bestimmte Probleme deutlich vereinfachen.

Eine dieser Funktionen ist substituteMarkerArrayCached. Sie dient dem vereinfachten Austausch von Markern, Subparts und sogenannten Wrapped Subparts. Marker lassen sich zugegebenermaßen auch über substituteMarkerArray, Subparts über substituteSubparts austauschen. Auf die Vorteile dieser Funktion werde ich im Nachfolgenden kurz eingehen.

Zunächst vermag sie, wie bereits angedeutet Wrapped Subparts auszutauschen (soweit ich das bisher gesehen habe, ist es überhaupt die einzige). Mit solchen Wrapped Subparts ist es möglich, Elemente im Template in durch PHP zu umrahmen, was sich inbesondere bei Verlinkungen auszahlen kann. Was das bedeutet, sollen folgende Codeschnipsel andeuten:

  1. <!– ###LINK_ITEM### –>Weitere Informationen<!– ###LINK_ITEM### –>

Nun lässt sich mit nachfolgendem Code bequem ein Link um das “Weitere Informationen” setzen:

  1.         $wrappedSubparts[‘###LINK_ITEM###’] = explode(‘|’, $this->pi_linkTP_keepPIvars(‘|’, array(‘function’ => ‘var’), $value));
  2.         $content .= $this->cObj->substituteMarkerArrayCached($template, $markerArray, $subparts, $wrappedSubparts);

Wie gezeigt werden im Gegensatz zu normalen Markern und Subparts nicht einzelne Inhalte, sondern jeweils zwei übergeben, die vor bzw. hinter dem Elemente eingefügt werden. Da substituteMarkerArrayCached nicht allzu verbreitet ist, wurde diese Funktionalität bisher relativ oft über die Kombination von getSubpart und substituteSubpart realisiert. Dies führt nicht zuletzt auch zu deutlich unübersichtlicherem und unlesbarerem Code.

Außerdem hilft die Funktion auch punktuell die Performance der Verarbeitung der Strings zu verbessern. Dies wird über Überprüfung und Caching des übergebenen Template-Code und den Daten-Arrays vor der Verarbeitung gewährleistet. Dies sollte sicher nicht überbewertet werden, kann sich bei konsequenter Anwendung aller Caching-Mechanismen jedoch auch positiv auswirken.

Insgesamt wird mit substituteMarkerArrayCached ein Werkzeug an die Entwicklerhand gegeben, die das Leben durchaus erleichtern kann. Ein genauerer Blick kann sich also durchaus lohnen!

PS: Wir sind durchaus offen für weitere vorstellungswürdige Funktionen, die in TYPO3 versteckt schlummern und auf ihre Nutzung warten.

TYPO3 Bugday: Kernentwickler beheben Fehler

Das TYPO3 Core Team ruft die Community auf, heute am 27.06.08 am TYPO3 Bugday mitzuwirken. Der TYPO3 Bugday wird zum erstem Mal veranstaltet, da immer mehr Leute TYPO3 nutzen und testen und somit auch immer mehr Leute Bugs reporten. Um nun den Bugtracker und den zahlreichen Bugs wieder etwas entgegen zu setzen, ist die Idee entstanden. Ablaufen wird das alles wie folgt.

weiterlesen »

TYPO3 Performance-Verbesserungen durch PHP 5.3: 30%

Der bei Zend angestellte Entwickler Dimitry Stagov hat Benchmarks veröffentlicht, in denen er die Entwicklerversion von PHP 5.3 mit der aktuellen, stabilen Version 5.2 vergleicht. Unter anderem hat er die Geschwindigkeit von TYPO3 gemessen und kommt auf die enorme Performance-Verbesserung von 30%. Ein Wert, den man auch ohne Tools rein subjektiv stark merken sollte – unter anderem im Frontend. Sobald ich etwas Zeit habe, werde ich mal meine eigenen Tests machen und schaun, wie sehr ein Update lohnt. Meine Ergebnisse gibt es natürlich hier :)

Im Übrigen, hier noch die anderen Werte:
Drupal: 20% schneller
Qdig: 2% schneller
Wordpress: 15% schneller
xoops: 10% schneller