このコマンドを使わずにdoctrineにスキーマテーブルを自動的に作成させる方法はありますか?
doctrine:schema:update --force
SchemaToolとEntityManagerを使用すると、次のことができます。
$schemaTool = new \Doctrine\ORM\Tools\SchemaTool($entityManager);
$classes = $entityManager->getMetadataFactory()->getAllMetadata();
$schemaTool->createSchema($classes);
何をしたいのかよくわかりませんが、phpコードからやりたい場合は、doctrineコマンドがどのように機能するかを確認して、コードをコピーできます。ここで見つけることができます:
vendor/symfony/src/Symfony/Bundle/DoctrineBundle/Command/CreateDatabaseDoctrineCommand.php
execute メソッドを確認すると、どのように実行されるかがわかります。どうやら、DBAL DriverManager を介して接続を取得する必要があるようです。これにより、createDatabase メソッドを持つスキーマ オブジェクトにアクセスできるようになります。私はこれを自分で試していません。