拥有 PHP class 镜像 SQL 表的好方法是什么?

What's a good way to have a PHP class mirror SQL table?

我想学习PHP并选择制作一个简单的项目跟踪器作为练习。

我找不到将我的模型 class 映射到 sql 行的好(干)方法。 现在我有一个全局 $TasksColumns 并且总是检查索引是否存在:

$TasksColumnId = "Id";
$TasksColumnState = "State";
$TasksColumns = [ 
        $TasksColumnId,
        "Summary",
        "Description",
        $TasksColumnState,
        "Estimation",//EstimateDuration
        "Actual",//Duration
        "FixVersion" 
        // Add Rank
        // Add Priority
];

然后手动签入代码:

$task -> Id = $task -> valueIfExistsKeyInArray("Id", $IdSummaryDescriptionStateEstimationActualFixVer);
        $task -> Summary = $task -> valueIfExistsKeyInArray("Summary", $IdSummaryDescriptionStateEstimationActualFixVer);

完成此任务的更好方法是什么? (这样我就不必在添加新的 SQL 列时触及所有代码)

谢谢

您可以使用 Doctrine。 它是一个将数据库行映射到 php 类.

的框架

Here on wikipedia 是一些例子。这个例子是从维基百科复制过来的:

$user = new User();
$user->name = "john1";
$user->password = "doe";
$entityManager->persist($user);
$entityManager->flush();
echo "The user with id $user->id has been saved.";

这里是Doctrine tutorial。检索对象也很容易(教程中的示例):

$reporter = $entityManager->find("User", $theReporterId);

但您也可以执行更复杂的检索对象查询。