Php Composer能否处理路径中的二进制依赖项?
我知道它可以确定php、hhvm、ext和一些库依赖项。在PATH上的命令和二进制文件上是否也会出现同样的情况?事实上,例如,我编写脚本以确保它的存在。这可以通过自己的Composer功能来实现?您可以使用Composer钩子来实现,比如预安装cmd或预更新cmd,它执行PHP方法。这是我的测试: composer.json src/Acme/Composer/Hooks.phpPhp Composer能否处理路径中的二进制依赖项?,php,composer-php,Php,Composer Php,我知道它可以确定php、hhvm、ext和一些库依赖项。在PATH上的命令和二进制文件上是否也会出现同样的情况?事实上,例如,我编写脚本以确保它的存在。这可以通过自己的Composer功能来实现?您可以使用Composer钩子来实现,比如预安装cmd或预更新cmd,它执行PHP方法。这是我的测试: composer.json src/Acme/Composer/Hooks.php 您可以使用Composer钩子实现这一点,比如pre-install cmd或pre-update cmd,它执行一
您可以使用Composer钩子实现这一点,比如pre-install cmd或pre-update cmd,它执行一个PHP方法。这是我的测试: composer.json src/Acme/Composer/Hooks.php
困难,因为它依赖于操作平台;当然,测试版本或为Youp安装版本并不容易。是的,版本控制是不可能处理的。但我认为,您可以跨平台测试状态,只使用香草PHP。这很困难,因为它取决于操作平台;当然,测试版本或为Youp安装版本并不容易。是的,版本控制是不可能处理的。但是我认为你可以通过跨平台的方式来测试存在性,只需要使用香草PHP。经过一些研究,我认为这是最跨平台的方法。顺便说一句。编写器挂钩仅在根包中运行。如果你把它们添加到你的库中,它们就没有效果了!经过一些研究,我认为这是最跨平台的方法。编写器挂钩仅在根包中运行。如果你把它们添加到你的库中,它们就没有效果了!
{
"require": { "pimple/pimple": "*" },
"autoload": { "psr-0": { "Acme\\": "src/" } }
"scripts": {
"pre-install-cmd": "Acme\\Composer\\Hooks::checkBinary",
"pre-update-cmd": "Acme\\Composer\\Hooks::checkBinary"
}
}
<?php
namespace Acme\Composer;
use Composer\Script\Event;
class Hooks
{
public static function checkBinary(Event $event) {
$io = $event->getIO();
$path = explode(':', getenv('PATH'));
// do something with $path elements or anything else
if ($somethingWentWrong) {
// Throwing an Exception will cause Composer to stop processing.
throw new \Exception('Check your PATH');
} else {
$io->write('checkBinary() completed.');
}
}
}