3
有沒有辦法創建和修改動態數據庫中的實體和表(從PHP腳本)?學說動態創建一個實體
例如,我想生成一個數組的實體:
fields{
id: integer,
name: string,
... and so on
}
而不是生成的表在BD
我只知道一個簡單的解決方案:創建陽明海運或XML文件,從我的腳本運行控制檯命令,或使用DBAL
有沒有辦法創建和修改動態數據庫中的實體和表(從PHP腳本)?學說動態創建一個實體
例如,我想生成一個數組的實體:
fields{
id: integer,
name: string,
... and so on
}
而不是生成的表在BD
我只知道一個簡單的解決方案:創建陽明海運或XML文件,從我的腳本運行控制檯命令,或使用DBAL
我只知道一個簡單的解決方案:創建陽明海運或XML文件,並從我的腳本運行控制檯命令,或使用DBAL
您還可以generate an entity from command line,例如:
$ php app/console generate:doctrine:entity --no-interaction \
--entity=AcmeBlogBundle:Post \
--fields="id:integer title:string(100) body:text" \
--format=xml
這使用SensioGeneratorBundle,即defined only in dev
and test
environments。
所以,這是一個有點哈克但你需要調用與正確的環境中,該命令:
$ php app/console generate:doctrine:entity […] --env=dev
的Process component可以爲了推出這個命令可以使用。
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
$command = 'php app/console generate:doctrine:entity --no-interaction '.
'--entity=AcmeBlogBundle:Post '.
'--fields="id:integer title:string(100) body:text" '.
'--format=xml';
$process = new Process($command);
$process->run();
// executes after the command finishes
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo $process->getOutput();
所以這將是生產系統的解決方案,以及:
所以,你可能有這樣的事情結束了?和「--format = xml」部分生成一個表示實體的xml文件? – emfi
我不會推薦這個生產系統,除非它經過嚴格測試。我使用XML格式是因爲它在問題中被引用。您也可以使用其他格式。 –