Skip to content
Snippets Groups Projects

php8 only; added variable types; short array syntax; remove glyphicons

Merged Hahn Axel (hahn) requested to merge 7359-update-php83 into master
1 file
+ 90
67
Compare changes
  • Side-by-side
  • Inline
@@ -865,7 +865,8 @@ class project extends base
$aDelete[] = $sDir2;
} else {
echo t("class-project-warning-cannot-delete-build-dir", $sDir2);
};
}
;
}
return $aDelete;
@@ -1142,29 +1143,29 @@ class project extends base
}
/**
* return array of all (active and inactive) phases
* Get array of all (active and inactive) phases
* @return array
*/
public function getPhases()
public function getPhases(): array
{
return $this->_aConfig["phases"];
}
/**
* return array of all (active and inactive) phases
* Get array of all (active and inactive) phases
* @return array
*/
public function getPlaces()
public function getPlaces(): array
{
return $this->_aPlaces;
}
/**
* get a flat array with active phases of the project
* Get a flat array with active phases of the project
* @return array
*/
public function getActivePhases()
public function getActivePhases(): array
{
$aReturn = array();
$aReturn = [];
foreach (array_keys($this->_aConfig["phases"]) as $s) {
if ($this->isActivePhase($s)) {
$aReturn[] = $s;
@@ -1176,8 +1177,9 @@ class project extends base
/**
* find the next active phase of a project
* @param string $sPhase current phase; if empty the function sends back the first phase
* @return string
*/
public function getNextPhase($sPhase = false)
public function getNextPhase(string $sPhase = ''): string
{
if ($sPhase) {
if (!array_key_exists($sPhase, $this->_aConfig["phases"])) {
@@ -1204,21 +1206,25 @@ class project extends base
}
/**
* get an array with deploy status ...
* Get an array with deploy status ...
* 'inprogress'=>do versions differ from phase to phase = rollout of a version is in progress
'hasQueue'=>is there a package in a queue (waiting for deployment time to get ready to be installed)
* @return array
*/
public function getProgress()
public function getProgress(): array
{
$this->getAllPhaseInfos();
return $this->_aData['progress'];
}
/**
* check: is the deployment to the next phase enabled for this phase?
* @param type $sPhase current phase
* It returns a string when current user has no permissions.
* Otherwise it returns true or false.
*
* @param string $sPhase current phase
* @return string|bool
*/
public function canAcceptPhase($sPhase = false)
public function canAcceptPhase(string $sPhase = ''): string|bool
{
if (
!$this->oUser->hasPermission("project-action-accept") && !$this->oUser->hasPermission("project-action-accept-$sPhase")
@@ -1266,37 +1272,38 @@ class project extends base
}
/**
* get list of remote branches and tags
* Get list of remote branches and tags.
* It returns false if the VCS was not initialize or has no method getRemoteBranches()
*
* @param bool $bIgnoreCache flag to ignore exiting cached data
* @return array|boolean
* @return bool|array
*/
public function getRemoteBranches($bIgnoreCache = false)
public function getRemoteBranches(bool $bIgnoreCache = false): bool|array
{
$this->log(__FUNCTION__ . "($bIgnoreCache) start");
$this->_initVcs();
if ($this->_oVcs) {
if (!method_exists($this->_oVcs, "getRemoteBranches")) {
// the version control class does not have this method
return '';
return false;
}
return $this->_oVcs->getRemoteBranches($bIgnoreCache);
}
return false;
}
/**
* get current revision and log message from remote repo
* Get current revision and log message from remote repo
*
* @param boolean $bRefresh optional: refresh data; default: use cache
* @return array
*/
public function getRepoRevision($bRefresh = false)
public function getRepoRevision(bool $bRefresh = false): array
{
$this->log(__FUNCTION__ . "($bRefresh) start");
if (!$this->_aPrjConfig["build"]["type"]) {
$this->_aData["phases"]["source"] = array("error" => t("class-project-error-repo-type-not-set"),);
$this->_aData["phases"]["source"] = array("error" => t("class-project-error-repo-type-not-set"), );
} else {
$this->_initVcs();
if ($this->_oVcs) {
@@ -1312,15 +1319,15 @@ class project extends base
}
/**
* init version control system (git, ...)
* @return vcs-object
* Initialize version control system (git, ...) if it is not initialized yet
* @return object vcs-object
*/
protected function _initVcs()
protected function _initVcs(): object
{
$this->log(__FUNCTION__ . " start");
if (!$this->_oVcs) {
if (!$this->_aPrjConfig["build"]["type"]) {
$this->_aData["phases"]["source"] = array("error" => t("class-project-error-repo-type-not-set"),);
$this->_aData["phases"]["source"] = array("error" => t("class-project-error-repo-type-not-set"), );
} else {
if (!@include_once("vcs." . $this->_aPrjConfig["build"]["type"] . ".class.php")) {
$this->_aData["phases"]["source"] = array(
@@ -1345,11 +1352,11 @@ class project extends base
}
/**
* get an array of enabled plugins
* Get an array of enabled plugins
* @param string $sSection one of false|"rollout"|...
* @return array
*/
public function getConfiguredPlugins($sSection = false)
public function getConfiguredPlugins(string $sSection = ''): array
{
$aReturn = array();
if (!$sSection) {
@@ -1363,23 +1370,24 @@ class project extends base
}
/**
* get a location of a plugin file with full path
* Get a location of a plugin file with full path
*
* @param string $sType type of plugin, i.e. "rollout"
* @param string $sPluginName Name of plugin
* @return string
*/
protected function _getPluginFilename($sType, $sPluginName)
protected function _getPluginFilename(string $sType, string $sPluginName): string
{
return __DIR__ . '/../plugins/' . $sType . '/' . $sPluginName . '/' . $sType . '_' . $sPluginName . '.php';
}
/**
* get a flat array of all existing ssh keys
* Get a flat array of all existing ssh keys
* @return array
*/
protected function _getSshKeys()
protected function _getSshKeys(): array
{
$aReturn = array();
$aReturn =[];
foreach (glob($this->_aConfig["dataDir"] . "/sshkeys/*.pub") as $filename) {
$aReturn[] = str_replace(".pub", "", basename($filename));
}
@@ -1388,11 +1396,13 @@ class project extends base
}
/**
* get a flat array with regexes of deploy times
* Get a flat array with regexes of deploy times.
* It returns false if the given phase is not active
*
* @param string $sPhase phase
* @return array
* @return bool|array
*/
protected function _getDeploytimes($sPhase)
protected function _getDeploytimes(string $sPhase): bool|array
{
if (!$this->isActivePhase($sPhase)) {
$sError = sprintf(t("class-project-warning-phase-not-active"), $sPhase);
@@ -1415,7 +1425,16 @@ class project extends base
// SETTER
// ----------------------------------------------------------------------
protected function _setProcessOutFile($sNewTempfile = false)
/**
* Generate a filename for the process output.
* The last output file will be deleted if it exists.
* It returns false if no pram for new basename was given.
* Otherwise it returns a filename with full path in temp folder.
*
* @param string $sNewTempfile
* @return bool|string
*/
protected function _setProcessOutFile(string $sNewTempfile = ''): bool|string
{
if ($this->_sProcessTempOut && file_exists($this->_sProcessTempOut)) {
unlink($this->_sProcessTempOut);
@@ -1426,12 +1445,14 @@ class project extends base
}
/**
* get projects from ldap; it returns ldap search items with cn as
* Get projects from ldap; it returns ldap search items with cn as
* array key.
* It returns false if no result was found
*
* @return array
* @param string $sSearchFilter LDAP search filter
* @return bool|array
*/
protected function _ldapProjectSearch($sSearchFilter)
protected function _ldapProjectSearch(string $sSearchFilter): bool|array
{
$aReturn = array();
require_once("ldap.class.php");
@@ -1467,10 +1488,12 @@ class project extends base
}
/**
* load config of a project
* @return boolean
* Load config of a project with given project id and turn a bool for success
*
* @param string $sId new project id of project to load
* @return boolean Success
*/
public function setProjectById($sId)
public function setProjectById(string $sId): bool
{
if ($sId !== preg_replace('/[^a-z0-9\-\_]/i', '', $sId)) {
$this->_errors[] = sprintf(t("class-project-error-config-wrongid"), htmlentities($sId));
@@ -1542,9 +1565,9 @@ class project extends base
/**
* set a branchname
* @param string $sBranchname name of the branch, i.e. "origin/master"
* @return bool
* @return string
*/
public function setBranchname($sBranchname)
public function setBranchname(string $sBranchname): string
{
$this->_sBranchname = $sBranchname;
if ($this->_oVcs) {
@@ -1723,10 +1746,10 @@ class project extends base
$sReturn .= '<pre>' . $this->_oVcs->getSources($sTempBuildDir) . '</pre>';
$aRepodata=$this->getRepoRevision();
$sRevisionShort=substr($aRepodata['revision'], 0, 8);
$aRepodata = $this->getRepoRevision();
$sRevisionShort = substr($aRepodata['revision'], 0, 8);
$sReturn .= $this->_oHtml->getBox("info", t('commitmessage') . '<pre>'.htmlentities($aRepodata['message']).'</pre>');
$sReturn .= $this->_oHtml->getBox("info", t('commitmessage') . '<pre>' . htmlentities($aRepodata['message']) . '</pre>');
$sReturn .= $this->_execAndSend("ls -lisa $sTempBuildDir");
if (!$this->_iRcAll == 0) {
@@ -1757,24 +1780,24 @@ class project extends base
# /task#5047
}
$aCivars=[
'branch'=>$aRepodata['branch'],
'branch_short'=>$aRepodata['shortname'],
'branch_type'=>$aRepodata['type'],
'revision'=>$aRepodata['revision'],
'revision_short'=>$sRevisionShort,
'imagepart'=>$aRepodata['type']=='tags'
? $aRepodata['shortname']
: $sRevisionShort
,
$aCivars = [
'branch' => $aRepodata['branch'],
'branch_short' => $aRepodata['shortname'],
'branch_type' => $aRepodata['type'],
'revision' => $aRepodata['revision'],
'revision_short' => $sRevisionShort,
'imagepart' => $aRepodata['type'] == 'tags'
? $aRepodata['shortname']
: $sRevisionShort
,
// 'message'=>$aRepodata['message'],
];
$sCfgContent .= "\n"
. "# ---------- generated CI SERVER variables\n"
. "\n"
;
foreach ($aCivars as $sKey => $value){
;
foreach ($aCivars as $sKey => $value) {
$sCfgContent .= "export CI_$sKey=\"$value\"; \n";
}
@@ -1918,13 +1941,13 @@ class project extends base
'date' => $sTs,
'version' => $sTs2,
// 'branch' => $sBranch,
'branch'=>$aRepodata['branch'],
'branch_short'=>$aRepodata['shortname'],
'branch_type'=>$aRepodata['type'],
'revision'=>$aRepodata['revision'],
'revision_short'=>$sRevisionShort,
'branch' => $aRepodata['branch'],
'branch_short' => $aRepodata['shortname'],
'branch_type' => $aRepodata['type'],
'revision' => $aRepodata['revision'],
'revision_short' => $sRevisionShort,
'imagepart'=>$aCivars['imagepart'],
'imagepart' => $aCivars['imagepart'],
'message' => $aRepodata['message'],
);
@@ -1975,7 +1998,7 @@ class project extends base
return $this->_oHtml->getBox(
"error",
"FAILED to initialize build plugin " . $sPluginName . '<br>'
. $sReturn
. $sReturn
);
}
Loading