Sunday, May 31, 2015

Wie kann ich TYPO3 unter Windows mit cygwin nutzen?

(getestet mit TYPO3 6.2.12)

Grobgesagt muss man Cygwin mit apache, PHP und MySql-Server installieren, und - beim aktuellen Entwicklungsstand von TYPO3 - ein paar kl. Anpassungen im TYPO3-Core vornehmen. (Es existieren diverse Bugreports bzgl. TYPO3-Cygwin-Support, siehe unten "Quellen".)

Zur Installation von Cygwin mit apache, PHP und MySql-Server findet sich hier eine ziemlich vollstaendige Anleitung:

http://umusebo.com/installing-and-configuring-apache-php-mysql-on-cygwin/


Anpassungen im TYPO3-Core:

1.) Mit folgender Aenderung erkennt TYPO3 das Cygwin-System:

in /typo3_src/typo3/sysext/core/Classes/Core/SystemEnvironmentBuilder.php

/**
* Determine the operating system TYPO3 is running on.
*
* @return string Either 'WIN' if running on Windows, else empty string
*/
static protected function getTypo3Os() {
    $typoOs = '';
       //if (!stristr(PHP_OS, 'darwin') && stristr(PHP_OS, 'win')) {
       if (!stristr(PHP_OS, 'darwin') && !stristr(PHP_OS, 'cygwin') && stristr(PHP_OS, 'win')) {
          $typoOs = 'WIN';
       }
   return $typoOs;
}




2.) Da sich die PHP-Funktion uniqid() unter Windows anders verhaelt als auf anderen Plattformen - ein Punkt wird in die generierte ID eingefuegt - muss eine kl. Anpassung bzgl. Cache-Identifiers vorgenommen werden:

in /typo3_src/typo3/sysext/core/Classes/Cache/Frontend/FrontendInterface.php

//const PATTERN_ENTRYIDENTIFIER = '/^[a-zA-Z0-9_%\\-&]{1,250}$/';
const PATTERN_ENTRYIDENTIFIER = '/^[a-zA-Z0-9_%\\-&\.]{1,250}$/';




Quellen:
http://umusebo.com/installing-and-configuring-apache-php-mysql-on-cygwin/

https://forge.typo3.org/issues/65744
https://forge.typo3.org/issues/14523
http://php.net/uniqid

(Frage: wie startet man mysqld automatisch als Service?)

Wie kann ich die Extension Quixplorer mit TYPO3 6.2 nutzen?

In der aktuellen Version 1.7.2 laeuft der Quixplorer nicht unter TYPO3 6.2, sondern zeigt eine Fehlermeldung:

Die Extension laesst sich aber leicht patchen:

in t3quixplorer/mod1/index.php
die zwei require()-Zeilen auskommentieren:

//require ($BACK_PATH.'template.php');
$LANG->includeLLFile('EXT:t3quixplorer/mod1/locallang.xml');
//require_once (PATH_t3lib.'class.t3lib_scbase.php');




Es gibt auch eine angepasste ExtBase-Version des Quixplorers, diese ist aber zum jetzigen Zeitpunkt noch nicht lauffaehig:
https://github.com/madsbrunn/t3quixplorer/tree/extbaseVersion



Quellen:

http://www.typo3forum.net/forum/typo3-extensions/74337-quixplorer-fuer-typo3-6-2-alternativen.html

https://github.com/madsbrunn/t3quixplorer/tree/extbaseVersion