Я делаю приложение Laravel / Reactjs, используя Docker. При написании кода в responsejs я много использую console.log для отладки, но не могу найти ничего похожего для отладки своего PHP-кода. Предположим, я в файле PHP хочу проверить, что моя переменная id - это то, что я думаю, я хотел бы сделать следующее (Auth :: user () возвращает пользователя, у которого есть идентификатор)
function somePHPfunction {
$user = Auth::user();
$id = $user->id;
console.log($id);
}
что, конечно, не работает.
Я использую vscode в качестве редактора, и я попытался настроить расширение PHP Debug с помощью Xdebug, но я не могу заставить его работать, что, я думаю, может быть связано с тем, как работает docker. Я попробовал следующее руководство , но также не смог заставить это работать (и это для Mac, я использую Linux).
Я также пытался запускать разные скрипты (некоторые примеры можно найти здесь ), но ни один из них не работает в коде, как упоминалось ранее.
Ниже я публикую свой файл docker, мой файл 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
докер-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.log в javascript, поэтому я могу видеть, что происходит во время выполнения.