Setup TextPattern using PHP composer and DDEV

I was totally going to step-by-step this guide but then I lost my draft.

TextPattern (TXP) instructs you to extract a zip file into your webroot and on upgrade replace all the files. If you have used PHP Composer to install your PHP dependencies you know this can be done more smoothly.

Composer PHP dependencies

If you want to the quick way, I've created a composer.json to get you started: view gist.

It adds the GitHub repository as a composer dependency, and installs it into the site/ directory using oomphinc/composer-installers-extender. The repo's type is set as a project type, so there are a couple of lines needed to setup composer installer to match it.

Run composer update, you will now have a site and vendor directory, in addition to the composer files:

├── composer.json
├── composer.lock
├── site
└── vendor

Missing JavaScript Depependencies

This typically should have been enough but in the TextPattern GitHub project the package.json file that contains the JavaScript dependencies is both ignored by git (so is missing from our checkout) but requires dependencies the install needs to run.

Let's pull in the copy from the main branch and install the dependencies using npm:

$ cd site
$ wget https://raw.githubusercontent.com/textpattern/textpattern/main/package.json
$ npm install --omit=dev
$ cd ..

Local environment

For a local environment, I recommend DDEV. To set this up, simplify specify a project name and the docroot where the TXP install is installed to:

$ ddev config --docroot=site --project-name=mysite
$ ddev start
$ ddev launch

The #TextPattern Setup wizard should now open. Use ddev describe to inform you of the database values to enter in the setup wizard.

edit: For some reason I'm getting a database unavailable message. I'll update this if I find a solution. edit2: Solved I think, either through a reboot or the npm instructions.