So I've tracked down where the message is generated. By the actual /vendor/bin/phpspec file itself. The files looks like this:
#!/usr/bin/env php
<?php
define('PHPSPEC_VERSION', '2.1.1');
if (is_file($autoload = getcwd() . '/vendor/autoload.php')) {
require $autoload;
} elseif (is_file($autoload = getcwd() . '/../../autoload.php')) {
require $autoload;
}
if (is_file($autoload = __DIR__ . '/../vendor/autoload.php')) {
require($autoload);
} elseif (is_file($autoload = __DIR__ . '/../../../autoload.php')) {
require($autoload);
} else {
fwrite(STDERR,
'You must set up the project dependencies, run the following commands:' . PHP_EOL .
'curl -s http://getcomposer.org/installer | php' . PHP_EOL .
'php composer.phar install' . PHP_EOL
);
exit(1);
}
$app = new PhpSpec\Console\Application(PHPSPEC_VERSION);
$app->run();
This looks pretty odd to me. The first if/else finds my autoload then the send if/elseif/else doesn't so throws the error I'm seeing. If I comment out this section phpspec runs.
If it's checking lots of possible locations for the autoload.php why isn't it if/elseif/elseif/elseif/else. Why two separate ifs?