Я использую v4.1.4 этого форка репозитория fabpot / Sami, поскольку оригинал больше не поддерживается.Разветвленное репо не принимает проблем, поэтому я публикую здесь в надежде на некоторые идеи о причине проблемы.
https://github.com/blueend-ag/Sami
Я продолжаю получать эту ошибку при попытке запустить команду обновления с использованием файла .phar.
php ./sami_v4.1.4.phar update ./sami.config.php -v
Updating project
In FilesystemLoader.php line 106:
[Twig\Error\LoaderError]
The "/" directory does not exist ("/").
Странно, что это происходит только тогда, когдаиспользуя файл .phar.Если я извлекаю phar и запускаю команду, используя файл sami.php из извлеченного каталога, она работает отлично.Есть идеи, что может вызвать проблему?Проблема возникает только с phar из этой вилки.Phar из оригинального репозитория также отлично работает.
Вот полная трассировка стека:
php ./sami_v4.1.4.phar update ./sami.config.php -v
Updating project
In FilesystemLoader.php line 106:
[Twig\Error\LoaderError]
The "/" directory does not exist ("/").
Exception trace:
() at phar://F:/xxx/sami_v4.1.4.phar/vendor/twig/twig/src/Loader/FilesystemLoader.php:106
Twig\Loader\FilesystemLoader->addPath() at phar://F:/xxx/sami_v4.1.4.phar/vendor/twig/twig/src/Loader/FilesystemLoader.php:87
Twig\Loader\FilesystemLoader->setPaths() at phar://F:/xxx/sami_v4.1.4.phar/vendor/twig/twig/src/Loader/FilesystemLoader.php:45
Twig\Loader\FilesystemLoader->__construct() at phar://F:/xxx/sami_v4.1.4.phar/Sami/Sami.php:161
Sami\Sami->Sami\{closure}() at phar://F:/xxx/sami_v4.1.4.phar/vendor/pimple/pimple/src/Pimple/Container.php:118
Pimple\Container->offsetGet() at phar://F:/xxx/sami_v4.1.4.phar/Sami/Sami.php:135
Sami\Sami->Sami\{closure}() at phar://F:/xxx/sami_v4.1.4.phar/vendor/pimple/pimple/src/Pimple/Container.php:118
Pimple\Container->offsetGet() at phar://F:/xxx/sami_v4.1.4.phar/Sami/Sami.php:80
Sami\Sami->Sami\{closure}() at phar://F:/xxx/sami_v4.1.4.phar/vendor/pimple/pimple/src/Pimple/Container.php:118
Pimple\Container->offsetGet() at phar://F:/xxx/sami_v4.1.4.phar/Sami/Console/Command/UpdateCommand.php:53
Sami\Console\Command\UpdateCommand->execute() at phar://F:/xxx/sami_v4.1.4.phar/vendor/symfony/console/Command/Command.php:255
Symfony\Component\Console\Command\Command->run() at phar://F:/xxx/sami_v4.1.4.phar/vendor/symfony/console/Application.php:908
Symfony\Component\Console\Application->doRunCommand() at phar://F:/xxx/sami_v4.1.4.phar/vendor/symfony/console/Application.php:269
Symfony\Component\Console\Application->doRun() at phar://F:/xxx/sami_v4.1.4.phar/vendor/symfony/console/Application.php:145
Symfony\Component\Console\Application->run() at phar://F:/xxx/sami_v4.1.4.phar/sami.php:13
include() at F:\xxx\sami_v4.1.4.phar:9
sami.config.php
use Sami\Sami;
use Sami\RemoteRepository\GitLabRemoteRepository;
use Symfony\Component\Finder\Finder;
use Sami\Version\GitVersionCollection;
$dir = dirname(__DIR__,1) . '/my-application/app';
$iterator = Finder::create()
->files()
->name('*.php')
->exclude('node_modules')
->exclude('resources')
->exclude('database')
->exclude('config')
->exclude('routes')
->exclude('bootstrap')
->exclude('storage')
->exclude('tests')
->exclude('vendor')
->in($dir);
$versions = GitVersionCollection::create($dir)
->add('release/v0.1', 'v0.1')
->add('release/v0.2', 'v0.2')
->add('release/v0.3', 'v0.3')
->add('release/v1.0', 'v1.0')
->add('release/v1.1', 'v1.1')
->add('release/v1.1', 'v1.1')
->add('develop', 'develop')
->add('master', 'master');
return new Sami($iterator, [
'versions' => $versions,
'theme' => 'default',
'title' => 'API Docs',
'build_dir' => __DIR__ . '/docs/api/%version%',
'cache_dir' => __DIR__ . '/docs/api/cache/%version%',
'remote_repository' => new GitLabRemoteRepository('test/test', dirname($dir), 'https://gitlab.com/'),
]);
Отладка принятадо сих пор: - Использовать абсолютные пути dir в конфигурации - Извлекать и перекомпилировать файл phar - Изменить расположение sami_v4.1.4.phar
и sami.config.php
для различных каталогов (корневой, подкаталог, каталог-брат, родительский каталог).