mautic を psyph で調べる最初の一歩

8665 단어
psysh をそのま使ってもいいのですが、今回は psysh-bundle を利用し마스.

引き続き環境は ddev 입니다.

$ ddev composer require --dev theofidry/psysh-bundle:v3.5.1

v3.5.1 app/AppKernel.php feature を利用しているのは、mautic의 3.3 branch는 symfony のバージョンが 3 系のが 입니다.
  • https://packagist.org/packages/theofidry/psysh-bundle#v3.5.1
  • https://github.com/theofidry/PsyshBundle/tree/v3.5.1

  • 以前の mautic では入っていた



    続いて README にある通り、 AppKernel の修正をするの이다 が、以下のように 3.3 의 가지가 修下のように 3.3 의 분기입니다.
    https://github.com/mautic/mautic/blob/3.3/app/AppKernel.php#L208-L209

    // Removed temporarily for https://github.com/mautic/mautic/pull/9602, can be re-added in Mautic 4+
    // $bundles[] = new Fidry\PsyshBundle\PsyshBundle();
    


    以下の PR で一度入ったようですが、코멘트의 통리 4 系に向けた作業の中向けた作業の中向けた作業の中向けた作業の中向けた作業の中向けた作業の中向けた作業の中向けた作業の中向けた作業の中向けた作業の中向けた作業の中向けた作業の中向けた作業の中向けた作業の中度向度)
  • Add the Psysh REPL for dev usage #6667
  • Upgrade to PHPUnit 9 #9602

  • Upgrade to Symfony 4 #9409
  • ここで再度入っていました


  • 使い方




    $ ddev ssh
    # ここからはコンテナ内
    $ bin/console --env=dev psysh
    Psy Shell v0.9.12 (PHP 7.4.20 — cli) by Justin Hileman
    New version is available (current: v0.9.12, latest: v0.10.8)
    >>>
    


    上述の dev の修正箇所を見てもらうと分かりますが、 test 、巂いすます dev .の環境でのみ有効にしているので、のですが ddev で起動するとォrtが prod 니 て ため)

    例えば DB からを取得する




    >>> ls
    Variables: $container, $kernel, $parameters, $self
    

    ls すると、利用可能な変数が一覧できmas.

    >>> $em = $container->get('doctrine')->getManager();
    => Doctrine\ORM\EntityManager {#625}
    >>> $em->getRepository('MauticPluginBundle:Plugin')->findAll();
    => [
         Mautic\PluginBundle\Entity\Plugin {#4861},
         Mautic\PluginBundle\Entity\Plugin {#4822},
         Mautic\PluginBundle\Entity\Plugin {#4825},
         Mautic\PluginBundle\Entity\Plugin {#4828},
         Mautic\PluginBundle\Entity\Plugin {#4831},
         Mautic\PluginBundle\Entity\Plugin {#4834},
         Mautic\PluginBundle\Entity\Plugin {#4837},
         Mautic\PluginBundle\Entity\Plugin {#4858},
         Mautic\PluginBundle\Entity\Plugin {#4855},
         Mautic\PluginBundle\Entity\Plugin {#4852},
         Mautic\PluginBundle\Entity\Plugin {#4849},
         Mautic\PluginBundle\Entity\Plugin {#4846},
       ]
    

    dump すると오브제크트의 内容を確認でき마스.

    >>> $plugin = $em->getRepository('MauticPluginBundle:Plugin')->find(1);
    >>> dump($plugin)
    Mautic\PluginBundle\Entity\Plugin {#4861
      -id: 1
      -name: "Outlook"
      -description: "Enables integrations with Outlook for email tracking"
      -primaryDescription: null
      -secondaryDescription: null
      -isMissing: false
      -bundle: "MauticOutlookBundle"
      -version: "1.0"
      -author: "Mautic"
      -integrations: Doctrine\ORM\PersistentCollection {#4860
        -snapshot: []
        -owner: Mautic\PluginBundle\Entity\Plugin {#4861}
        -association: array:16 [ …16]
        -em: Doctrine\ORM\EntityManager {#625 …11}
        -backRefFieldName: "plugin"
        -typeClass: Doctrine\ORM\Mapping\ClassMetadata {#2146 …}
        -isDirty: false
        #collection: Doctrine\Common\Collections\ArrayCollection {#4821
          -elements: []
        }
        #initialized: false
      }
      #changes: []
      #pastChanges: []
    }
    => Mautic\PluginBundle\Entity\Plugin {#4861}
    


    번들 一覧은 以下で見れ마스.

    >>> $kernel->getBundles();
    => [
         "FrameworkBundle" => Symfony\Bundle\FrameworkBundle\FrameworkBundle {#541},
         "SecurityBundle" => Symfony\Bundle\SecurityBundle\SecurityBundle {#546},
         "MonologBundle" => Symfony\Bundle\MonologBundle\MonologBundle {#550},
         "SwiftmailerBundle" => Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle {#27},
         "DoctrineBundle" => Doctrine\Bundle\DoctrineBundle\DoctrineBundle {#74},
         "DoctrineCacheBundle" => Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle {#549},
    ....
    

    좋은 웹페이지 즐겨찾기