Ошибка обновления генератора документов Sami API: "Каталог / / не существует ('/')" - PullRequest
0 голосов
/ 17 апреля 2019

Я использую 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 для различных каталогов (корневой, подкаталог, каталог-брат, родительский каталог).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...