Ankündigung

Einklappen
Keine Ankündigung bisher.

Symfony Anfänger Frage wegen namespaces und use Statements

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Symfony Anfänger Frage wegen namespaces und use Statements

    Hallo,
    ich beschäftige mich seit einigen Wochen mit Symfony.
    Ich könnte mir gut vorstellen, dass mein Problem auch Andere haben und ich wüsst jetzt nicht wen ich fragen kann.

    Wie komme ich an die richtigen use Statements, um eine Methode für meine Klassen nutzen zu können?
    Im prinzip ist mir ja Sinn u. Zweck von namespace u. use bekannt, dennoch gelingts nicht recht. IDE ist NetBeans8.

    Ich gebe auch gern ein Beispiel:
    Will ich z. B. Assets / Bilder nach einem Upload automatisch verschieben, so kann man hierfür die Methode:
    createFolderByPath()
    In der Klasse:
    Service
    mit Namespace:
    Pimcore\Model\Element;
    nutzen. Die Datei befindet sich unter:
    vendor\pimcore\pimcore\models\Element\Service.php

    Um die Methode nun auf ein Bild ausführen zu können brauche ich wohl die Datei:
    vendor\pimcore\pimcore\models\Asset\Service.php

    Die Funktion schaut so aus, um Bilder verschieben zu können:
    private function moveAssetToFolder(Asset $asset, $folderPath) {
    $folder = Asset\Service::createFolderByPath($folderPath);
    $asset->setParent($folder);

    $asset->save();
    }
    Nun ja, wenn ich nun weitere Funktionalitäten einbauen möchte, fällt es doch schwer, den richtigen weg / die richtige Stelle zu finden. Könnt ihr mir bitte einen Tip oder ein weiteres Beispiel geben, dass ich nachvollziehen kann, um das Entwickeln leichter zu erlernen?

    Vielleicht hilft hier auch eine Checkliste, lektüre oder so, hmmm Danke.


  • #2
    Hm. Du musst halt wissen, in welcher Klasse die Methoden stecken die du brauchst. In der Regel kommt das Wissen über Erfahrung / Verständnis wenn du mit dem Framework oder den Libraries arbeitest.
    vendor\pimcore\pimcore\models\Element\Service.php
    Ist das eine abstrakte Klasse oder ein Interface? Mich wundert gerade, dass du zwei verschiedene Pfade nennst.
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Stay fit

    Kommentar


    • #3
      Hi, die ist Abstract
      /**
      * @method \Pimcore\Model\Element\Dao getDao()
      */
      class Service extends Model\AbstractModel
      {
      ...
      Ja es sind zwei Pfade, möglicherweise sorgt das für schwierigkeiten bei mir. Es handelt sich hier um ein EventListener. Wenn ich eine Asset hochlade wird dass Asset automatisch verschoben. Es ist also ein AssetEvent!

      Kommentar


      • #4
        Die Symfony Api Doku hilft hier weiter: https://api.symfony.com/4.1/index.html

        Dazu einfach ein Symfony Plugin für deinen Editor / deine IDE installieren.

        In Netbeans und PhpStorm gibts das definitiv und die sind auch sehr gut.

        In VS Code gibts glaube ich keins extra für Symfony, aber dafür eins für Php, das dein gesamtes Projekt indexiert und sämtliche Klassen und Methoden daraus über dieses Intelli Sense Feature beim Typen autocompleted, was die Vendor Verzeichnisse eines jeden Php Frameworks mit einschließt .

        Kommentar


        • #5
          Okay thx, es ist alles vorhanden!.
          Es liegt an mir. Auch die api ist mir etwas bekannt. Dann werde ich nocheinmal mit einfacheren Beispielen probieren und die tiefe langsam steigern.
          Besten Dank bis die Tage°!°

          Kommentar

          Lädt...
          X