Tiger_Module_Installer

@api

Tiger_Module_Installer — install / update / remove modules from public GitHub repos.

Flow (WordPress-familiar, no git/composer): resolve a PINNED release ref → read module.json → download the release tarball → extract (guarded) → move into application/modules// → run its migrations → publish assets → record in the module table. installFromTarball() is the shared tail (also usable for offline/local installs + testing).

Safety: public-repo-only (raw 404 = not installable), slug + reserved-name validation, extraction confined to a temp dir then moved, and remove() only touches installer-managed modules — never a developer's custom module.

Methods

installFromUrl()

installFromUrl($repoUrl, $ref = null, array $opts = [])

Install (or update, with opts[force]) a module from a public GitHub URL.

  • $repoUrl string — a GitHub repo URL or "org/repo" slug
  • $ref string|null — a specific ref to pin, or null to resolve the latest release
  • $opts array — install options (e.g. ['force' => true] to update in place)

Returns array{slug:string,name:string,version:?string,ref:?string} — the installed module summary

Throws RuntimeException — if the URL, ref, manifest, or download is invalid/unreachable