mya-zaki / laravel-schemaspy-sample

0 stars 0 forks source link

Call to undefined function ast\parse_file() #2

Closed RNm-dove closed 4 years ago

RNm-dove commented 4 years ago

composer require --dev mya-zaki/laravel-schemaspy-meta をした後、 php artisan schemaspy-meta:generate をしたところ、SchemaMeta.phpにおいて\ast\parse_file()が定義されていないとなりました。 なにか解決策はありませか?

Laravel Framework 6.5.2 Composer 1.7.3

-bash-4.2$ php artisan schemaspy-meta:generate App\\Models
Models path: app/Models

   Symfony\Component\Debug\Exception\FatalThrowableError  : Call to undefined function ast\parse_file()

  at /var/project/ReCORE.backend.dev004/vendor/mya-zaki/laravel-schemaspy-meta/src/SchemaMeta.php:19
    15|     public static function generate($files, $namespace, $xml_path)
    16|     {
    17|         $relationship_list = [];
    18|         foreach ($files as $target_file) {
  > 19|             $parsed_ast = \ast\parse_file($target_file, 60);
    20| 
    21|             $relationships = new Relationships($parsed_ast, $namespace);
    22|             $relationship_list = array_merge($relationship_list, $relationships->get());
    23|         }

  Exception trace:

  1   MyaZaki\LaravelSchemaspyMeta\SchemaMeta::generate("App\Models", "/var/project/ReCORE.backend.dev004/schemaspy-meta.xml")
      /var/project/ReCORE.backend.dev004/vendor/mya-zaki/laravel-schemaspy-meta/src/Console/GenerateSchemaMetaCommand.php:100

  2   MyaZaki\LaravelSchemaspyMeta\Console\GenerateSchemaMetaCommand::handle()
      /var/project/ReCORE.backend.dev004/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32

  Please use the argument -v to see more details.
RNm-dove commented 4 years ago

解決しました。

https://github.com/nikic/php-ast のサイトに従って pecl install ast をして php.ini に extension=ast.so を追加したらできました。

mya-zaki commented 4 years ago

返答できずすみませんでした。 ご解決されたようでよかったです。 READMEにastが必要な旨追記します。ご連絡ありがとうございました。