OXID IDE Module Helper

14. Juli 2020

 

Jede moderne IDE (phpStorm, VisualCode, …) helfen bei der Verwendung von Klassen und Funktionen mit einer Autovervollständigung. Dies funktioniert beim OXID eShop grundsätzlich auch problemlos. Erweitert man nun eine Klasse mit einem eigenen Modul wird dies bei OXID durch eine eigene Logik erledigt: class MyClass extends MyClass_parent. Die IDE kennt diese jedoch nicht und bietet daher auch keine Autocompletion für die jeweilige Klasse.

Im folgenden Beispiel erweitern wir die Artikel-Klasse:

<?php

* Class Article
*
* @package MyVendorNamespace\MyModuleNamespace\Model
*/
class Article extends Article_parent
{
/**
* @return mixed
*/
public function myNewFunction()
{
return $this->getId();
}

}

Ohne das generierte Module Helper Script werden keine Vorschläge/Autovervollständigung für $this angezeigt, mit hingegen alle Methoden vom Artikel-Objekt.

Das Script ist immer zu finden auf Github: https://github.com/proudcommerce/oxid-ide-modulehelper

Leider ist derzeit der umgekehrte Weg, d. h. alle durch ein Modul erweiterten Funktionen zu einer Klasse in der Autocompletion anzeigen, nicht möglich. Der letzte Stand hierzu wird im OXID Forum diskutiert. Vorerst kann dies nur durch eine entsprechende Annotation im Modul erreicht werden.

/* @var \MyVendorNamespace\MyModuleNamespace\Model\Article $article */
$article = oxNew(\OxidEsales\Eshop\Application\Model\Article::class);