diff --git a/src/B8Framework/Model.php b/src/B8Framework/Model.php deleted file mode 100644 index 7c0784ca..00000000 --- a/src/B8Framework/Model.php +++ /dev/null @@ -1,194 +0,0 @@ -data = array_merge($this->data, $initialData); - } - - $this->cache = new ArrayCache(); - } - - /** - * @return string - */ - public function getTableName() - { - return $this->tableName; - } - - /** - * @return array - */ - public function getDataArray() - { - return $this->data; - } - - /** - * @return array - */ - public function getModified() - { - return $this->modified; - } - - /** - * @param array $values - */ - public function setValues(array $values) - { - foreach ($values as $key => $value) { - if (isset($this->setters[$key])) { - $func = $this->setters[$key]; - - if ($value === 'null') { - $value = null; - } elseif ($value === 'true') { - $value = true; - } elseif ($value === 'false') { - $value = false; - } - - $this->{$func}($value); - } - } - } - - /** - * @param string $column - */ - protected function setModified($column) - { - $this->modified[$column] = $column; - } - - /** - * @param string $name - * @param mixed $value - * - * @throws HttpException\ValidationException - */ - protected function validateString($name, $value) - { - if (!is_string($value) && !is_null($value)) { - throw new HttpException\ValidationException('Column "', $name . '" must be a string.'); - } - } - - /** - * @param string $name - * @param mixed $value - * - * @throws HttpException\ValidationException - */ - protected function validateInt($name, &$value) - { - if (is_bool($value)) { - $value = $value ? 1 : 0; - } - - if (!is_numeric($value) && !is_null($value)) { - throw new HttpException\ValidationException('Column "', $name . '" must be an integer.'); - } - - if (!is_int($value) && !is_null($value)) { - $value = (int)$value; - } - } - - /** - * @param string $name - * @param mixed $value - * - * @throws HttpException\ValidationException - */ - protected function validateFloat($name, &$value) - { - if (!is_numeric($value) && !is_null($value)) { - throw new HttpException\ValidationException('Column "', $name . '" must be a float.'); - } - - if (!is_float($value) && !is_null($value)) { - $value = (float)$value; - } - } - - /** - * @param string $name - * @param mixed $value - * - * @throws HttpException\ValidationException - */ - protected function validateDate($name, &$value) - { - if (is_string($value)) { - $value = empty($value) ? null : new \DateTime($value); - } - - if ((!is_object($value) || !($value instanceof \DateTime)) && !is_null($value)) { - throw new HttpException\ValidationException('Column "', $name . '" must be a date object.'); - } - - $value = empty($value) ? null : $value->format('Y-m-d H:i:s'); - } - - /** - * @param string $name - * @param mixed $value - * - * @throws HttpException\ValidationException - */ - protected function validateNotNull($name, $value) - { - if (is_null($value)) { - throw new HttpException\ValidationException('Column "', $name . '" must not be null.'); - } - } - - /** - * @param string $key - * - * @return mixed - */ - public function __get($key) - { - if (array_key_exists($key, $this->getters)) { - $getter = $this->getters[$key]; - return $this->{$getter}(); - } - - return null; - } - - /** - * @param string $key - * @param mixed $value - * - * @return mixed - */ - public function __set($key, $value) - { - if (array_key_exists($key, $this->setters)) { - $setter = $this->setters[$key]; - return $this->{$setter}($value); - } - } -} diff --git a/src/B8Framework/Store.php b/src/B8Framework/Store.php index bef8e11a..19e36977 100644 --- a/src/B8Framework/Store.php +++ b/src/B8Framework/Store.php @@ -2,6 +2,8 @@ namespace b8; +use PHPCensor\Model; + abstract class Store { /** diff --git a/src/PHPCensor/Helper/Lang.php b/src/PHPCensor/Helper/Lang.php index 5c452942..0e340a02 100644 --- a/src/PHPCensor/Helper/Lang.php +++ b/src/PHPCensor/Helper/Lang.php @@ -37,13 +37,13 @@ class Lang /** * Get a specific string from the language file. * - * @param string $string * @param array ...$params * * @return string */ - public static function get($string, ...$params) + public static function get(...$params) { + $string = $params[0]; if (array_key_exists($string, self::$strings)) { $params[0] = self::$strings[$string]; return call_user_func_array('sprintf', $params); diff --git a/src/PHPCensor/Model.php b/src/PHPCensor/Model.php index b11c4ada..e7c485fc 100644 --- a/src/PHPCensor/Model.php +++ b/src/PHPCensor/Model.php @@ -2,6 +2,149 @@ namespace PHPCensor; -abstract class Model extends \b8\Model +use b8\Exception\HttpException; + +class Model { + /** + * @var array + */ + protected $getters = []; + + /** + * @var array + */ + protected $setters = []; + + /** + * @var array + */ + protected $data = []; + + /** + * @var array + */ + protected $modified = []; + + /** + * @var string + */ + protected $tableName; + + /** + * @param array $initialData + */ + public function __construct($initialData = []) + { + if (is_array($initialData)) { + foreach ($initialData as $index => $item) { + if (!array_key_exists($index, $this->data)) { + throw new \InvalidArgumentException(sprintf( + 'Model "%s" doesn\'t have field "%s"', + get_called_class(), + $index + )); + } + + $this->data[$index] = $item; + } + } + } + + /** + * @return string + */ + public function getTableName() + { + return $this->tableName; + } + + /** + * @return array + */ + public function getDataArray() + { + return $this->data; + } + + /** + * @return array + */ + public function getModified() + { + return $this->modified; + } + + /** + * @param string $column + */ + protected function setModified($column) + { + $this->modified[$column] = $column; + } + + /** + * @param string $name + * @param mixed $value + * + * @throws HttpException\ValidationException + */ + protected function validateString($name, $value) + { + if (!is_string($value) && !is_null($value)) { + throw new HttpException\ValidationException('Column "' . $name . '" must be a string.'); + } + } + + /** + * @param string $name + * @param mixed $value + * + * @throws HttpException\ValidationException + */ + protected function validateInt($name, $value) + { + if (!is_integer($value) && !is_null($value)) { + throw new HttpException\ValidationException('Column "' . $name . '" must be an integer.'); + } + } + + /** + * @param string $name + * @param mixed $value + * + * @throws HttpException\ValidationException + */ + protected function validateFloat($name, $value) + { + if (!is_float($value) && !is_null($value)) { + throw new HttpException\ValidationException('Column "' . $name . '" must be a float.'); + } + } + + /** + * @param string $name + * @param mixed $value + * + * @throws HttpException\ValidationException + */ + protected function validateDate($name, $value) + { + if (!($value instanceof \DateTime) && !is_null($value)) { + throw new HttpException\ValidationException('Column "', $name . '" must be a date object.'); + } + } + + /** + * @param string $name + * @param mixed $value + * + * @throws HttpException\ValidationException + */ + protected function validateNotNull($name, $value) + { + if (is_null($value)) { + throw new HttpException\ValidationException('Column "', $name . '" must not be null.'); + } + } } diff --git a/src/PHPCensor/Model/Build.php b/src/PHPCensor/Model/Build.php index ba443e78..4490303a 100644 --- a/src/PHPCensor/Model/Build.php +++ b/src/PHPCensor/Model/Build.php @@ -124,9 +124,6 @@ class Build extends Model 'environment' => 'setEnvironment', 'source' => 'setSource', 'user_id' => 'setUserId', - - // Foreign key setters: - 'Project' => 'setProject', ]; /** @@ -140,7 +137,7 @@ class Build extends Model } /** - * @param $value int + * @param integer $value */ public function setId($value) { @@ -167,7 +164,7 @@ class Build extends Model } /** - * @param $value int + * @param integer $value */ public function setProjectId($value) { @@ -194,7 +191,7 @@ class Build extends Model } /** - * @param $value string + * @param string $value */ public function setCommitId($value) { @@ -221,7 +218,7 @@ class Build extends Model } /** - * @param $value int + * @param integer $value */ public function setStatus($value) { @@ -248,7 +245,7 @@ class Build extends Model } /** - * @param $value string + * @param string $value */ public function setLog($value) { @@ -274,7 +271,7 @@ class Build extends Model } /** - * @param $value string + * @param string $value */ public function setBranch($value) { @@ -305,17 +302,19 @@ class Build extends Model } /** - * @param $value \DateTime + * @param \DateTime $value */ - public function setCreateDate($value) + public function setCreateDate(\DateTime $value) { $this->validateDate('create_date', $value); - if ($this->data['create_date'] === $value) { + $stringValue = $value->format('Y-m-d H:i:s'); + + if ($this->data['create_date'] === $stringValue) { return; } - $this->data['create_date'] = $value; + $this->data['create_date'] = $stringValue; $this->setModified('create_date'); } @@ -335,17 +334,19 @@ class Build extends Model } /** - * @param $value \DateTime + * @param \DateTime $value */ - public function setStartDate($value) + public function setStartDate(\DateTime $value) { $this->validateDate('start_date', $value); - if ($this->data['start_date'] === $value) { + $stringValue = $value->format('Y-m-d H:i:s'); + + if ($this->data['start_date'] === $stringValue) { return; } - $this->data['start_date'] = $value; + $this->data['start_date'] = $stringValue; $this->setModified('start_date'); } @@ -365,17 +366,19 @@ class Build extends Model } /** - * @param $value \DateTime + * @param \DateTime $value */ - public function setFinishDate($value) + public function setFinishDate(\DateTime $value) { $this->validateDate('finish_date', $value); - if ($this->data['finish_date'] === $value) { + $stringValue = $value->format('Y-m-d H:i:s'); + + if ($this->data['finish_date'] === $stringValue) { return; } - $this->data['finish_date'] = $value; + $this->data['finish_date'] = $stringValue; $this->setModified('finish_date'); } @@ -391,7 +394,7 @@ class Build extends Model } /** - * @param $value string + * @param string $value */ public function setCommitterEmail($value) { @@ -417,7 +420,7 @@ class Build extends Model } /** - * @param $value string + * @param string $value */ public function setCommitMessage($value) { @@ -443,7 +446,7 @@ class Build extends Model } /** - * @param $value string + * @param string $value */ public function setTag($value) { @@ -469,7 +472,7 @@ class Build extends Model } /** - * @param $value integer + * @param integer $value */ public function setSource($value) { @@ -495,7 +498,7 @@ class Build extends Model } /** - * @param $value integer + * @param integer $value */ public function setUserId($value) { @@ -522,7 +525,7 @@ class Build extends Model } /** - * @param $value string + * @param string $value */ public function setEnvironment($value) { @@ -540,8 +543,9 @@ class Build extends Model /** * Set the value of status only if it synced with db. Must not be null. * - * @param $value int - * @return bool + * @param integer $value + * + * @return boolean */ public function setStatusSync($value) { @@ -561,9 +565,9 @@ class Build extends Model /** * Return a value from the build's "extra" JSON array. * - * @param null $key + * @param string|null $key * - * @return mixed|null|string + * @return array|string|null */ public function getExtra($key = null) { @@ -581,7 +585,7 @@ class Build extends Model } /** - * @param $value string + * @param string $value */ public function setExtra($value) { @@ -599,8 +603,8 @@ class Build extends Model /** * Set the value of extra. * - * @param $name string - * @param $value mixed + * @param string $name + * @param mixed $value */ public function setExtraValue($name, $value) { @@ -615,7 +619,7 @@ class Build extends Model /** * Set the values of extra. * - * @param $values mixed + * @param mixed $values */ public function setExtraValues($values) { @@ -643,37 +647,6 @@ class Build extends Model return Factory::getStore('Project', 'PHPCensor')->getById($key); } - /** - * Set Project - Accepts an ID, an array representing a Project or a Project model. - * - * @param $value mixed - */ - public function setProject($value) - { - // Is this an instance of Project? - if ($value instanceof Project) { - return $this->setProjectObject($value); - } - - // Is this an array representing a Project item? - if (is_array($value) && !empty($value['id'])) { - return $this->setProjectId($value['id']); - } - - // Is this a scalar value representing the ID of this foreign key? - return $this->setProjectId($value); - } - - /** - * Set Project - Accepts a Project model. - * - * @param $value Project - */ - public function setProjectObject(Project $value) - { - return $this->setProjectId($value->getId()); - } - /** * Get BuildError models by BuildId for this Build. * @@ -763,6 +736,9 @@ class Build extends Model /** * Store build metadata + * + * @param string $key + * @param string $value */ public function storeMeta($key, $value) { @@ -813,7 +789,9 @@ class Build extends Model /** * Get an array of plugins to run if there's no .php-censor.yml file. + * * @param Builder $builder + * * @return array */ protected function getZeroConfigPlugins(Builder $builder) @@ -982,7 +960,7 @@ class Build extends Model /** * Get the number of seconds a build has been running for. * - * @return int + * @return integer */ public function getDuration() { @@ -1044,7 +1022,7 @@ class Build extends Model /** * Create an SSH key file on disk for this build. * - * @param string $cloneTo + * @param string $cloneTo * * @return string */ diff --git a/src/PHPCensor/Model/BuildError.php b/src/PHPCensor/Model/BuildError.php index a031b395..ba9ff575 100644 --- a/src/PHPCensor/Model/BuildError.php +++ b/src/PHPCensor/Model/BuildError.php @@ -71,13 +71,10 @@ class BuildError extends Model 'create_date' => 'setCreateDate', 'hash' => 'setHash', 'is_new' => 'setIsNew', - - // Foreign key setters: - 'Build' => 'setBuild', ]; /** - * @return int + * @return integer */ public function getId() { @@ -87,7 +84,7 @@ class BuildError extends Model } /** - * @return int + * @return integer */ public function getBuildId() { @@ -117,7 +114,7 @@ class BuildError extends Model } /** - * @return int + * @return integer */ public function getLineStart() { @@ -127,7 +124,7 @@ class BuildError extends Model } /** - * @return int + * @return integer */ public function getLineEnd() { @@ -137,7 +134,7 @@ class BuildError extends Model } /** - * @return int + * @return integer */ public function getSeverity() { @@ -191,7 +188,7 @@ class BuildError extends Model } /** - * @param $value int + * @param integer $value */ public function setId($value) { @@ -208,7 +205,7 @@ class BuildError extends Model } /** - * @param $value int + * @param integer $value */ public function setBuildId($value) { @@ -225,7 +222,7 @@ class BuildError extends Model } /** - * @param $value string + * @param string $value */ public function setPlugin($value) { @@ -242,7 +239,7 @@ class BuildError extends Model } /** - * @param $value string + * @param string $value */ public function setFile($value) { @@ -258,7 +255,7 @@ class BuildError extends Model } /** - * @param $value int + * @param integer $value */ public function setLineStart($value) { @@ -274,7 +271,7 @@ class BuildError extends Model } /** - * @param $value int + * @param integer $value */ public function setLineEnd($value) { @@ -290,7 +287,7 @@ class BuildError extends Model } /** - * @param $value int + * @param integer $value */ public function setSeverity($value) { @@ -307,7 +304,7 @@ class BuildError extends Model } /** - * @param $value string + * @param string $value */ public function setMessage($value) { @@ -324,24 +321,26 @@ class BuildError extends Model } /** - * @param $value \DateTime + * @param \DateTime $value */ - public function setCreateDate($value) + public function setCreateDate(\DateTime $value) { $this->validateNotNull('create_date', $value); $this->validateDate('create_date', $value); - if ($this->data['create_date'] === $value) { + $stringValue = $value->format('Y-m-d H:i:s'); + + if ($this->data['create_date'] === $stringValue) { return; } - $this->data['create_date'] = $value; + $this->data['create_date'] = $stringValue; $this->setModified('create_date'); } /** - * @param $value string + * @param string $value */ public function setHash($value) { @@ -358,7 +357,7 @@ class BuildError extends Model } /** - * @param $value int + * @param integer $value */ public function setIsNew($value) { @@ -377,56 +376,16 @@ class BuildError extends Model /** * Get the Build model for this BuildError by Id. * - * @return \PHPCensor\Model\Build + * @return \PHPCensor\Model\Build|null */ public function getBuild() { - $key = $this->getBuildId(); - - if (empty($key)) { + $buildId = $this->getBuildId(); + if (empty($buildId)) { return null; } - $cacheKey = 'php-censor.build-' . $key; - $rtn = $this->cache->get($cacheKey); - - if (empty($rtn)) { - $rtn = Factory::getStore('Build', 'PHPCensor')->getById($key); - $this->cache->set($cacheKey, $rtn); - } - - return $rtn; - } - - /** - * Set Build - Accepts an ID, an array representing a Build or a Build model. - * - * @param $value mixed - */ - public function setBuild($value) - { - // Is this an instance of Build? - if ($value instanceof Build) { - return $this->setBuildObject($value); - } - - // Is this an array representing a Build item? - if (is_array($value) && !empty($value['id'])) { - return $this->setBuildId($value['id']); - } - - // Is this a scalar value representing the ID of this foreign key? - return $this->setBuildId($value); - } - - /** - * Set Build - Accepts a Build model. - * - * @param $value Build - */ - public function setBuildObject(Build $value) - { - return $this->setBuildId($value->getId()); + return Factory::getStore('Build', 'PHPCensor')->getById($buildId); } /** diff --git a/src/PHPCensor/Model/BuildMeta.php b/src/PHPCensor/Model/BuildMeta.php index f1bd45c4..0ec7fdb5 100644 --- a/src/PHPCensor/Model/BuildMeta.php +++ b/src/PHPCensor/Model/BuildMeta.php @@ -45,13 +45,10 @@ class BuildMeta extends Model 'build_id' => 'setBuildId', 'meta_key' => 'setMetaKey', 'meta_value' => 'setMetaValue', - - // Foreign key setters: - 'Build' => 'setBuild', ]; /** - * @return int + * @return integer */ public function getId() { @@ -61,7 +58,7 @@ class BuildMeta extends Model } /** - * @return int + * @return integer */ public function getBuildId() { @@ -91,7 +88,7 @@ class BuildMeta extends Model } /** - * @param int $value + * @param integer $value */ public function setId($value) { @@ -108,7 +105,7 @@ class BuildMeta extends Model } /** - * @param int $value + * @param integer $value */ public function setBuildId($value) { @@ -125,7 +122,7 @@ class BuildMeta extends Model } /** - * @param $value string + * @param string $value */ public function setMetaKey($value) { @@ -142,7 +139,7 @@ class BuildMeta extends Model } /** - * @param $value string + * @param string $value */ public function setMetaValue($value) { @@ -165,51 +162,11 @@ class BuildMeta extends Model */ public function getBuild() { - $key = $this->getBuildId(); - - if (empty($key)) { + $buildId = $this->getBuildId(); + if (empty($buildId)) { return null; } - $cacheKey = 'php-censor.build-' . $key; - $rtn = $this->cache->get($cacheKey); - - if (empty($rtn)) { - $rtn = Factory::getStore('Build', 'PHPCensor')->getById($key); - $this->cache->set($cacheKey, $rtn); - } - - return $rtn; - } - - /** - * Set Build - Accepts an ID, an array representing a Build or a Build model. - * - * @param $value mixed - */ - public function setBuild($value) - { - // Is this an instance of Build? - if ($value instanceof Build) { - return $this->setBuildObject($value); - } - - // Is this an array representing a Build item? - if (is_array($value) && !empty($value['id'])) { - return $this->setBuildId($value['id']); - } - - // Is this a scalar value representing the ID of this foreign key? - return $this->setBuildId($value); - } - - /** - * Set Build - Accepts a Build model. - * - * @param $value Build - */ - public function setBuildObject(Build $value) - { - return $this->setBuildId($value->getId()); + return Factory::getStore('Build', 'PHPCensor')->getById($buildId); } } diff --git a/src/PHPCensor/Model/Environment.php b/src/PHPCensor/Model/Environment.php index 427a9be8..ade80d6e 100644 --- a/src/PHPCensor/Model/Environment.php +++ b/src/PHPCensor/Model/Environment.php @@ -42,7 +42,7 @@ class Environment extends Model ]; /** - * @return int + * @return integer */ public function getId() { @@ -52,7 +52,7 @@ class Environment extends Model } /** - * @return int + * @return integer */ public function getProjectId() { @@ -82,7 +82,7 @@ class Environment extends Model } /** - * @param $value int + * @param integer $value */ public function setId($value) { @@ -99,7 +99,7 @@ class Environment extends Model } /** - * @param $value int + * @param integer $value */ public function setProjectId($value) { @@ -116,7 +116,7 @@ class Environment extends Model } /** - * @param $value string + * @param string $value */ public function setName($value) { @@ -133,7 +133,7 @@ class Environment extends Model } /** - * @param $value array + * @param array $value */ public function setBranches($value) { diff --git a/src/PHPCensor/Model/Project.php b/src/PHPCensor/Model/Project.php index 58240261..688838b6 100644 --- a/src/PHPCensor/Model/Project.php +++ b/src/PHPCensor/Model/Project.php @@ -94,7 +94,7 @@ class Project extends Model ]; /** - * @return int + * @return integer */ public function getId() { @@ -174,7 +174,7 @@ class Project extends Model } /** - * @return int + * @return integer */ public function getAllowPublicStatus() { @@ -184,7 +184,7 @@ class Project extends Model } /** - * @return int + * @return integer */ public function getArchived() { @@ -194,7 +194,7 @@ class Project extends Model } /** - * @return int + * @return integer */ public function getGroupId() { @@ -204,7 +204,7 @@ class Project extends Model } /** - * @return int + * @return integer */ public function getDefaultBranchOnly() { @@ -214,7 +214,7 @@ class Project extends Model } /** - * @param $value int + * @param integer $value */ public function setId($value) { @@ -231,7 +231,7 @@ class Project extends Model } /** - * @param $value string + * @param string $value */ public function setTitle($value) { @@ -248,7 +248,7 @@ class Project extends Model } /** - * @param $value string + * @param string $value */ public function setReference($value) { @@ -265,7 +265,7 @@ class Project extends Model } /** - * @param $value string + * @param string $value */ public function setBranch($value) { @@ -282,7 +282,7 @@ class Project extends Model } /** - * @param $value int + * @param integer $value */ public function setDefaultBranchOnly($value) { @@ -299,7 +299,7 @@ class Project extends Model } /** - * @param $value string + * @param string $value */ public function setSshPrivateKey($value) { @@ -315,7 +315,7 @@ class Project extends Model } /** - * @param $value string + * @param string $value */ public function setType($value) { @@ -332,7 +332,7 @@ class Project extends Model } /** - * @param $value string + * @param string $value */ public function setLastCommit($value) { @@ -348,7 +348,7 @@ class Project extends Model } /** - * @param $value string + * @param string $value */ public function setBuildConfig($value) { @@ -364,7 +364,7 @@ class Project extends Model } /** - * @param $value string + * @param string $value */ public function setSshPublicKey($value) { @@ -380,7 +380,7 @@ class Project extends Model } /** - * @param $value int + * @param integer $value */ public function setAllowPublicStatus($value) { @@ -397,7 +397,7 @@ class Project extends Model } /** - * @param $value int + * @param integer $value */ public function setArchived($value) { @@ -414,7 +414,7 @@ class Project extends Model } /** - * @param $value int + * @param integer $value */ public function setGroupId($value) { @@ -437,52 +437,13 @@ class Project extends Model */ public function getGroup() { - $key = $this->getGroupId(); + $groupId = $this->getGroupId(); - if (empty($key)) { + if (empty($groupId)) { return null; } - $cacheKey = 'php-censor.project-group-' . $key; - $rtn = $this->cache->get($cacheKey); - - if (empty($rtn)) { - $rtn = Factory::getStore('ProjectGroup', 'PHPCensor')->getById($key); - $this->cache->set($cacheKey, $rtn); - } - - return $rtn; - } - - /** - * Set Group - Accepts an ID, an array representing a ProjectGroup or a ProjectGroup model. - * - * @param $value mixed - */ - public function setGroup($value) - { - // Is this an instance of ProjectGroup? - if ($value instanceof ProjectGroup) { - return $this->setGroupObject($value); - } - - // Is this an array representing a ProjectGroup item? - if (is_array($value) && !empty($value['id'])) { - return $this->setGroupId($value['id']); - } - - // Is this a scalar value representing the ID of this foreign key? - return $this->setGroupId($value); - } - - /** - * Set Group - Accepts a ProjectGroup model. - * - * @param $value ProjectGroup - */ - public function setGroupObject(ProjectGroup $value) - { - return $this->setGroupId($value->getId()); + return Factory::getStore('ProjectGroup', 'PHPCensor')->getById($groupId); } /** @@ -613,17 +574,19 @@ class Project extends Model } /** - * @param $value \DateTime + * @param \DateTime $value */ - public function setCreateDate($value) + public function setCreateDate(\DateTime $value) { $this->validateDate('create_date', $value); - if ($this->data['create_date'] === $value) { + $stringValue = $value->format('Y-m-d H:i:s'); + + if ($this->data['create_date'] === $stringValue) { return; } - $this->data['create_date'] = $value; + $this->data['create_date'] = $stringValue; $this->setModified('create_date'); } @@ -639,7 +602,7 @@ class Project extends Model } /** - * @param $value integer + * @param integer $value */ public function setUserId($value) { @@ -726,22 +689,13 @@ class Project extends Model */ public function getEnvironmentsObjects() { - $key = $this->getId(); + $projectId = $this->getId(); - if (empty($key)) { + if (empty($projectId)) { return null; } - $cacheKey = 'php-censor.project-environments-' . $key; - $rtn = $this->cache->get($cacheKey); - - if (empty($rtn)) { - $store = $this->getEnvironmentStore(); - $rtn = $store->getByProjectId($key); - $this->cache->set($cacheKey, $rtn); - } - - return $rtn; + return $this->getEnvironmentStore()->getByProjectId($projectId); } /** diff --git a/src/PHPCensor/Model/ProjectGroup.php b/src/PHPCensor/Model/ProjectGroup.php index 2847c8a6..4a05874f 100644 --- a/src/PHPCensor/Model/ProjectGroup.php +++ b/src/PHPCensor/Model/ProjectGroup.php @@ -43,7 +43,7 @@ class ProjectGroup extends Model ]; /** - * @return int + * @return integer */ public function getId() { @@ -53,7 +53,7 @@ class ProjectGroup extends Model } /** - * @param $value int + * @param integer $value */ public function setId($value) { @@ -80,7 +80,7 @@ class ProjectGroup extends Model } /** - * @param $value string + * @param string $value */ public function setTitle($value) { @@ -111,17 +111,19 @@ class ProjectGroup extends Model } /** - * @param $value \DateTime + * @param \DateTime $value */ - public function setCreateDate($value) + public function setCreateDate(\DateTime $value) { $this->validateDate('create_date', $value); - if ($this->data['create_date'] === $value) { + $stringValue = $value->format('Y-m-d H:i:s'); + + if ($this->data['create_date'] === $stringValue) { return; } - $this->data['create_date'] = $value; + $this->data['create_date'] = $stringValue; $this->setModified('create_date'); } @@ -137,7 +139,7 @@ class ProjectGroup extends Model } /** - * @param $value integer + * @param integer $value */ public function setUserId($value) { diff --git a/src/PHPCensor/Model/User.php b/src/PHPCensor/Model/User.php index dd1dceb6..405666be 100644 --- a/src/PHPCensor/Model/User.php +++ b/src/PHPCensor/Model/User.php @@ -64,7 +64,7 @@ class User extends Model ]; /** - * @return int + * @return integer */ public function getId() { @@ -104,7 +104,7 @@ class User extends Model } /** - * @return int + * @return integer */ public function getIsAdmin() { @@ -164,7 +164,7 @@ class User extends Model } /** - * @param $value int + * @param integer $value */ public function setId($value) { @@ -181,7 +181,7 @@ class User extends Model } /** - * @param $value string + * @param string $value */ public function setEmail($value) { @@ -198,7 +198,7 @@ class User extends Model } /** - * @param $value string + * @param string $value */ public function setHash($value) { @@ -215,7 +215,7 @@ class User extends Model } /** - * @param $value string + * @param string $value */ public function setName($value) { @@ -232,7 +232,7 @@ class User extends Model } /** - * @param $value int + * @param integer $value */ public function setIsAdmin($value) { @@ -249,7 +249,7 @@ class User extends Model } /** - * @param $value string + * @param string $value */ public function setProviderKey($value) { @@ -266,7 +266,7 @@ class User extends Model } /** - * @param $value string + * @param string $value */ public function setProviderData($value) { @@ -282,7 +282,7 @@ class User extends Model } /** - * @param $value string + * @param string $value */ public function setRememberKey($value) { @@ -298,7 +298,7 @@ class User extends Model } /** - * @param $value string + * @param string $value */ public function setLanguage($value) { @@ -312,7 +312,7 @@ class User extends Model } /** - * @param $value string + * @param string $value */ public function setPerPage($value) { diff --git a/src/PHPCensor/Service/BuildService.php b/src/PHPCensor/Service/BuildService.php index 36ba2958..c583cec8 100644 --- a/src/PHPCensor/Service/BuildService.php +++ b/src/PHPCensor/Service/BuildService.php @@ -61,7 +61,7 @@ class BuildService ) { $build = new Build(); $build->setCreateDate(new \DateTime()); - $build->setProject($project); + $build->setProjectId($project->getId()); $build->setStatus(Build::STATUS_PENDING); $build->setEnvironment($environment); @@ -116,15 +116,17 @@ class BuildService { $data = $copyFrom->getDataArray(); - // Clean up unwanted properties from the original build: - unset($data['id']); - unset($data['status']); - unset($data['log']); - unset($data['start_date']); - unset($data['finish_date']); - $build = new Build(); - $build->setValues($data); + $build->setProjectId($data['project_id']); + $build->setCommitId($data['commit_id']); + $build->setBranch($data['branch']); + $build->setTag($data['tag']); + $build->setCommitterEmail($data['committer_email']); + $build->setCommitMessage($data['commit_message']); + $build->setExtra($data['extra']); + $build->setEnvironment($data['environment']); + $build->setSource($data['source']); + $build->setUserId($data['user_id']); $build->setCreateDate(new \DateTime()); $build->setStatus(Build::STATUS_PENDING); diff --git a/src/PHPCensor/Service/ProjectService.php b/src/PHPCensor/Service/ProjectService.php index 7822f062..b40fdbc4 100644 --- a/src/PHPCensor/Service/ProjectService.php +++ b/src/PHPCensor/Service/ProjectService.php @@ -96,7 +96,7 @@ class ProjectService } if (array_key_exists('group', $options)) { - $project->setGroup($options['group']); + $project->setGroupId($options['group']); } // Allow certain project types to set access information: diff --git a/src/PHPCensor/View/WidgetAllProjects/index-projects.phtml b/src/PHPCensor/View/WidgetAllProjects/index-projects.phtml index 1b046bac..e40264cc 100644 --- a/src/PHPCensor/View/WidgetAllProjects/index-projects.phtml +++ b/src/PHPCensor/View/WidgetAllProjects/index-projects.phtml @@ -88,7 +88,7 @@ foreach($projects as $project): ?>
- +

@@ -120,7 +120,7 @@ foreach($projects as $project): echo ''; } else { $build = $builds[$project->getId()][$idx]; - $link = APP_URL . 'build/view/' . $build->id; + $link = APP_URL . 'build/view/' . $build->getId(); switch ($build->getStatus()) { case 0: $class = 'bg-blue'; diff --git a/src/PHPCensor/View/WidgetAllProjects/update.phtml b/src/PHPCensor/View/WidgetAllProjects/update.phtml index 1f00e379..096796e8 100644 --- a/src/PHPCensor/View/WidgetAllProjects/update.phtml +++ b/src/PHPCensor/View/WidgetAllProjects/update.phtml @@ -87,7 +87,7 @@ if ($buildCount > 0) { ?>
- +

@@ -119,7 +119,7 @@ if ($buildCount > 0) { echo ''; } else { $build = $builds[$idx]; - $link = APP_URL . 'build/view/' . $build->id; + $link = APP_URL . 'build/view/' . $build->getId(); switch ($build->getStatus()) { case 0: $class = 'bg-blue'; diff --git a/src/PHPCensor/View/WidgetBuildErrors/update.phtml b/src/PHPCensor/View/WidgetBuildErrors/update.phtml index 47e46086..08b4a5eb 100644 --- a/src/PHPCensor/View/WidgetBuildErrors/update.phtml +++ b/src/PHPCensor/View/WidgetBuildErrors/update.phtml @@ -92,7 +92,7 @@ foreach($builds as $project_id => $project_envs): ?>
- +

@@ -127,7 +127,7 @@ foreach($builds as $project_id => $project_envs): echo ''; } else { $build = $project_env['latest'][$idx]; - $link = APP_URL . 'build/view/' . $build->id; + $link = APP_URL . 'build/view/' . $build->getId(); switch ($build->getStatus()) { case 0: $class = 'bg-blue'; diff --git a/tests/B8Framework/FormTest.php b/tests/B8Framework/FormTest.php index dcb58e41..e9def9d9 100755 --- a/tests/B8Framework/FormTest.php +++ b/tests/B8Framework/FormTest.php @@ -4,9 +4,8 @@ namespace Tests\b8; use b8\Form; use b8\Config; -use PHPUnit\Framework\TestCase; -class FormTest extends TestCase +class FormTest extends \PHPUnit\Framework\TestCase { public function testFormBasics() { @@ -17,7 +16,7 @@ class FormTest extends TestCase self::assertTrue($f->getAction() == '/'); self::assertTrue($f->getMethod() == 'POST'); - $config = new Config([ + new Config([ 'b8' => [ 'view' => [ 'path' => __DIR__ . '/data/view/' diff --git a/tests/PHPCensor/Helper/LangTest.php b/tests/PHPCensor/Helper/LangTest.php deleted file mode 100644 index a73687c1..00000000 --- a/tests/PHPCensor/Helper/LangTest.php +++ /dev/null @@ -1,43 +0,0 @@ - $enString) { - self::assertArrayHasKey($enIndex, $strings); - } - }*/ -} diff --git a/tests/PHPCensor/LocalizationTestCase.php b/tests/PHPCensor/LocalizationTestCase.php deleted file mode 100644 index d6ac7733..00000000 --- a/tests/PHPCensor/LocalizationTestCase.php +++ /dev/null @@ -1,24 +0,0 @@ -name, - $this->getName(false) - ); - - return $buffer . $this->getDataSetAsString(false); - } -} diff --git a/tests/PHPCensor/Model/BuildTest.php b/tests/PHPCensor/Model/BuildTest.php index 5f486af5..ccd76505 100644 --- a/tests/PHPCensor/Model/BuildTest.php +++ b/tests/PHPCensor/Model/BuildTest.php @@ -2,6 +2,7 @@ namespace Tests\PHPCensor\Model; +use b8\Exception\HttpException\ValidationException; use PHPCensor\Model\Build; use PHPCensor\Model; @@ -12,15 +13,67 @@ use PHPCensor\Model; */ class BuildTest extends \PHPUnit\Framework\TestCase { - public function setUp() - { - } - - public function testExecute_TestIsAValidModel() + public function testConstruct() { $build = new Build(); - self::assertTrue($build instanceof \b8\Model); - self::assertTrue($build instanceof Model); + + self::assertInstanceOf('PHPCensor\Model', $build); + self::assertInstanceOf('PHPCensor\Model\Build', $build); + + $build = new Build([ + 'project_id' => 100, + 'branch' => 'master', + ]); + + self::assertEquals([ + 'id' => null, + 'project_id' => 100, + 'commit_id' => null, + 'status' => null, + 'log' => null, + 'branch' => 'master', + 'tag' => null, + 'create_date' => null, + 'start_date' => null, + 'finish_date' => null, + 'committer_email' => null, + 'commit_message' => null, + 'extra' => null, + 'environment' => null, + 'source' => Build::SOURCE_UNKNOWN, + 'user_id' => 0, + ], $build->getDataArray()); + + try { + $build = new Build([ + 'project_id' => 101, + 'branch' => 'dev', + 'unknown' => 'unknown', + ]); + } catch (\InvalidArgumentException $e) { + self::assertEquals( + 'Model "PHPCensor\Model\Build" doesn\'t have field "unknown"', + $e->getMessage() + ); + } + + $build = new Build(); + $build->setLog('log'); + + self::assertEquals('log', $build->getLog()); + + $build->setLog(null); + + self::assertEquals(null, $build->getLog()); + + try { + $build->setLog([]); + } catch (ValidationException $e) { + self::assertEquals( + 'Column "log" must be a string.', + $e->getMessage() + ); + } } public function testExecute_TestBaseBuildDefaults() diff --git a/tests/PHPCensor/Model/ProjectTest.php b/tests/PHPCensor/Model/ProjectTest.php index a42ef82f..267c058c 100644 --- a/tests/PHPCensor/Model/ProjectTest.php +++ b/tests/PHPCensor/Model/ProjectTest.php @@ -15,7 +15,6 @@ class ProjectTest extends \PHPUnit\Framework\TestCase public function testExecute_TestIsAValidModel() { $project = new Project(); - self::assertTrue($project instanceof \b8\Model); self::assertTrue($project instanceof Model); } diff --git a/tests/PHPCensor/Service/BuildServiceTest.php b/tests/PHPCensor/Service/BuildServiceTest.php index ba0dd00d..b3f4d7dc 100644 --- a/tests/PHPCensor/Service/BuildServiceTest.php +++ b/tests/PHPCensor/Service/BuildServiceTest.php @@ -139,7 +139,7 @@ class BuildServiceTest extends \PHPUnit\Framework\TestCase { $build = new Build(); $build->setId(1); - $build->setProject(101); + $build->setProjectId(101); $build->setCommitId('abcde'); $build->setStatus(Build::STATUS_FAILED); $build->setLog('Test'); diff --git a/tests/PHPCensor/Service/BuiltStatusServiceTest.php b/tests/PHPCensor/Service/BuiltStatusServiceTest.php index 12ca714b..7b3cd438 100644 --- a/tests/PHPCensor/Service/BuiltStatusServiceTest.php +++ b/tests/PHPCensor/Service/BuiltStatusServiceTest.php @@ -94,7 +94,7 @@ class BuildStatusServiceTest extends \PHPUnit\Framework\TestCase $project = $this->getProjectMock($config[$configId]['previousBuild'], $setProject); - $build->setProjectObject($project); + $build->setProjectId($project->getId()); return $build; }