masgeek/windows-ext-ignorer
最新稳定版本:0.1.4
Composer 安装命令:
composer require masgeek/windows-ext-ignorer
包简介
Composer plugin to ignore pcntl/posix platform reqs on Windows
README 文档
README
A Composer plugin that automatically ignores platform requirements like ext-pcntl and ext-posix on Windows systems.
🚧 The Problem
Many PHP packages require extensions such as ext-pcntl and ext-posix—extensions that are not available on Windows. As a Windows developer, you're often forced to:
- Add the
--ignore-platform-reqsflag to every Composer command - Set up custom command aliases
- Modify
composer.jsonmanually to workaround the missing extensions
✅ The Solution
This plugin automatically detects when you're on a Windows system and spoofs the required extensions for you—no flags, no aliases, no extra steps.
It works out of the box with sensible defaults (ignoring ext-pcntl and ext-posix), and you can also customize which extensions you want to ignore via composer.json!
⚠️ Production Environment Disclaimer
Important:
This plugin is designed for development environments on Windows only.
It should not be used in production environments, staging servers, or CI pipelines that require accurate platform checks.Ignoring required PHP extensions may cause runtime errors or unexpected behavior in your application. Always ensure your production environment meets the actual extension requirements of your packages.
⚙️ Installation
It’s recommended to install the plugin as a development dependency, since it’s only useful in development environments:
composer require --dev masgeek/windows-ext-ignorer
🚀 Usage
Once installed, the plugin just works on Windows.
When running any Composer command:
- The plugin detects that you're on Windows
- It automatically injects the specified extensions into Composer’s platform config
- Composer proceeds without showing errors about missing extensions
🔧 Customizing Ignored Extensions
By default, the plugin injects these extensions into Composer’s platform config:
ext-pcntl:1.0.0ext-posix:1.0.0
If you want to ignore additional (or different) extensions, you can specify them in your composer.json file under the extra section.
Example composer.json Configuration:
{
"extra": {
"ignored-extensions": {
"ext-pcntl": "1.0.0",
"ext-posix": "1.0.0",
"ext-sockets": "1.0.0"
}
}
}
You can specify any extensions that are not supported or available in your Windows environment.
🖥️ Verbose Output
To see the plugin in action, run Composer with the -v or -vvv flag:
composer require some/package -vvv
Example output:
➡️ Running Composer Command: require
🔧 Found ignored-extensions in composer.json: {"ext-pcntl":"1.0.0","ext-posix":"1.0.0","ext-sockets":"1.0.0"}
🛠️ Ignoring missing platform requirement: ext-pcntl=1.0.0
🛠️ Ignoring missing platform requirement: ext-posix=1.0.0
🛠️ Ignoring missing platform requirement: ext-sockets=1.0.0
✅ Platform config updated to spoof missing extensions.
⚙️ How It Works
- Subscribes to Composer’s
pre-command-runevent - Detects if the OS is Windows
- If true, it merges default and
composer.jsonconfigured ignored extensions - It updates Composer’s
platformconfig at runtime - After Composer runs, the overrides are cleared (no changes are persisted to your files)
❓ FAQ
Q: Will this modify my composer.json?
A: No. It temporarily adjusts Composer’s internal configuration and does not write to your composer.json file.
Q: Can I use this on Linux or Mac?
A: No. The plugin only activates on Windows (PHP_OS_FAMILY === 'Windows'). On other operating systems, it does nothing.
📝 License
MIT License
Author: Sammy Barasa
统计信息
- 总下载量: 796
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-03-24