summaryrefslogtreecommitdiff
path: root/src/Configuration.php
diff options
context:
space:
mode:
authortopot <[email protected]>2018-03-09 18:52:57 +0300
committertopot <[email protected]>2018-03-09 18:52:57 +0300
commite2ceb450e96b1a66af597ae0a09792815ecbd28f (patch)
treed5a50ebf70924855a4b48cfaaeb65ffa44713007 /src/Configuration.php
parenta2db9880e856bcc6c2f49438c55d62749ed68a3b (diff)
Added: Configuration parameters array constructor injection
Diffstat (limited to 'src/Configuration.php')
-rw-r--r--src/Configuration.php130
1 files changed, 79 insertions, 51 deletions
diff --git a/src/Configuration.php b/src/Configuration.php
index de3d16a..ad429a3 100644
--- a/src/Configuration.php
+++ b/src/Configuration.php
@@ -12,48 +12,92 @@ use Psr\Log\NullLogger;
class Configuration
{
use LoggerAwareTrait;
-
+
/**
* @var int
*/
protected $maxTopCandidates = 5;
+
/**
* @var int
*/
protected $wordThreshold = 500;
+
/**
* @var bool
*/
protected $articleByLine = false;
+
/**
* @var bool
*/
protected $stripUnlikelyCandidates = true;
+
/**
* @var bool
*/
protected $cleanConditionally = true;
+
/**
* @var bool
*/
protected $weightClasses = true;
+
/**
* @var bool
*/
protected $fixRelativeURLs = false;
+
/**
* @var bool
*/
protected $substituteEntities = false;
+
/**
* @var bool
*/
protected $normalizeEntities = false;
+
+ /**
+ * @var bool
+ */
+ protected $summonCthulhu = false;
+
/**
* @var string
*/
protected $originalURL = 'http://fakehost';
-
+
+ /**
+ * Configuration constructor.
+ * @param array $params
+ */
+ public function __construct(array $params = [])
+ {
+ foreach ($params as $key => $value) {
+ $setter = "set{$key}";
+ if (method_exists($this, $setter)) {
+ call_user_func([$this, $setter], $value);
+ }
+ }
+ }
+
+ /**
+ * Returns an array-representation of configuration
+ * @return array
+ */
+ public function toArray()
+ {
+ $out = [];
+ foreach ($this as $key => $value) {
+ $getter = "get{$key}";
+ if (! is_object($value) && method_exists($this, $getter)) {
+ $out[$key] = call_user_func([$this, $getter]);
+ }
+ }
+ return $out;
+ }
+
/**
* @return LoggerInterface
*/
@@ -66,7 +110,7 @@ class Configuration
return $this->logger;
}
}
-
+
/**
* @return int
*/
@@ -74,19 +118,18 @@ class Configuration
{
return $this->maxTopCandidates;
}
-
+
/**
* @param int $maxTopCandidates
- *
* @return $this
*/
public function setMaxTopCandidates($maxTopCandidates)
{
$this->maxTopCandidates = $maxTopCandidates;
-
+
return $this;
}
-
+
/**
* @return int
*/
@@ -94,19 +137,18 @@ class Configuration
{
return $this->wordThreshold;
}
-
+
/**
* @param int $wordThreshold
- *
* @return $this
*/
public function setWordThreshold($wordThreshold)
{
$this->wordThreshold = $wordThreshold;
-
+
return $this;
}
-
+
/**
* @return bool
*/
@@ -114,19 +156,18 @@ class Configuration
{
return $this->articleByLine;
}
-
+
/**
* @param bool $articleByLine
- *
* @return $this
*/
public function setArticleByLine($articleByLine)
{
$this->articleByLine = $articleByLine;
-
+
return $this;
}
-
+
/**
* @return bool
*/
@@ -134,19 +175,18 @@ class Configuration
{
return $this->stripUnlikelyCandidates;
}
-
+
/**
* @param bool $stripUnlikelyCandidates
- *
* @return $this
*/
public function setStripUnlikelyCandidates($stripUnlikelyCandidates)
{
$this->stripUnlikelyCandidates = $stripUnlikelyCandidates;
-
+
return $this;
}
-
+
/**
* @return bool
*/
@@ -154,19 +194,18 @@ class Configuration
{
return $this->cleanConditionally;
}
-
+
/**
* @param bool $cleanConditionally
- *
* @return $this
*/
public function setCleanConditionally($cleanConditionally)
{
$this->cleanConditionally = $cleanConditionally;
-
+
return $this;
}
-
+
/**
* @return bool
*/
@@ -174,19 +213,18 @@ class Configuration
{
return $this->weightClasses;
}
-
+
/**
* @param bool $weightClasses
- *
* @return $this
*/
public function setWeightClasses($weightClasses)
{
$this->weightClasses = $weightClasses;
-
+
return $this;
}
-
+
/**
* @return bool
*/
@@ -194,19 +232,18 @@ class Configuration
{
return $this->fixRelativeURLs;
}
-
+
/**
* @param bool $fixRelativeURLs
- *
* @return $this
*/
public function setFixRelativeURLs($fixRelativeURLs)
{
$this->fixRelativeURLs = $fixRelativeURLs;
-
+
return $this;
}
-
+
/**
* @return bool
*/
@@ -214,19 +251,18 @@ class Configuration
{
return $this->substituteEntities;
}
-
+
/**
* @param bool $substituteEntities
- *
* @return $this
*/
public function setSubstituteEntities($substituteEntities)
{
$this->substituteEntities = $substituteEntities;
-
+
return $this;
}
-
+
/**
* @return bool
*/
@@ -234,19 +270,18 @@ class Configuration
{
return $this->normalizeEntities;
}
-
+
/**
* @param bool $normalizeEntities
- *
* @return $this
*/
public function setNormalizeEntities($normalizeEntities)
{
$this->normalizeEntities = $normalizeEntities;
-
+
return $this;
}
-
+
/**
* @return string
*/
@@ -254,19 +289,18 @@ class Configuration
{
return $this->originalURL;
}
-
+
/**
* @param string $originalURL
- *
* @return $this
*/
public function setOriginalURL($originalURL)
{
$this->originalURL = $originalURL;
-
+
return $this;
}
-
+
/**
* @return bool
*/
@@ -274,21 +308,15 @@ class Configuration
{
return $this->summonCthulhu;
}
-
+
/**
* @param bool $summonCthulhu
- *
* @return $this
*/
public function setSummonCthulhu($summonCthulhu)
{
$this->summonCthulhu = $summonCthulhu;
-
+
return $this;
}
-
- /**
- * @var bool
- */
- protected $summonCthulhu = false;
}