In der OC-Entwicklung soll PSR-2 eingeführt werden. Die Entwickler des polnischen OC-Forks (Opencaching Polen, USA, Niederlande, Rumänien) haben schon damit begonnen und überarbeiten ihren Code Stück für Stück.
Die Frage ist nun, wie wir bei Opencaching.de vorgehen. Ideal wäre eine automatische Umstellung in einem Schritt - erspart viel Handarbeit, und erleichtert die weitere Prüfung von Codebeiträgen (Diffs).
teiling88 hat das Tool psr-cs-fixer getestet und damit die OC-Codestruktur testweise auf PSR-2 umgestellt; hier ist das Ergebnis: Diff, kompletter Code.
Ich hab daraus mal eine beliebige Quelltextdatei rausgepickt und stieß auf Folgendes:
Code: Alles auswählen
} elseif (isset($_REQUEST['assign']) && $rid > 0 &&
($adminid == 0 || ($adminid != $login->userid && $age >= 14))) {
sql("UPDATE `cache_reports` SET `status`=2, `adminid`=&2 WHERE `id`=&1", $rid, $login->userid);
$tpl->redirect('adminreports.php?id='.$rid);
} elseif (isset($_REQUEST['contact']) && $ownerid > 0) {
$wp_oc = sql_value("SELECT `wp_oc` FROM `caches` WHERE `cache_id`='&1'", '', $cacheid);
$tpl->redirect('mailto.php?userid=' . urlencode($ownerid) . '&wp=' . $wp_oc);
} elseif (isset($_REQUEST['contact_reporter']) && $reporterid > 0) {
$tpl->redirect('mailto.php?userid=' . urlencode($reporterid) . '&reportid=' . $rid);
} elseif (isset($_REQUEST['done']) && $adminid == $login->userid) {
sql("UPDATE `cache_reports` SET `status`=3 WHERE `id`=&1", $rid);
$tpl->redirect('adminreports.php?id='.$rid);
} elseif (isset($_REQUEST['assign']) && ($adminid == 0 || $adminid != $login->userid)) {
Code: Alles auswählen
elseif (isset($_REQUEST['assign']) && $rid > 0 &&
($adminid == 0 || ($adminid != $login->userid && $age >= 14)))
{
sql("UPDATE `cache_reports` SET `status`=2, `adminid`=&2 WHERE `id`=&1", $rid, $login->userid);
$tpl->redirect('adminreports.php?id='.$rid);
}
elseif (isset($_REQUEST['contact']) && $ownerid > 0)
{
$wp_oc = sql_value("SELECT `wp_oc` FROM `caches` WHERE `cache_id`='&1'", '', $cacheid);
$tpl->redirect('mailto.php?userid=' . urlencode($ownerid) . '&wp=' . $wp_oc);
}
elseif (isset($_REQUEST['contact_reporter']) && $reporterid > 0)
{
$tpl->redirect('mailto.php?userid=' . urlencode($reporterid) . '&reportid=' . $rid);
}
elseif (isset($_REQUEST['done']) && $adminid == $login->userid)
{
sql("UPDATE `cache_reports` SET `status`=3 WHERE `id`=&1", $rid);
$tpl->redirect('adminreports.php?id='.$rid);
}
elseif (isset($_REQUEST['assign']) && ($adminid == 0 || $adminid != $login->userid))
teiling88 gibt zu bedenken, dass man dann keine Entwicklungstools (z.B. diverse phpStorm-Plugins) zur Prüfung der PSR-2-Konformität mehr verwenden kann, weil sie 100% PSR-2 voraussetzen.
Nun ist die Frage wie wir weiter vorgehen, und es sind Meinungen gefragt.
Was ich mir vorstellen könnte: Wir stellen - soweit möglich - automatisch auf PSR-2 um, aber schreiben uns dazu ein eigenes Tool (PHP-Script) das weniger streng bei den Kontrollstruktur-Klammern ist. Halte ich vom Aufwand her für vertretbar. Dieses Tool steht dann jedem Entwickler zur Verfügung - man lässt es einfach über seinen Code drüberlaufen und hat PSR-2 a la Opencaching.de. Dann müsste man eigentlich ohne Dritttools auskommen, die 100% PSR-2 benötigen - oder?