我可能会以PHP开发人员的身份通过,但我不会“得到”面向对象的一面,而且我很快将其整理出来。
在代码片段中,我编写了一些代码,用于从mongoDB中提取一些信息。我意识到我已经在那里使用了一些类但我没有构建任何类 - 它们只是MongoDB驱动程序提供的。 在foreach循环中,我有一些从MongoDB打印出来的变量。我想把foreach循环变成一个类,这样我就可以调用类似的东西:
print->Environment
print->Architecture
这使它美观,干净,简单。我想如果有人可以帮助我从我已经写过的东西中创建一个类,它可以帮助我“获取”类和对象。感谢所有人的帮助。
请考虑以下事项:
$gethost=$_GET['q'];
try {
// open connection to MongoDB server
$conn = new Mongo('localhost');
// access database
$db = $conn->factdb;
//authenticate
$db->authenticate('username','password');
// access collection
$collection = $db->hosts;
// define what to find
$host = array(
'host' => $gethost
);
// disconnect from server
$conn->close();
} catch (MongoConnectionException $e) {
die('Error connecting to MongoDB server');
} catch (MongoException $e) {
die('Error: ' . $e->getMessage());
}
$cursor = $collection->find($host);
foreach ($cursor as $value) {
echo '<tr><td><b>Environment</b></td><td>'.$value['facter']['environment']['value'].'</td><td>'.date("M j Y",$value['facter']['environment']['created_at']).'</td><td>'.date("M j Y",$value['facter']['environment']['updated_at']).'</td></tr>';
echo '<tr><td><b>FQDN</b></td><td>'.$value['facter']['fqdn']['value'].'</td><td>'.date("M j Y",$value['facter']['fqdn']['created_at']).'</td><td>'.date("M j Y",$value['facter']['fqdn']['updated_at']).'</td></tr>';
echo '<tr><td><b>Model</b></td><td>'.$value['allocations']['model']['value'].'</td><td>'.date("M j Y",$value['allocations']['model']['created_at']).'</td><td>'.date("M j Y",$value['allocations']['model']['updated_at']).'</td></tr>';
}
答案 0 :(得分:4)
在我看来,你完全不了解OOP(除了使用->
访问属性)。别担心,基础知识并不难学。您应该从The PHP Manual的OOP章节开始。
答案 1 :(得分:0)
首先你可能想要
$Environment->print()
$Architecture->print()
不
print->Environment
print->Architecture
其次,除非我们更多地了解环境和架构数据及其使用方式,否则我们将无法为您创建可用的类。
第三,通过查看如何实现对象和类,你将不会“获得”OOP,你应该学习封装,继承,抽象等。然后担心实现。