Liebe Gambio GmbH, ich möchte nicht schlecht über den Programmierstil reden, da jeder seinen eigenen Stil finden und umsetzen soll, sondern eher fragend auf einige Codestellen hinweisen, die mir persönlich im Hals stecken bleiben und die Umsetzung von individuellen Anpassungen erschweren. Welche Bedeutung haben die ganzen "Päfixe" bei all euren Variablen? (Beispiel: $coo_, $p_, $t_, usw. &sofort) Warum wird oft ein switch-case Verfahren angewendet? Beispiel: PHP: switch ($_REQUEST['action']) { case 'setcflag': if ($_SESSION['coo_page_token']->is_valid($_GET['page_token'])) { ... } break; case 'setpflag': if ($_SESSION['coo_page_token']->is_valid($_GET['page_token'])) { ... } break; case 'setsflag': if ($_SESSION['coo_page_token']->is_valid($_GET['page_token'])) { ... } break; case 'update_category' : if ($_SESSION['coo_page_token']->is_valid($_POST['page_token'])) { ... } break; case 'insert_category' : if ($_SESSION['coo_page_token']->is_valid($_POST['page_token'])) { ... } break; case 'update_product' : if ($_SESSION['coo_page_token']->is_valid($_POST['page_token'])) { ... } break; case 'insert_product' : if ($_SESSION['coo_page_token']->is_valid($_POST['page_token'])) { ... } break; usw... } Warum wiederholt ihr euch oft? Beispiel (Bezogen auf Punkt 2: In jeder case Anweisung): PHP: if ($_SESSION['coo_page_token']->is_valid($_POST['page_token'])) Warum werden Sachen im Code teilweise doppelt "includiert"? Beispiel: PHP: include ExampleCode...wird teilweise einige Zeilen später erneut aufgerufen....include ExampleCode usw.. Ich meine es ist ja verständlich das Euer Quellcode offen einsehbar ist und dadurch man versucht so schwer wie möglich für Dritte, aber so einfach wie möglich für eigene Zwecke zu programmieren Jedoch ergeben für mich manche Passagen keinen Sinn. Voller Freude habe ich irgendwo im Code per Zufall entdecken können, dass Ihr Composers "autoload" eingefügt habt, doch genauso schnell verpuffte die Freude darüber als ich in den GXEngine Ordner einen Blick werfen durfte. Auch hier wirft man mit require_once und include_once um sich, als würde ein Wettkampf zwischen diesen Mechaniken stattfinden. Warum nicht eine Mechanik anwenden, die einfach das lädt, was gerade vom Anwender/System benötigt wird Ich könnte so weiter machen, aber bis hier hin sollte es genügen. Ich betone es nochmal, möchte nicht schlecht über den Programmierstil reden, sondern fragend auf einige Codestellen hinweise, die einem dritten Entwickler das Leben schwer machen.
Die überarbeiten ja gerade diese ganzen Stellen. Aufschluss gibt dir als Entwickler evtl. das hier (Link nur für registrierte Nutzer sichtbar.)
Alles PHP, das außerhalb des GXEngine-Ordners liegt, ist nicht mehr up-to-date, was den Programmierstil angeht. Vieles, gerade im Adminbereich, basiert noch auf uraltem xtc-Code. Der Quellcode tut, was er soll, ist aber echt Murks. Da kann man nichts schön reden. Daher wird gerade so viel neu gemacht. Der Adminbereich wird auch Stück für Stück abgerissen und durch neuen Code ersetzt. Das ist ein Prozess, der uns noch länger begleiten wird. Wir versuchen zuerst das neu zu machen, was am wichtigsten ist, so dass man als Entwickler so wenig wie möglich mit altem Code in Berührung kommen muss. Das klappt schon oft, aber noch nicht überall. Die einzigen includes/requires, die ich im GXEngine-Ordner sehe, beziehen sich auf sehr alten Code, der da noch eingebunden werden muss, solange bis auch das durch Refactorarbeiten verschwindet. Alles Neue wird bereits über die MainFactory geladen, die auch vom Autoloader angesprochen wird. Hier sind unsere aktuellen Guidelines: http://developers.gambio.de/wiki.html?v=2.7.2.0&p=guidelines
Sehr sehr schön!!! Ein paar kleine Bespiel-Codes wäre m.E. der Gipfel der Lust. Zum Beispiel "Button": https://developers.gambio.de/wiki.html?v=2.7.2.0&p=liste-der-css-elemente