No description
Find a file
2025-04-14 15:25:40 +01:00
bin Validate project path and confirm Docker is running 2025-04-12 10:47:55 +01:00
config Add basic database support with default integrated sqlite3 install 2025-04-14 04:32:30 +01:00
data Create basic project data structure from env template 2025-04-12 17:28:57 +01:00
src Add basic database support with default integrated sqlite3 install 2025-04-14 04:32:30 +01:00
.gitignore Nginx setup 2025-04-13 20:07:48 +01:00
composer.json Update dependencies, fix option description in SpinCommand 2025-04-13 23:51:02 +01:00
phpunit.xml Add phpunit config 2025-04-09 01:46:19 +01:00
README.md Update README 2025-04-14 15:25:40 +01:00

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

Required?

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

Required?

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

Required?

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

Required?

Does not install a database with your environment. Equivalent to setting options.environment.database.enabled: false in your Spinner config.

Option: --disable-node

Required?

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

Required?

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

Required?

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.