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格式是因为它在问题中被引用。您也可以使用其他格式。 –