loom-spinner-cli/README.md
2025-04-14 15:26:41 +01:00

105 lines
No EOL
4.1 KiB
Markdown

# Loom | Spinner
An environment management application for PHP developers.
# Dev Notes
**Argument priority:**
- Those passed explicitly in the CLI commands
- Any set within `{projectDirectory}/spinner.yaml`
- Fall back to `/config/spinner.yaml`
# Commands
## Command: `spin:up`
Creates a new PHP development environment and mounts your project files.
### Arguments
> #### Argument: name
>
> **Required?** ✅
>
> The name of your Docker containers. Your containers will spin up with the name {name}-{service} i.e.
>
> `spinner spin:up name=test path=/path`
>
> Results in containers named `test-php` and `test-nginx`
> #### Argument: path
>
> **Required?** ✅
>
> The **absolute path** on your system to the project you want to create containers for.
### Options
> #### Option: --php
>
> Defines the PHP version that your container will use. You can omit this flag and set the PHP version inside your
> projects `spinner.yaml` file. Otherwise, will use the default value found in `config/spinner.yaml`
> #### Option: --node
>
> Set which version of Node to install in your container. Is ignored if the `--disable-node` flag is
> passed, or if Node is disabled in your projects `spinner.yaml` file. Equivalent to setting
> `options.environment.node.version: x` in your projects Spinner config.
> #### Option: --database
>
> Set which database driver to use with your environment. The default (and currently only) database driver is `sqlite3`.
> Accepted values are currently `sqlite` and `sqlite3`. If using the default, SQLite is installed inside your PHP
> container and a mapping created to the `/sqlite` directory in your project. This argument is ignored if
> `--disabled-database` is set.
> #### Option: --disable-database
>
> Does not install a database with your environment. Equivalent to setting `options.environment.database.enabled: false`
> in your Spinner config.
> #### Option: --disable-node
>
> Disables Node for your environment, so it isn't included in your PHP container. Equivalent to setting
> `options.environment.node.enabled: false` in your Spinner config.
> #### Option: --disable-server
>
> Does not install a webserver (so no Nginx). Useful if you just need a PHP container to run unit tests or something.
> #### Option: --disable-xdebug
>
> Do not install XDebug in your environment. Equivalent to setting `options.environment.php.xdebug = false` in your
> projects Spinner config.
## XDebug Setup
These instructions are for PHPStorm. I don't know about working with other IDE's, although they
should be fairly universal.
### Server Settings
- `File` -> `Settings`
- `PHP` -> `Servers` -> `+`
- Give your "server" a name and use the values shown below.
| Setting | Value |
|-------------------------|----------------------------------------------------------------------------------------------------------------|
| Host | 127.0.0.1 |
| Port | **Local** port **PHP** container is running on. i.e. if your docker container shows 52033:9003, use **52033**. |
| Debugger | Xdebug |
| Use path mappings? | ✅ |
| File/Directory | Select **your project root** |
| Absolute path on server | /var/www/html |
### Remote Debugger
- `Run` -> `Edit Configurations`
- `+` -> `PHP Remote Debug`
- Give it a name
- Use the server you created before
- Use **SPINNER** as IDE key
Make sure you start listening when you want to debug by clicking the little bug icon in the
top right (by default) in PHPStorm.