Commit 1f070179 authored by MGChecker's avatar MGChecker

Umstellung der Klassenarchitektur und der Einstellungen auf JSON

Summary:
Klassenarchitektur
* Sichtbarkeit der Klassenattribute eingeschränkt, teilweise durch Getter und Setter weiterhin zugänglich gemacht
* Statische Funktionen als solche markiert
* Sichtbarkeit von httpRequest erweitert, das im Rahmen von MultiCore instanziert benötigt werden wird
* Sichtbarkeit von login eingeschränkt, da es nur von initCurl aufgerufen werden soll
* Finalisierung der beiden zentralen Funktionen httpRequest und initcurl, um Überschreiben zu verhindern
* __construct als Alias zu initcurl für spätere Instanzierung im Rahmen von MultiCore

Einstellungen via JSON
* Einstellungen werden nun aus einem besser lesbaren JSON-File extrahiert, was neben den Login-Daten auch weitere Daten enthält, weswegen einige Parameter hinsichtlich https usw. entfallen
* E-Mail jetzt nicht mehr per Account, sondern per Cygnus-Framework global
* Kein Zwang, so die Benutzerdaten einzulesen, Kindklassen können andere Methoden verwenden

Entfernen obsoleter Funktionen
* addMail und sendMail erfüllen keinen Mehrwert gegenüber der internen Funktion mail()
* initCurlArgs ist eine Funktion, die den Standards von Cygnus nicht mehr entspricht
* setSite, setUsername, setPassword sind obsolet

Sonstiges
* Rückgabewerte von serialisierten Arrays auf direkt weiter verarbeitbare Arrays umgestellt (Ausnahme movePage)
* Funktionen, die entweder einen bestimmten Wert (String, Array, Integer) oder den boolschen Wert false zurückgeben stattdessen auf null umgestellt, da dieser Wert intuitiver ist und die Kompatibilität mit PHP 7.1 erhöht
* Kleinere Korrekturen

Ref T823, T841, T872, T875

Reviewers: Luke, O1 Luke081515Bot, Morten_Haan

Reviewed By: Luke, O1 Luke081515Bot, Morten_Haan

Subscribers: Luke, Morten_Haan

Tags: #cygnus

Maniphest Tasks: T875, T872, T841, T823

Differential Revision: https://rcm-2.wmflabs.org/D422
parent c277ab19
This diff is collapsed.
<?php
class Password {
/** This is just an example!
* For running any Job properly, the data needs to be adapted!
* Do not forget chmod 0600!
*/
private $LoginName;
private $LoginHost;
private $LoginAccount;
private $LoginPassword;
private $MailAddress;
public function Password() {}
protected function init() {
$this->LoginName = array( // Recommended: Username@wiki
'User@dewiki',
'Bot@dewikisource',
);
// Please note, that the following settings need to be made in the same order as LoginName!
$this->LoginHost = array( // Domain of the Wiki
'de.wikipedia.org',
'de.wikisource.org',
);
$this->LoginAccount = array( // Name of the account
'User',
'Bot',
);
$this->LoginPassword = array( // Password of the account
'Userpassword',
'Botpassword',
);
$this->MailAddress = array( // The script sends triggered mails to this address
'hello@example.org',
'support@example.org',
);
}
protected function getLoginName() {
return serialize ($this->LoginName);
}
protected function getLoginHost() {
return serialize ($this->LoginHost);
}
protected function getLoginAccount() {
return serialize ($this->LoginAccount);
}
protected function getLoginPassword() {
return serialize ($this->LoginPassword);
}
protected function getMail() {
return serialize ($this->MailAddress);
}
}
?>
{
"email": "hello@example.org",
"accountdefaults": {
"https": true,
"path": "w/api.php"
},
"accounts": {
"User@dewiki": {
"host": "de.wikipedia.org",
"user": "User",
"pwd": "Userpassword"
},
"Bot@dewikisource": {
"host": "de.wikisource.org",
"user": "Bot",
"pwd": "Botpassword"
},
"User2@pokewiki": {
"host": "pokewiki.de",
"user": "User2",
"pwd": "User2password",
"path": "api.php"
}
}
}
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