DEV Community

Yoichi Dan
Yoichi Dan

Posted on

ddev 上 の mautic の dev 環境と debug について

そろそろコードを読むだけではキツくなってきたので、動かしながら確認したくなってきた。

dev 環境

ENVIRONMENTS - Mautic Developer Documentation

dev is used when accessing the site through index_dev.php
上記の通りで index_dev.php を通すだけで動作します。
例えば https://mautic.ddev.site/index_dev.php/s/dashboard のような感じです。

2021-06-26_07h32_41

どうして Docker を通しているのに dev 環境で動作できるのか?

このドキュメントを読んで最初は ModHeader を入れて、 MAUTIC_DEV_HOSTS にコンテナからアクセスしている IP を設定して実行してみたのですが、それを ON にしても OFF にしても dev 環境が有効になったので不思議になったのでした。

コンテナ内の mautic にアクセスしている IP は ddev logs -s web -f でログから調べました。
docker network inspect ddev_default あたりで ddev-router を見てもよいかも。

dev 環境の IP 判定

https://github.com/mautic/mautic/blob/features/app/middlewares/Dev/IpRestrictMiddleware.php#L58-L65

if (in_array($request->getClientIp(), $this->allowedIps) || false !== getenv('DDEV_TLD')) {
    return $this->app->handle($request, $type, $catch);
}
Enter fullscreen mode Exit fullscreen mode

getenv('DDEV_TLD') がポイントになっていて、 mautic の ddev をセットアップした時に生成される .ddev-docker-compose-*.yamlenvironmentsDDEV_TLD: ddev.site の記述があります。

この環境変数は名前の通りで ddev のもので以下の一覧にあります。
https://ddev.readthedocs.io/en/stable/users/extend/custom-commands/#environment-variables-provided
DDEV_TLD: Top-level domain of project, like "ddev.site"

どうやら、これだけで通過するようで、mautic の開発環境に ddev を使う人が多いことが伺えます。(まあ、ルートに .ddev がおいてあるんだから標準なんでしょうけど 😅 )

debug

Step-debugging with ddev and xdebug - DDEV-Local Documentation

上記の ddev のドキュメントがほぼすべてです。

  • ddev xdebug on を実行
  • PhpStorm で break point を追加
  • PhpStorm で Start Listening for PHP Debug Connections をクリック
  • ブラウザで mautic のサイトを実行し break point の箇所に遷移

本当にこれだけでした 🎉

余談

最初は dev 環境は以下の記事を読んでいたのですが、ここ数年でもまあまあ変わっていることが分かりました。

Oldest comments (0)