Download the PHP package tinywan/webman-typephp without Composer
On this page you can find all versions of the php package tinywan/webman-typephp. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tinywan/webman-typephp
More information about tinywan/webman-typephp
Files in tinywan/webman-typephp
Package webman-typephp
Short Description TypePHP AOT native binary compiler and packager plugin for Webman
License MIT
Informations about the package webman-typephp
π Introduction
tinywan/webman-typephp is a TypePHP AOT build plugin designed for Webman 2.x. It automatically inspects existing Webman projects, generates AOT compilation entrypoints and configurations, builds the application using pinned Docker builder images, and packages a deployment-ready dist/ directory for target Linux servers.
The host system only requires PHP, Composer, and Docker. No C++, Clang, or TypePHP compilation toolchains need to be installed locally.
π Quick Start
1. Install Plugin
Run the following command in your Webman project root:
2. Environment Check
Check and verify PHP version, Docker CLI, and Docker daemon availability:
3. Build & Package
The default builder image is tinywan/typephp-webman-builder:v0.9.4 (portable dynamic directory); static mode uses tinywan/typephp-webman-builder-static:v0.9.4. Compilation runs entirely within Docker containers.
4. Run Artifacts
Copy the dist/ directory to a compatible Linux x86_64 server and run:
start.sh automatically configures PHPRC to load bundled php.ini and sets dynamic library search paths to the packaged lib/. Standard Workerman management commands are fully supported:
You can also launch via the wrapper script directly:
π¦ Artifact Contract
Depending on the packaging command, the build artifacts are produced in two forms:
Mode 1: Fully-Static Single Binary (php webman typephp:package --static)
Outputs a statically linked standalone executable with zero external dynamic library dependencies. It does not require any pre-installed PHP environment or glibc on the target system (runs directly on Alpine, BusyBox, or minimal Linux containers):
Key Highlights
- Zero External Dependencies: Fully self-contained single binary; no
libphp.so,ext/*.so,lib/directory, or externalphp.inineeded. - Universal Distro Compatibility: Compatible with any Linux x86_64 environment (Alpine, Ubuntu, Debian, CentOS, BusyBox, etc.).
- Ready Out of the Box: Run the executable directly without system dependency installations.
Minimal Containerization Example (Optional)
Thanks to static linking, you can build an ultra-lightweight production container (~20MB) using the official 5MB Alpine image:
Mode 2: Portable Dynamic Directory (php webman typephp:package)
Outputs a self-contained portable directory with a precompiled libphp.so core runtime and bundled dynamic extensions. Best suited for workloads requiring native Linux .so extensions:
Key Highlights
- Rich Extension Ecosystem: Supports precompiled
.soextensions installed from Linux package managers. - Flexible Maintenance: The executable and underlying runtime libraries (
libphp.so/ext/*.so) are decoupled for granular updates. - Standard glibc Compatibility: Compatible with Linux distributions using glibc 2.31+ (Ubuntu 20.04+, Debian 11+, RHEL 9+, etc.).
π οΈ Commands
| Command | Description |
|---|---|
php webman typephp:package |
Build Linux portable directory using the default builder |
php webman typephp:package --static |
Build fully-static single binary executable (zero external dynamic library dependencies) |
php webman typephp:package --force |
Overwrite existing output and preserve backup of old dist directory |
php webman typephp:package --refresh-main |
Force refresh main.php from official TypePHP stub (backs up existing file) |
php webman typephp:package --image=... |
Use a custom verified Docker image |
php webman typephp:doctor |
Check PHP, Docker, and build prerequisites |
php webman typephp:init-ci |
Generate Linux amd64 GitHub Actions workflow |
βοΈ Configuration
After installing the plugin, the configuration file is located at config/plugin/tinywan/typephp/app.php:
The --image CLI option takes highest precedence; if omitted, docker.image from config is used, falling back to tinywan/typephp-webman-builder:v0.9.4.
π― MVP Scope & Boundaries
The current phase supports the verified combinations:
- Target platform:
linux/amd64. - Runtime: glibc dynamic portable-dir and musl fully-static single binary.
- Delivery: Standalone binary or
webman-server.bin+start.sh+lib/+ Webman runtime resources. - Build mechanism: Pinned Docker builder images aligned with repository release tags.
Future roadmaps include Composer dependency audits, expanded Webman extension fixtures, ARM64 builds/tests, and incremental caching.
π³ Maintainers: Publishing Docker Builders
Regular users do not need this section. Pushing a Git tag matching vMAJOR.MINOR.PATCH (e.g. v0.9.4) triggers GitHub Actions to build and push Linux amd64 images automatically:
The repository requires DOCKER_USERNAME and DOCKER_PASSWORD (Docker Hub Access Token) secrets. Workflows only publish exact version tags and do not push latest or floating tags.
See RELEASING.md for details.
π§ͺ Quality & Testing
Tests are written with Pest, formatted and linted with Mago:
Tests must not connect to production, shared, or external databases. Tests requiring databases must run in isolated temporary environments (e.g., SQLite :memory:).
πΊοΈ Documentation & References
- TypePHP AOT Documentation
- TypePHP Plugin Proposal
- Release Guide
- Issue Tracker
- Tinywan
License
MIT Β© Tinywan
All versions of webman-typephp with dependencies
symfony/process Version ^7.0 || ^8.0
workerman/webman-framework Version ^1.5.4||^2.0||dev-master
webman/console Version ^1.0||^2.0