PhpStorm: OXID6 "_parent"-Klassen werden nicht erkannt

Liebes Forum,

für eine produktive Entwicklung inkl. Debugging sollte PhpStorm die Code-Navigation vollständig beherrschen. Leider erkennt die IDE die von OXID definierten ‘_parent’-Klassen nicht:

Beispiel: class OrderController extends OrderController_parent (in source/modules/oe/oepaypal/Controller/OrderController.php)

PhpStorm liefert für OrderController_parent: Undefined class OrderController_parent

Für OXID 4.x gibt es das Modul Oxid-Module-IDE-Helper [1], mit Hilfe dessen ein korrektes Mapping erzeugt wurde. Im Rahmen der Umstellung auf Symfony/composer scheint das nun aber für OXID 6 nicht mehr zu funktionieren. Auch das PhpStorm-Modul “OXID Plugin” [2] scheint mit der aktuellen PhpStorm-Version nicht zu funktionieren.

Bisheriger Ansatz:

  • Sämtliche OXID-Pakete direkt in PhpStorm per composer installiert in der Hoffnung, dass durch die Indizierung der entsprechenden Namespaces automatisch auch die ‘_parent’-Klassen korrekt aufgelöst werden. Ich ging davon aus, dass das bedingt durch den Autoloader inzwischen automatisch funktionieren sollte, siehe auch Kommentar von RBlank in [3]. Leider hatte ich damit keinen Erfolg.

[1] https://github.com/DSB/Oxid-Module-IDE-Helper
[2] https://plugins.jetbrains.com/plugin/7853-oxid-plugin
[3] https://oxidforge.org/en/namespaces-in-oxid-eshop-6.html

Über einen Lösungsansatz für dieses Problem wäre ich sehr dankbar.

PhpStorm: 2018.2
OXID: CE 6.1.0
PHP: 7.1

Viele Grüße
Tobias

Jemand muss wohl die Module updaten, sonst wird das nicht gehen.

1 Like

Leider gibts hier (immer noch) nichts :frowning:

Manuell kannst du es in deinen Modulen so erledigen:

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

Für die andere Richtung (alle Standard-Methoden auch im Modul verfügbar machen) haben wir ein kleines Script geschrieben, Details dazu hier: https://www.proudcommerce.com/blog/oxid-ide-modul-helper

1 Like