internal/dload
DLoad simplifies downloading and managing binary artifacts in PHP projects. Auto-install tools like RoadRunner or Temporal with version constraints, cross-platform support, and optional custom builds—keeping binaries out of VCS and onboarding fast.
Developer Onboarding & Environment Consistency: Automate the distribution of binaries (e.g., RoadRunner, Temporal, CLI tools) to eliminate "works on my machine" issues. Reduces friction for new team members by embedding tooling setup in the project itself.
Build vs. Buy Decision: Buy: Avoid reinventing binary distribution logic (e.g., GitHub API integration, version constraints, cross-platform support). Build: Customize the registry for internal tools or niche dependencies not covered by the package’s defaults.
CI/CD Pipeline Optimization:
Integrate dload into post-install-cmd or CI workflows (e.g., GitLab CI) to ensure consistent tooling across environments. Reduces flaky tests caused by missing or mismatched binaries.
Roadmap for "DevOps as Code": Extend the package to support:
Multi-Platform Teams:
Support Windows/macOS/Linux teams by centralizing binary management. Example: A frontend team using buf for Protobuf tools can standardize on a single version across OSes.
PHAR and Frontend Asset Distribution:
Use type="phar" for PHP tools (e.g., Psalm, PHPStan) and type="archive" for frontend assets (e.g., Node.js dependencies, static files). Avoid bloating version control with large binaries.
buf, dolt) that aren’t PHP packages.brew install rr" or "Download from GitHub")..gitignore large .exe/.phar files).composer global require phpunit/phpunit)."DLoad eliminates 'works on my machine' for PHP projects by automating the setup of binaries like RoadRunner, Temporal, and CLI tools. Instead of team members manually downloading and configuring tools, the project itself handles it—reducing onboarding time by 80% and ensuring consistency across 100+ environments. It’s like Composer for binaries: just add a line to dload.xml, and the right tools are installed automatically, whether in dev, staging, or CI. This cuts support tickets about missing tools and accelerates feature development."
Key Outcomes:
dload show).**"DLoad is a drop-in solution for managing binaries in PHP projects. It’s like composer require but for executables:
dload.xml to download RoadRunner, buf, or custom tools.^2025.1.0, ~1.0.0@beta).post-install-cmd or GitLab CI to ensure tools are always available.Why not roll our own?
Example workflow:
composer require internal/dload
./vendor/bin/dload init # Interactive setup
./vendor/bin/dload get # Downloads all configured tools
Now every git clone or CI job gets the same tooling—no more surprises."**
For Architects:
./runtime to avoid repeated fetches../vendor/bin/dload show lists installed tools and versions.How can I help you explore Laravel packages today?