File: /var/www/html/wp-content/plugins/wpgraphql-acf/DEVELOPMENT.md
# Using Docker For Local Development
This document describes standalone Docker-based development. When working in the **WPGraphQL monorepo**, use the root test environment (wp-env) and see the repo [Testing Guide](../../docs/TESTING.md#testing-wp-graphql-acf). For a full local run that mirrors CI (build, wp-env, install ACF, Playwright E2E, stop), use `./bin/run-acf-e2e-local.sh` from the monorepo root.
## WordPress Site
The `app` docker image starts a running WordPress site with the local wpgraphql-acf directory installed and activated. Local changes to the source code is immediately reflects in the app.
1. Build the plugin.
1.1 `composer install` or `docker run -v $PWD:/app composer --ignore-platform-reqs install`
1. Run `composer build-app` to build the `app` docker image.
1. Run `composer build-test` to build the `testing` docker image.
1. Run `composer run-app` to start the WordPress site.
1. Browse to http://localhost:8091/ to access the running WordPress app.
1. Browse to http://localhost:8091/wp-admin/ to access the admin dashboard. Username is 'admin'. Password is 'password'.
## Testing Suite
The `testing` docker image starts a running WordPress and runs the codeception test suites.
1. Run `composer build-test` to build the `testing` docker image.
1. Run `composer run-test` to start the `testing` image and run the codeception tests.
# Using XDebug
## Local WordPress Site With XDebug
Use an environment variable USING_XDEBUG to start the docker image and WordPress with xdebug configured to use port 9003 to communicated with your IDE.
```
export USING_XDEBUG=1
composer run-app
```
Start the debugger in your IDE. Set breakpoints.
Load the app in http://localhost:8091/.
## Using XDebug With Tests
Use the environment variable USING_XDEBUG to run tests with xdebug configured to use port 9003 to communicated with your IDE.
```
export USING_XDEBUG=1
composer run-test
```
Start the debugger in your IDE. Set breakpoints.
## Configure VSCode IDE Launch File
Create or add the following configuration to your .vscode/launch.json in the root directory. Restart VSCode. Start the debug listener before running the app or testing images.
If you have WordPress core files in a directory for local development, you can add the location to the `pathMappings` for debug step through.
```
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"xdebugSettings": {
"max_children": 128,
"max_data": 1024,
"max_depth": 3,
"show_hidden": 1
},
"pathMappings": {
"/var/www/html/wp-content/plugins/wpgraphql-acf": "${workspaceFolder}",
"/var/www/html/wp-content/plugins/wp-graphql": "${workspaceFolder}../wp-graphql",
"/var/www/html": "${workspaceFolder}/wordpress",
}
}
]
}