Browse Source

removed output buffer(ob_start/ob_end_clean) usasge in MongoDbCommand profile output

master
Anton Grebnev 12 years ago
parent
commit
c0fa542b3c
  1. 58
      model/MongoDbCommand.php
  2. 2
      tests/model/MongoDbCommandTest.php

58
model/MongoDbCommand.php

@ -58,14 +58,22 @@ abstract class MongoDbCommand
return $this;
}
protected function arrayToString($array)
{
$string = '[';
if(!empty($array)) {
$string .= PHP_EOL;
}
foreach($array as $key => $value) {
$string .= "\t" . $key . ' = ' . $value . PHP_EOL;
}
$string .= ']' . PHP_EOL;
return $string;
}
abstract protected function concreteExecute();
abstract protected function checkParams();
/**
* @TODO: implement method in subclasses for Profiler
*/
abstract public function __toString();
}
class FindMongoCommand extends MongoDbCommand
@ -98,15 +106,9 @@ class FindMongoCommand extends MongoDbCommand
{
if ($this->checkParams()) {
$result = PHP_EOL . 'Collection: ' . $this->collection . PHP_EOL;
ob_start();
var_dump($this->condition);
$condition = ob_get_clean();
$result .= 'Condition: ' . $condition;
$result .= 'Condition: ' . $this->arrayToString($this->condition);
$result .= 'Type: FIND' . PHP_EOL;
ob_start();
var_dump($this->fields);
$fields = ob_get_clean();
$result .= 'Fields: ' . $fields . PHP_EOL;
$result .= 'Fields: ' . $this->arrayToString($this->fields);
$mult = $this->multiple ? 'TRUE' : 'FALSE';
$result .= 'Multiple fields: ' . $mult . PHP_EOL;
return $result;
@ -145,10 +147,7 @@ class CountMongoCommand extends MongoDbCommand
if ($this->checkParams()) {
$result = PHP_EOL . 'Collection: ' . $this->collection . PHP_EOL;
$result .= 'Type: COUNT' . PHP_EOL;
ob_start();
var_dump($this->condition);
$condition = ob_get_clean();
$result .= 'Condition: ' . $condition;
$result .= 'Condition: ' . $this->arrayToString($this->condition);
$result .= 'Limit: ' . $this->limit . PHP_EOL;
$result .= 'Skip: ' . $this->skip . PHP_EOL;
return $result;
@ -201,10 +200,7 @@ class InsertMongoCommand extends MongoDbCommand
if ($this->checkParams()) {
$result = PHP_EOL . 'Collection: ' . $this->collection . PHP_EOL;
$result .= 'Type: INSERT' . PHP_EOL;
ob_start();
var_dump($this->data);
$data = ob_get_clean();
$result .= 'Data: ' . $data;
$result .= 'Data: ' . $this->arrayToString($this->data);
$mult = $this->multiple ? 'TRUE' : 'FALSE';
$result .= 'Bulk insert: ' . $mult . PHP_EOL;
$safe = $this->safe ? 'TRUE' : 'FALSE';
@ -250,14 +246,8 @@ class UpdateMongoCommand extends MongoDbCommand
if ($this->checkParams()) {
$result = PHP_EOL . 'Collection: ' . $this->collection . PHP_EOL;
$result .= 'Type: UPDATE' . PHP_EOL;
ob_start();
var_dump($this->condition);
$condition = ob_get_clean();
$result .= 'Condition: ' . $condition;
ob_start();
var_dump($this->data);
$data = ob_get_clean();
$result .= 'Data: ' . $data;
$result .= 'Condition: ' . $this->arrayToString($this->condition);
$result .= 'Data: ' . $this->arrayToString($this->data);
$mult = $this->multiple ? 'TRUE' : 'FALSE';
$result .= 'Multiple fields: ' . $mult . PHP_EOL;
$upsert = $this->upsert ? 'TRUE' : 'FALSE';
@ -296,10 +286,7 @@ class RemoveMongoCommand extends MongoDbCommand
if ($this->checkParams()) {
$result = PHP_EOL . 'Collection: ' . $this->collection . PHP_EOL;
$result .= 'Type: REMOVE' . PHP_EOL;
ob_start();
var_dump($this->condition);
$condition = ob_get_clean();
$result .= 'Condition: ' . $condition;
$result .= 'Condition: ' . $this->arrayToString($this->condition);
$safe = $this->safe ? 'TRUE' : 'FALSE';
$result .= 'Safe operation: ' . $safe . PHP_EOL;
return $result;
@ -337,10 +324,7 @@ class CommandMongoCommand extends MongoDbCommand
if ($this->checkParams()) {
$result = PHP_EOL . 'Collection: ' . $this->collection . PHP_EOL;
$result .= 'Type: COMMAND' . PHP_EOL;
ob_start();
var_dump($this->command);
$command = ob_get_clean();
$result .= 'Command: ' . $command;
$result .= 'Command: ' . $this->arrayToString($this->command);
return $result;
} else {
return 'Command properties not set';

2
tests/model/MongoDbCommandTest.php

@ -334,6 +334,7 @@ class MongoDbCommandTest extends PHPUnit_Framework_TestCase
$cmd = MongoCommandBuilder::factory(MongoCommandBuilder::FIND, new CollectionMock());
$cmd->bindParam('condition', array());
$this->assertStringStartsWith("\n" . 'Collection: CollectionMock', $cmd->__toString());
$this->assertContains('Condition: ' . '[]' . PHP_EOL, $cmd->__toString());
$cmd = MongoCommandBuilder::factory(MongoCommandBuilder::COMMAND, new CollectionMock());
$this->assertSame('Command properties not set', $cmd->__toString());
@ -347,6 +348,7 @@ class MongoDbCommandTest extends PHPUnit_Framework_TestCase
->bindParam('safe', true);
$this->assertStringStartsWith("\n" . 'Collection: ', $cmd->__toString());
$this->assertContains('Bulk insert: FALSE', $cmd->__toString());
$this->assertContains('Data: ' . '[' . PHP_EOL . "\tname = insert" . PHP_EOL . ']' . PHP_EOL, $cmd->__toString());
$cmd = MongoCommandBuilder::factory(MongoCommandBuilder::INSERT, $this->collection);
$this->assertSame('Command properties not set', $cmd->__toString());

Loading…
Cancel
Save