Я делаю приложение Laravel / Reactjs, используя Docker. Кодируя в reactjs, я много использую console.info для отладки, но я не могу найти ничего похожего для отладки моего PHP-кода. Предположим, я в файле PHP хочу проверить, что моя переменная id - это то, что я думаю, я хотел бы сделать следующее (Auth :: user () возвращает пользователя с идентификатором)
function somePHPfunction {
$user = Auth::user();
$id = $user->id;
console.info($id);
}
что, конечно, не работает.
Я использую vscode в качестве своего редактора, и я попытался настроить расширение PHP Debug с помощью Xdebug, но не могу заставить его работать, что, как я думаю, может быть связано с тем, как работает докер. Я пробовал следующее руководство, но не смог заставить его работать (и это для Mac, я использую linux).
Я также пробовал запускать разные сценарии (некоторые примеры можно найти здесь), но ни один из них не работает в коде, как упоминалось ранее.
Ниже я публикую свой файл докеров, файл docker-compose.yaml и файл .env (проект создан на Laravel).
dockerfile
FROM php:7.2-apache
RUN a2enmod rewrite
RUN rm /bin/sh && ln -s /bin/bash /bin/sh && \
apt-get update && apt-get install --no-install-recommends -y \
libjpeg-dev \
libpng-dev \
libpq-dev \
curl \
wget \
vim \
git \
unzip \
mysql-client \
;
RUN docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
docker-php-ext-install -j "$(nproc)" \
gd \
opcache \
pdo_mysql \
pdo_pgsql \
zip \
;
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
WORKDIR /var/www/html
RUN curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer && \
ln -s /root/.composer/vendor/bin/drush /usr/local/bin/drush
COPY scan-apache.conf /etc/apache2/sites-enabled/scan-apache.conf
docker-compose.yaml версия: '3.3'
services:
app:
image: image
build: .
container_name: container
env_file:
- .env
ports:
- "4321:80"
volumes:
- .:/var/www/html
depends_on:
- mysql
mysql:
image: mysql/mysql-server:5.7
# build: ./docker/mysql
hostname: mysql
container_name: scan-db
env_file:
- .env
volumes:
- mysql-data-scan-redcap:/var/lib/mysql
volumes:
mysql-data-scan-redcap:
networks:
default:
external:
name: webproxy
Я надеюсь на метод, который может делать то же самое, что и console.info в javascript, чтобы я мог видеть, что происходит во время выполнения.
вы тоже не можете использовать dd()






Если вы не можете заставить xdebug работать, вы можете использовать
var_dumpдля проверки определенных переменных в определенное время. xdebug определенно будет лучше, если вы сможете заставить его работать, но, боюсь, я не могу сильно помочь с устранением неполадок.