public function __construct($directoryOrContainer, $options = array(), ValueValidator $validator = null)
{
$container = $directoryOrContainer;
if (is_string($directoryOrContainer)) {
$container = new LocalContainer($directoryOrContainer);
}
if (!$container instanceof ContainerInterface) {
throw new InvalidContainerException('Destination container for uploaded files is not valid');
}
$this->container = $container;
// create the validator
if (!$validator) {
$validator = new ValueValidator();
}
$this->validator = $validator;
// set options
$availableOptions = array(static::OPTION_PREFIX => 'setPrefix', static::OPTION_OVERWRITE => 'setOverwrite', static::OPTION_AUTOCONFIRM => 'setAutoconfirm');
foreach ($availableOptions as $key => $method) {
if (isset($options[$key])) {
$this->{$method}($options[$key]);
}
}
}