Commit 4dd16594 authored by Jeremy Mikola's avatar Jeremy Mikola

Reorder methods for reasons of pedantry

parent af42e76b
...@@ -79,44 +79,44 @@ class Client ...@@ -79,44 +79,44 @@ class Client
} }
/** /**
* Select a database. * Select a collection.
* *
* If a write concern or read preference is not specified, the write concern * If a write concern or read preference is not specified, the write concern
* or read preference of the Client will be applied, respectively. * or read preference of the Client will be applied, respectively.
* *
* @param string $databaseName Name of the database to select * @param string $databaseName Name of the database containing the collection
* @param string $collectionName Name of the collection to select
* @param WriteConcern $writeConcern Default write concern to apply * @param WriteConcern $writeConcern Default write concern to apply
* @param ReadPreference $readPreference Default read preference to apply * @param ReadPreference $readPreference Default read preference to apply
* @return Database * @return Collection
*/ */
public function selectDatabase($databaseName, WriteConcern $writeConcern = null, ReadPreference $readPreference = null) public function selectCollection($databaseName, $collectionName, WriteConcern $writeConcern = null, ReadPreference $readPreference = null)
{ {
$namespace = $databaseName . '.' . $collectionName;
// TODO: inherit from Manager options once PHPC-196 is implemented // TODO: inherit from Manager options once PHPC-196 is implemented
$writeConcern = $writeConcern ?: $this->writeConcern; $writeConcern = $writeConcern ?: $this->writeConcern;
$readPreference = $readPreference ?: $this->readPreference; $readPreference = $readPreference ?: $this->readPreference;
return new Database($this->manager, $databaseName, $writeConcern, $readPreference); return new Collection($this->manager, $namespace, $writeConcern, $readPreference);
} }
/** /**
* Select a collection. * Select a database.
* *
* If a write concern or read preference is not specified, the write concern * If a write concern or read preference is not specified, the write concern
* or read preference of the Client will be applied, respectively. * or read preference of the Client will be applied, respectively.
* *
* @param string $databaseName Name of the database containing the collection * @param string $databaseName Name of the database to select
* @param string $collectionName Name of the collection to select
* @param WriteConcern $writeConcern Default write concern to apply * @param WriteConcern $writeConcern Default write concern to apply
* @param ReadPreference $readPreference Default read preference to apply * @param ReadPreference $readPreference Default read preference to apply
* @return Collection * @return Database
*/ */
public function selectCollection($databaseName, $collectionName, WriteConcern $writeConcern = null, ReadPreference $readPreference = null) public function selectDatabase($databaseName, WriteConcern $writeConcern = null, ReadPreference $readPreference = null)
{ {
$namespace = $databaseName . '.' . $collectionName;
// TODO: inherit from Manager options once PHPC-196 is implemented // TODO: inherit from Manager options once PHPC-196 is implemented
$writeConcern = $writeConcern ?: $this->writeConcern; $writeConcern = $writeConcern ?: $this->writeConcern;
$readPreference = $readPreference ?: $this->readPreference; $readPreference = $readPreference ?: $this->readPreference;
return new Collection($this->manager, $namespace, $writeConcern, $readPreference); return new Database($this->manager, $databaseName, $writeConcern, $readPreference);
} }
} }
...@@ -28,53 +28,53 @@ class CollectionInfo ...@@ -28,53 +28,53 @@ class CollectionInfo
} }
/** /**
* Return the collection name. * Return the maximum number of documents to keep in the capped collection.
* *
* @return string * @return integer|null
*/ */
public function getName() public function getCappedMax()
{ {
return (string) $this->info['name']; return isset($this->info['options']['max']) ? (integer) $this->info['options']['max'] : null;
} }
/** /**
* Return the collection options. * Return the maximum size (in bytes) of the capped collection.
* *
* @return array * @return integer|null
*/ */
public function getOptions() public function getCappedSize()
{ {
return isset($this->info['options']) ? (array) $this->info['options'] : array(); return isset($this->info['options']['size']) ? (integer) $this->info['options']['size'] : null;
} }
/** /**
* Return whether the collection is a capped collection. * Return the collection name.
* *
* @return boolean * @return string
*/ */
public function isCapped() public function getName()
{ {
return ! empty($this->info['options']['capped']); return (string) $this->info['name'];
} }
/** /**
* Return the maximum number of documents to keep in the capped collection. * Return the collection options.
* *
* @return integer|null * @return array
*/ */
public function getCappedMax() public function getOptions()
{ {
return isset($this->info['options']['max']) ? (integer) $this->info['options']['max'] : null; return isset($this->info['options']) ? (array) $this->info['options'] : array();
} }
/** /**
* Return the maximum size (in bytes) of the capped collection. * Return whether the collection is a capped collection.
* *
* @return integer|null * @return boolean
*/ */
public function getCappedSize() public function isCapped()
{ {
return isset($this->info['options']['size']) ? (integer) $this->info['options']['size'] : null; return ! empty($this->info['options']['capped']);
} }
/** /**
......
...@@ -40,27 +40,6 @@ class CollectionInfoLegacyIterator extends FilterIterator implements CollectionI ...@@ -40,27 +40,6 @@ class CollectionInfoLegacyIterator extends FilterIterator implements CollectionI
parent::__construct($iterator); parent::__construct($iterator);
} }
/**
* Return the current element as a CollectionInfo instance.
*
* @see CollectionInfoIterator::current()
* @see http://php.net/iterator.current
* @return CollectionInfo
*/
public function current()
{
$info = parent::current();
// Trim the database prefix up to and including the first dot
$firstDot = strpos($info['name'], '.');
if ($firstDot !== false) {
$info['name'] = (string) substr($info['name'], $firstDot + 1);
}
return new CollectionInfo($info);
}
/** /**
* Filter out internal or invalid collections. * Filter out internal or invalid collections.
* *
...@@ -92,4 +71,25 @@ class CollectionInfoLegacyIterator extends FilterIterator implements CollectionI ...@@ -92,4 +71,25 @@ class CollectionInfoLegacyIterator extends FilterIterator implements CollectionI
return true; return true;
} }
/**
* Return the current element as a CollectionInfo instance.
*
* @see CollectionInfoIterator::current()
* @see http://php.net/iterator.current
* @return CollectionInfo
*/
public function current()
{
$info = parent::current();
// Trim the database prefix up to and including the first dot
$firstDot = strpos($info['name'], '.');
if ($firstDot !== false) {
$info['name'] = (string) substr($info['name'], $firstDot + 1);
}
return new CollectionInfo($info);
}
} }
...@@ -26,6 +26,17 @@ class DatabaseInfo ...@@ -26,6 +26,17 @@ class DatabaseInfo
$this->info = $info; $this->info = $info;
} }
/**
* Return the collection info as an array.
*
* @see http://php.net/oop5.magic#language.oop5.magic.debuginfo
* @return array
*/
public function __debugInfo()
{
return $this->info;
}
/** /**
* Return the database name. * Return the database name.
* *
...@@ -55,15 +66,4 @@ class DatabaseInfo ...@@ -55,15 +66,4 @@ class DatabaseInfo
{ {
return (boolean) $this->info['empty']; return (boolean) $this->info['empty'];
} }
/**
* Return the collection info as an array.
*
* @see http://php.net/oop5.magic#language.oop5.magic.debuginfo
* @return array
*/
public function __debugInfo()
{
return $this->info;
}
} }
...@@ -34,6 +34,17 @@ class IndexInfo implements ArrayAccess ...@@ -34,6 +34,17 @@ class IndexInfo implements ArrayAccess
$this->info = $info; $this->info = $info;
} }
/**
* Return the collection info as an array.
*
* @see http://php.net/oop5.magic#language.oop5.magic.debuginfo
* @return array
*/
public function __debugInfo()
{
return $this->info;
}
/** /**
* Return the index key. * Return the index key.
* *
...@@ -157,15 +168,4 @@ class IndexInfo implements ArrayAccess ...@@ -157,15 +168,4 @@ class IndexInfo implements ArrayAccess
{ {
throw new BadMethodCallException('IndexInfo is immutable'); throw new BadMethodCallException('IndexInfo is immutable');
} }
/**
* Return the collection info as an array.
*
* @see http://php.net/oop5.magic#language.oop5.magic.debuginfo
* @return array
*/
public function __debugInfo()
{
return $this->info;
}
} }
...@@ -61,24 +61,24 @@ class IndexInput implements Serializable ...@@ -61,24 +61,24 @@ class IndexInput implements Serializable
} }
/** /**
* Serialize the index information to BSON for index creation. * Return the index name.
* *
* @see MongoDB\Collection::createIndexes() * @param string
* @see http://php.net/bson-serializable.bsonserialize
*/ */
public function bsonSerialize() public function __toString()
{ {
return $this->index; return $this->index['name'];
} }
/** /**
* Return the index name. * Serialize the index information to BSON for index creation.
* *
* @param string * @see MongoDB\Collection::createIndexes()
* @see http://php.net/bson-serializable.bsonserialize
*/ */
public function __toString() public function bsonSerialize()
{ {
return $this->index['name']; return $this->index;
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment