拥有 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);
但您也可以执行更复杂的检索对象查询。
我想学习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);
但您也可以执行更复杂的检索对象查询。