Remove everything that is not in the release version of MediaWiki 1.35.0
This commit is contained in:
parent
f59e705dcd
commit
2091055161
|
@ -1,13 +0,0 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = tab
|
||||
indent_size = tab
|
||||
tab_width = 4
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
|
@ -1,16 +0,0 @@
|
|||
# Upstream code
|
||||
/resources/lib/
|
||||
/resources/src/jquery.tipsy/
|
||||
/resources/src/mediawiki.libs.jpegmeta/
|
||||
# Skip function
|
||||
/resources/src/skip-Promise.js
|
||||
|
||||
# Build tooling
|
||||
/docs/
|
||||
/vendor/
|
||||
/tests/coverage/
|
||||
/tests/phpunit/data/registration/duplicate_keys.json
|
||||
|
||||
# Nested projects
|
||||
/extensions/
|
||||
/skins/
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
"extends": [
|
||||
"wikimedia/client",
|
||||
"wikimedia/jquery",
|
||||
"wikimedia/mediawiki",
|
||||
"wikimedia/jsduck"
|
||||
],
|
||||
"globals": {
|
||||
"require": "readonly",
|
||||
"module": "readonly"
|
||||
},
|
||||
"rules": {
|
||||
"max-len": "off",
|
||||
"mediawiki/valid-package-file-require": "off",
|
||||
"no-jquery/no-global-selector": "off",
|
||||
"no-shadow": "error"
|
||||
}
|
||||
}
|
55
.fresnel.yml
55
.fresnel.yml
|
@ -1,55 +0,0 @@
|
|||
warmup: true
|
||||
runs: 7
|
||||
scenarios:
|
||||
Read a page:
|
||||
# The only page that exists by default is the main page.
|
||||
# But its actual name is configurable/unknown (T216791).
|
||||
# Omit 'title' to let MediaWiki show the default (which is the main page),
|
||||
# and a query string to prevent a normalization redirect.
|
||||
url: "{MW_SERVER}{MW_SCRIPT_PATH}/index.php?noredirectplz"
|
||||
viewport:
|
||||
width: 1100
|
||||
height: 700
|
||||
reports:
|
||||
- navtiming
|
||||
- paint
|
||||
- transfer
|
||||
probes:
|
||||
- screenshot
|
||||
- trace
|
||||
Load the editor:
|
||||
url: "{MW_SERVER}{MW_SCRIPT_PATH}/index.php?action=edit"
|
||||
viewport:
|
||||
width: 1100
|
||||
height: 700
|
||||
reports:
|
||||
- navtiming
|
||||
- paint
|
||||
- transfer
|
||||
probes:
|
||||
- screenshot
|
||||
- trace
|
||||
View history of a page:
|
||||
url: "{MW_SERVER}{MW_SCRIPT_PATH}/index.php?action=history"
|
||||
viewport:
|
||||
width: 1100
|
||||
height: 700
|
||||
reports:
|
||||
- navtiming
|
||||
- paint
|
||||
- transfer
|
||||
probes:
|
||||
- screenshot
|
||||
- trace
|
||||
View recent changes:
|
||||
url: "{MW_SERVER}{MW_SCRIPT_PATH}/index.php?title=Special:RecentChanges"
|
||||
viewport:
|
||||
width: 1100
|
||||
height: 700
|
||||
reports:
|
||||
- navtiming
|
||||
- paint
|
||||
- transfer
|
||||
probes:
|
||||
- screenshot
|
||||
- trace
|
513
.mailmap
513
.mailmap
|
@ -1,513 +0,0 @@
|
|||
# Map author and committer names and email addresses to canonical real names
|
||||
# and email addresses.
|
||||
#
|
||||
# To update the CREDITS file, run maintenance/updateCredits.php
|
||||
#
|
||||
# Two types of entries are useful here. The first sets a canonical author
|
||||
# name for a given email address:
|
||||
#
|
||||
# Canonical Author Name <author email>
|
||||
#
|
||||
# The second allows collecting alternate email addresses into a single
|
||||
# canonical author name and email address:
|
||||
#
|
||||
# Canonical Author Name <author email> <alternate email>
|
||||
#
|
||||
# Mappings are only needed for authors who have used multiple author names
|
||||
# and/or author emails for revisions over time. Author names beginning with
|
||||
# "[BOT]" will be omitted from the CREDITS file.
|
||||
#
|
||||
# See also: https://git-scm.com/docs/git-shortlog#_mapping_authors
|
||||
#
|
||||
[BOT] Gerrit Code Review <gerrit@wikimedia.org>
|
||||
[BOT] Gerrit Patch Uploader <gerritpatchuploader@gmail.com>
|
||||
[BOT] jenkins-bot <jenkins-bot@gerrit.wikimedia.org>
|
||||
[BOT] jenkins-bot <jenkins-bot@gerrit.wikimedia.org> <jenkins-bot@wikimedia.org>
|
||||
[BOT] Translation updater bot <l10n-bot@translatewiki.net>
|
||||
[BOT] libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
|
||||
Aaron Schulz <aschulz@wikimedia.org>
|
||||
Aaron Schulz <aschulz@wikimedia.org> <aaron@users.mediawiki.org>
|
||||
Adam Roses Wight <adam.wight@wikimedia.de>
|
||||
Adam Roses Wight <adam.wight@wikimedia.de> <awight@wikimedia.org>
|
||||
Adam Roses Wight <adam.wight@wikimedia.de> <spam@ludd.net>
|
||||
addshore <addshorewiki@gmail.com>
|
||||
addshore <addshorewiki@gmail.com> <adamshorland@gmail.com>
|
||||
Aditya Sastry <ganeshaditya1@gmail.com>
|
||||
Adrian Heine <adrian.heine@wikimedia.de>
|
||||
Alangi Derick <alangiderick@gmail.com>
|
||||
Alex Z. <mrzmanwiki@gmail.com> <mrzman@users.mediawiki.org>
|
||||
Aleksey Bekh-Ivanov <aleksey.bekh-ivanov@wikimedia.de>
|
||||
Alexandre Emsenhuber <ialex.wiki@gmail.com>
|
||||
Alexandre Emsenhuber <ialex.wiki@gmail.com> <ialex@users.mediawiki.org>
|
||||
Alexandre Emsenhuber <ialex.wiki@gmail.com> <mediawiki@emsenhuber.ch>
|
||||
Alexander Monk <krenair@gmail.com>
|
||||
Alexander Monk <krenair@gmail.com> <alex@wikimedia.org>
|
||||
Alexander Monk <krenair@gmail.com> <krenair@wikimedia.org>
|
||||
Alexia E. Smith <washuu@gmail.com>
|
||||
AlQaholic007 <soham.parekh1998@gmail.com>
|
||||
Amir E. Aharoni <amir.aharoni@mail.huji.ac.il>
|
||||
Amir E. Aharoni <amir.aharoni@mail.huji.ac.il> <amire80@users.mediawiki.org>
|
||||
Amir Sarabadani <ladsgroup@gmail.com> <Ladsgroup@gmail.com>
|
||||
Anders Wegge Jakobsen <awegge@gmail.com> <wegge@users.mediawiki.org>
|
||||
Andre Engels <andreengels@gmail.com> <a_engels@users.mediawiki.org>
|
||||
Andrew Garrett <agarrett@wikimedia.org>
|
||||
Andrew Garrett <agarrett@wikimedia.org> <werdna@users.mediawiki.org>
|
||||
Andrew Otto <acotto@gmail.com>
|
||||
Angela Beesley Starling <wiki@nge.la> <angelab@users.mediawiki.org>
|
||||
Antoine Musso <hashar@free.fr>
|
||||
Antoine Musso <hashar@free.fr> <hashar@users.mediawiki.org>
|
||||
Aran Dunkley <aran@organicdesign.co.nz> <nad@users.mediawiki.org>
|
||||
Ariel Glenn <ariel@wikimedia.org> <ariel@users.mediawiki.org>
|
||||
Ariel Glenn <ariel@wikimedia.org> <ariel@wikimedia.org>
|
||||
Arlo Breault <abreault@wikimedia.org>
|
||||
ArtBaltai <art.baltai@speedandfunction.com>
|
||||
Arthur Richards <arichards@wikimedia.org>
|
||||
Arthur Richards <arichards@wikimedia.org> <awjrichards@users.mediawiki.org>
|
||||
Aryeh Gregor <ayg@aryeh.name> <simetrical@users.mediawiki.org>
|
||||
Asher Feldman <afeldman@wikimedia.org>
|
||||
Asher Feldman <afeldman@wikimedia.org> <asher@users.mediawiki.org>
|
||||
aude <aude.wiki@gmail.com>
|
||||
Audrey Tang <audreyt@audreyt.org>
|
||||
Audrey Tang <audreyt@audreyt.org> <au@localhost>
|
||||
ayush_garg <ayush.ce13@iitp.ac.in>
|
||||
Bae Junehyeon <devunt@gmail.com>
|
||||
Bahodir Mansurov <bmansurov@wikimedia.org>
|
||||
Bartosz Dziewoński <matma.rex@gmail.com>
|
||||
Bartosz Dziewoński <matma.rex@gmail.com> <bdziewonski@wikimedia.org>
|
||||
Bartosz Dziewoński <matma.rex@gmail.com> <matmarex@wikimedia.org>
|
||||
Ben Hartshorne <bhartshorne@wikimedia.org> <ben@users.mediawiki.org>
|
||||
Bene <benestar.wikimedia@gmail.com>
|
||||
Bene <benestar.wikimedia@gmail.com> <benestar.wikimedia@googlemail.com>
|
||||
Benny Situ <bsitu@wikimedia.org>
|
||||
Benny Situ <bsitu@wikimedia.org> <bsitu@users.mediawiki.org>
|
||||
Bertrand Grondin <bertrand.grondin@tiscali.fr> <grondin@users.mediawiki.org>
|
||||
Brad Jorsch <bjorsch@wikimedia.org>
|
||||
Brad Jorsch <bjorsch@wikimedia.org> <anomie.wikipedia@gmail.com>
|
||||
Brandon Harris <bharris@wikimedia.org> <bharris@users.mediawiki.org>
|
||||
Brian Wolff <bawolff+wn@gmail.com>
|
||||
Brian Wolff <bawolff+wn@gmail.com> <bawolff+svn@gmail.com>
|
||||
Brian Wolff <bawolff+wn@gmail.com> <bawolff@users.mediawiki.org>
|
||||
Brion Vibber <brion@wikimedia.org>
|
||||
Brion Vibber <brion@wikimedia.org> <brion@pobox.com>
|
||||
Brion Vibber <brion@wikimedia.org> <brion@users.mediawiki.org>
|
||||
Bryan Davis <bd808@wikimedia.org>
|
||||
Bryan Davis <bd808@wikimedia.org> <bd808@bd808.com>
|
||||
Bryan Tong Minh <bryan.tongminh@gmail.com>
|
||||
Bryan Tong Minh <bryan.tongminh@gmail.com> <btongminh@users.mediawiki.org>
|
||||
C. Scott Ananian <cscott@cscott.net>
|
||||
C. Scott Ananian <cscott@cscott.net> <cananian@wikimedia.org>
|
||||
Cacycle <cacyclewp@gmail.com>
|
||||
cenarium <cenarium.sysop@gmail.com>
|
||||
Chad Horohoe <chadh@wikimedia.org>
|
||||
Chad Horohoe <chadh@wikimedia.org> <demon@users.mediawiki.org>
|
||||
Charles Melbye <charlie@yourwiki.net> <charlie@users.mediawiki.org>
|
||||
Chiefwei <chiefwei1989@gmail.com>
|
||||
Chris Koerner <ckoerner@wikimedia.org>
|
||||
Chris McMahon <cmcmahon@wikimedia.org>
|
||||
Chris Steipp <csteipp@wikimedia.org>
|
||||
Christian Aistleitner <christian@quelltextlich.at>
|
||||
Christian Aistleitner <christian@quelltextlich.at> <qchris@users.mediawiki.org>
|
||||
Christian Williams <orbit@framezero.com>
|
||||
Christian Williams <orbit@framezero.com> <christian@localhost>
|
||||
Christian Williams <orbit@framezero.com> <christian@wikia-inc.com>
|
||||
Christoph Jauera <christoph.jauera@wikimedia.de>
|
||||
Christoph Jauera <christoph.jauera@wikimedia.de> <christoph.fischer@wikimedia.de>
|
||||
Christopher Johnson <root@bugzilla.wmde.de>
|
||||
church of emacs <churchofemacs@users.mediawiki.org>
|
||||
Cindy Cicalese <ccicalese@wikimedia.org>
|
||||
Cindy Cicalese <ccicalese@wikimedia.org> <cicalese@mitre.org>
|
||||
Cindy Cicalese <ccicalese@wikimedia.org> <cindom@gmail.com>
|
||||
ckoerner <nobelx@gmail.com>
|
||||
Conrad Irwin <conrad.irwin+wiki@gmail.com> <conrad@users.mediawiki.org>
|
||||
Dan Duvall <dduvall@wikimedia.org>
|
||||
dan-nl <d_entous@yahoo.com>
|
||||
Daniel A. R. Werner <daniel.a.r.werner@gmail.com>
|
||||
Daniel Cannon <cannon.danielc@gmail.com> <amidaniel@users.mediawiki.org>
|
||||
Daniel Friesen <mediawiki@danielfriesen.name>
|
||||
Daniel Friesen <mediawiki@danielfriesen.name> <daniel@nadir-seen-fire.com>
|
||||
Daniel Friesen <mediawiki@danielfriesen.name> <dantman@users.mediawiki.org>
|
||||
Daniel Friesen <mediawiki@danielfriesen.name> <pub-github@nadir-seen-fire.com>
|
||||
Daniel Kinzler <dkinzler@wikimedia.org>
|
||||
Daniel Kinzler <dkinzler@wikimedia.org> <daniel.kinzler@wikimedia.de>
|
||||
Daniel Kinzler <dkinzler@wikimedia.org> <daniel@users.mediawiki.org>
|
||||
Daniel Renfro <bluecurio@gmail.com> <drenfro@vistaprint.com>
|
||||
Danny B. <Wikipedia.Danny.B@email.cz>
|
||||
Danny B. <Wikipedia.Danny.B@email.cz> <danny.b@email.cz>
|
||||
Danny B. <Wikipedia.Danny.B@email.cz> <danny_b@users.mediawiki.org>
|
||||
Danny B. <Wikipedia.Danny.B@email.cz> <wikimedia.danny.b@email.cz>
|
||||
Darian Anthony Patrick <dpatrick@wikimedia.org>
|
||||
Darkdragon09 <ubuntu@ip-172-31-39-38.us-west-2.compute.internal>
|
||||
David Barratt <dbarratt@wikimedia.org>
|
||||
David Causse <dcausse@wikimedia.org>
|
||||
David Chan <david@sheetmusic.org.uk>
|
||||
Dayllan Maza <dmaza@wikimedia.org>
|
||||
Dayllan Maza <dmaza@wikimedia.org> <dayllan.maza@gmail.com>
|
||||
Dereckson <dereckson@espace-win.org>
|
||||
Derk-Jan Hartman <hartman@videolan.org>
|
||||
Derk-Jan Hartman <hartman@videolan.org> <hartman.wiki@gmail.com>
|
||||
Derk-Jan Hartman <hartman@videolan.org> <hartman@users.mediawiki.org>
|
||||
Devi Krishnan <devikrishnan67@gmail.com>
|
||||
Diederik van Liere <dvanliere@gmail.com> <diederik@users.mediawiki.org>
|
||||
Domas Mituzas <domas.mituzas@gmail.com> <midom@users.mediawiki.org>
|
||||
Douglas Gardner <douglas@chippy.ch>
|
||||
DPStokesNZ <duncan.stokes@gmail.com>
|
||||
Ebrahim Byagowi <ebrahim@gnu.org>
|
||||
Ed Sanders <esanders@wikimedia.org>
|
||||
Elliott Eggleston <eeggleston@wikimedia.org>
|
||||
Elliott Eggleston <eeggleston@wikimedia.org> <ejegg@ejegg.com>
|
||||
Emad Elwany <emadelwany@hotmail.com>
|
||||
Emmanuel Engelhart <kelson@kiwix.org> <kelson42@users.mediawiki.org>
|
||||
Emufarmers <emufarmers@gmail.com>
|
||||
Emufarmers <emufarmers@gmail.com> <emufarmers@users.mediawiki.org>
|
||||
Entlinkt <entlinkt@gmx-topmail.de>
|
||||
Eranroz <eranroz89@gmail.com>
|
||||
Erik Bernhardson <ebernhardson@wikimedia.org>
|
||||
Erik Moeller <erik@wikimedia.org>
|
||||
Erik Moeller <erik@wikimedia.org> <erik@users.mediawiki.org>
|
||||
Erwin Dokter <erwin@darcoury.nl>
|
||||
Evan McIntire <mcintire.evan@gmail.com>
|
||||
Evan Prodromou <evanprodromou@users.mediawiki.org> <evan@users.mediawiki.org>
|
||||
Federico Leva <federicoleva@tiscali.it>
|
||||
Fenzik Joseph <fenzik@gmail.com> <fenzik@users.mediawiki.org>
|
||||
Florian Schmidt <florian.schmidt.welzow@t-online.de>
|
||||
Florian Schmidt <florian.schmidt.welzow@t-online.de> <florian.schmidt.stargatewissen@gmail.com>
|
||||
fomafix <fomafix@googlemail.com>
|
||||
Fran Rogers <fran@dumetella.net>
|
||||
Fran Rogers <fran@dumetella.net> <krimpet@users.mediawiki.org>
|
||||
freakolowsky <freak@drajv.si>
|
||||
FunPika <funpikawiki@gmail.com>
|
||||
Gabriel Wicke <gwicke@wikimedia.org>
|
||||
Gabriel Wicke <gwicke@wikimedia.org> <gwicke@users.mediawiki.org>
|
||||
Gabriel Wicke <gwicke@wikimedia.org> <wicke@wikidev.net>
|
||||
Geoffrey Mon <geofbot@gmail.com>
|
||||
Geoffrey Trang <geoffreytrang@gmail.com>
|
||||
Gergő Tisza <gtisza@wikimedia.org>
|
||||
Gergő Tisza <gtisza@wikimedia.org> <tgr.huwiki@gmail.com>
|
||||
Giftpflanze <gifti@tools.wmflabs.org>
|
||||
Gilles Dubuc <gdubuc@wikimedia.org> <gilles@wikimedia.org>
|
||||
Gilles Dubuc <gdubuc@wikimedia.org>
|
||||
gladoscc <admin@glados.cc>
|
||||
glaisher <glaisher.wiki@gmail.com>
|
||||
Greg Sabino Mullane <greg@turnstep.com>
|
||||
Greg Sabino Mullane <greg@turnstep.com> <greg@endpoint.com>
|
||||
Greg Sabino Mullane <greg@turnstep.com> <greg@users.mediawiki.org>
|
||||
Grunny <mwgrunny@gmail.com>
|
||||
Guy Van den Broeck <guyvdb@gmail.com> <guyvdb@users.mediawiki.org>
|
||||
Happy-melon <happy-melon@live.com> <happy-melon@users.mediawiki.org>
|
||||
Helder <he7d3r@gmail.com>
|
||||
Helder <he7d3r@gmail.com> <helder.wiki@gmail.com>
|
||||
Hoo man <hoo@online.de>
|
||||
Huji <huji.huji@gmail.com>
|
||||
Huji <huji.huji@gmail.com> <huji@users.mediawiki.org>
|
||||
Ian Baker <ibaker@wikimedia.org> <raindrift@users.mediawiki.org>
|
||||
Ilmari Karonen <nospam@vyznev.net> <vyznev@users.mediawiki.org>
|
||||
Inez Korczyński <inez@wikia-inc.com>
|
||||
Inez Korczyński <inez@wikia-inc.com> <inez@users.mediawiki.org>
|
||||
isarra <s@zaori.org>
|
||||
isarra <s@zaori.org> <zhorishna@gmail.com>
|
||||
Ivan Lanin <ivanlanin@gmail.com> <ivanlanin@users.mediawiki.org>
|
||||
Jack Phoenix <jack@countervandalism.net>
|
||||
Jack Phoenix <jack@countervandalism.net> <ashley@users.mediawiki.org>
|
||||
Jackmcbarn <jackmcbarn@gmail.com>
|
||||
Jackmcbarn <jackmcbarn@gmail.com> <jackmcbarn@users.noreply.github.com>
|
||||
jagori <jagori79@gmail.com>
|
||||
James D. Forrester <jforrester@wikimedia.org>
|
||||
Jaime Crespo <jcrespo@wikimedia.org>
|
||||
Jan Gerber <j@thing.net> <j@users.mediawiki.org>
|
||||
Jan Luca Naumann <jan@jans-seite.de>
|
||||
Jan Luca Naumann <jan@jans-seite.de> <jan@users.mediawiki.org>
|
||||
Jan Paul Posma <jp.posma@gmail.com> <janpaul123@users.mediawiki.org>
|
||||
Jan Zerebecki <jan.wikimedia@zerebecki.de>
|
||||
Jared Flores <jaredflores2000@gmail.com>
|
||||
Jaroslav Škarvada <jskarvad@redhat.com>
|
||||
jarrettmunton <jmuntjmunt@gmail.com>
|
||||
Jason Richey <jasonr@wikia.com>
|
||||
Jason Richey <jasonr@wikia.com> <jasonr@users.mediawiki.org>
|
||||
Jason Richey <jasonr@wikia.com> <urichj00@users.mediawiki.org>
|
||||
Jeff Hall <jeffreyehall@gmail.com>
|
||||
Jeff Hall <jeffreyehall@gmail.com> <jhall@wikimedia.org>
|
||||
Jeff Hobson <jhobson@wikimedia.org>
|
||||
Jeff Janes <jeff.janes@gmail.com>
|
||||
Jeremy Baron <jeremy@tuxmachine.com>
|
||||
Jeremy Postlethwaite <jpostlethwaite@wikimedia.org> <jpostlethwaite@users.mediawiki.org>
|
||||
Jeroen De Dauw <jeroendedauw@gmail.com>
|
||||
Jeroen De Dauw <jeroendedauw@gmail.com> <jeroendedauw@users.mediawiki.org>
|
||||
Jesús Martínez Novo <martineznovo@gmail.com>
|
||||
Jiabao <jiabao.foss@gmail.com>
|
||||
Jimmy Collins <jimmy.collins@web.de> <collinj@users.mediawiki.org>
|
||||
Joel Sahleen <jsahleen@wikimedia.org>
|
||||
John Du Hart <john@compwhizii.net> <johnduhart@users.mediawiki.org>
|
||||
John Erling Blad <john.blad@wikimedia.de>
|
||||
Jon Harald Søby <jhsoby@gmail.com> <jhsoby@users.mediawiki.org>
|
||||
Jon Harald Søby <jhsoby@gmail.com>
|
||||
Jon Robson <jrobson@wikimedia.org>
|
||||
Jon Robson <jrobson@wikimedia.org> <jdlrobson@gmail.com>
|
||||
Juliusz Gonera <jgonera@gmail.com>
|
||||
Juliusz Gonera <jgonera@gmail.com> <jgonera@wikimedia.org>
|
||||
Jure Kajzer <freak@drajv.si>
|
||||
Jure Kajzer <freak@drajv.si> <freakolowsky@users.mediawiki.org>
|
||||
Justin Du <justin.d128@gmail.com>
|
||||
Kai Nissen <kai.nissen@wikimedia.de>
|
||||
Karun Dambiec <karun.84@gmx.de>
|
||||
Katie Filbert <aude.wiki@gmail.com>
|
||||
Katie Filbert <aude.wiki@gmail.com> <aude@users.mediawiki.org>
|
||||
Kevin Israel <pleasestand@live.com>
|
||||
Kosta Harlan <kharlan@wikimedia.org>
|
||||
Kosta Harlan <kharlan@wikimedia.org> <kosta@fastmail.com>
|
||||
Kunal Grover <kunalgrover05@gmail.com>
|
||||
Kunal Mehta <legoktm@member.fsf.org>
|
||||
Kunal Mehta <legoktm@member.fsf.org> <legoktm.wikipedia@gmail.com>
|
||||
Kunal Mehta <legoktm@member.fsf.org> <legoktm@gmail.com>
|
||||
Kwan Ting Chan <ktc@ktchan.info> <ktchan@users.mediawiki.org>
|
||||
lekshmi <andnlnbn18@gmail.com>
|
||||
Leo Koppelkamm <diebuche@gmail.com> <diebuche@users.mediawiki.org>
|
||||
Leon Liesener <leon.liesener@wikipedia.de>
|
||||
Leon Weber <leon@vserver152.masterssystems.com> <leon@users.mediawiki.org>
|
||||
Leonardo Gregianin <leogregianin@googlemail.com> <leogregianin@users.mediawiki.org>
|
||||
Leons Petrazickis <leons.petrazickis.haveyouconsiderednotincludingthisphrase@gmail.com> <leonsp@users.mediawiki.org>
|
||||
liangent <liangent@gmail.com>
|
||||
Lisa Ridley <lhridley@gmail.com> <lhridley@users.mediawiki.org>
|
||||
Ljudusika <plo2000@i.ua>
|
||||
Lucas Werkmeister <lucas.werkmeister@wikimedia.de>
|
||||
Luis Felipe Schenone <schenonef@gmail.com>
|
||||
Luke Welling <lwelling@wikimedia.org>
|
||||
Lupo <lupo.bugzilla@gmail.com>
|
||||
m4tx <m4tx@m4tx.pl>
|
||||
Madman <madman.enwiki@gmail.com>
|
||||
Magnus Manske <magnusmanske@googlemail.com> <magnusmanske@users.mediawiki.org>
|
||||
Manuel Schneider <manuel.schneider@wikimedia.ch> <80686@users.mediawiki.org>
|
||||
Marc-André Pelletier <marc@uberbox.org>
|
||||
Marcin Cieślak <saper@saper.info>
|
||||
Marcin Cieślak <saper@saper.info> <saper@users.mediawiki.org>
|
||||
Marco Falke <maic23@live.de>
|
||||
MarcoAurelio <strigiwm@gmail.com>
|
||||
MarcoAurelio <strigiwm@gmail.com> <maurelio@tools.wmflabs.org>
|
||||
Marielle Volz <marielle.volz@gmail.com>
|
||||
Marius Hoch <hoo@online.de>
|
||||
Mark Clements <mediawiki@kennel17.co.uk> <happydog@users.mediawiki.org>
|
||||
Mark Hershberger <mah@everybody.org>
|
||||
Mark Hershberger <mah@everybody.org> <mah@nichework.com>
|
||||
Mark Hershberger <mah@everybody.org> <mah@users.mediawiki.org>
|
||||
Mark Hershberger <mah@everybody.org> <mhershberger@wikimedia.org>
|
||||
Mark Holmquist <mtraceur@member.fsf.org>
|
||||
Mark Holmquist <mtraceur@member.fsf.org> <mholmquist@wikimedia.org>
|
||||
Marko Obrovac <mobrovac@wikimedia.org>
|
||||
Markus Glaser <glaser@hallowelt.biz>
|
||||
Markus Glaser <glaser@hallowelt.biz> <mglaser@users.mediawiki.org>
|
||||
Martin Urbanec <martin.urbanec@wikimedia.cz>
|
||||
Matt Johnston <mattj@emazestudios.com> <mattj@users.mediawiki.org>
|
||||
Matthew Britton <hugglegurch@gmail.com> <gurch@users.mediawiki.org>
|
||||
Matthew Bowker <matthewrbowker.bugs@gmail.com>
|
||||
Matthew Flaschen <mflaschen@wikimedia.org>
|
||||
Matthew Walker <mwalker@wikimedia.org>
|
||||
MatthiasDD <Matthias_K2@gmx.de>
|
||||
Matthias Mullie <git@mullie.eu>
|
||||
Matthias Mullie <git@mullie.eu> <mmullie@wikimedia.org>
|
||||
Matěj Grabovský <mgrabovsky@yahoo.com> <mgrabovsky@users.mediawiki.org>
|
||||
Matěj Suchánek <matejsuchanek97@gmail.com>
|
||||
Max Semenik <maxsem.wiki@gmail.com>
|
||||
Max Semenik <maxsem.wiki@gmail.com> <maxsem@users.mediawiki.org>
|
||||
Max Semenik <maxsem.wiki@gmail.com> <semenik@gmail.com>
|
||||
mgooley <g0013y@gmail.com>
|
||||
Michael Dale <mdale@wikimedia.org> <dale@users.mediawiki.org>
|
||||
mjbmr <mjbmri@gmail.com>
|
||||
Mohamed Magdy <mohamedmk@gmail.com> <alnokta@users.mediawiki.org>
|
||||
Moriel Schottlender <mschottlender@wikimedia.org>
|
||||
Moriel Schottlender <mschottlender@wikimedia.org> <moriel@gmail.com>
|
||||
Mormegil <mormegil@centrum.cz>
|
||||
MrBlueSky <mrbluesky@wikipedia.be>
|
||||
MrBlueSky <mrbluesky@wikipedia.be> <mrbluesky@localhost>
|
||||
Mukunda Modell <mmodell@wikimedia.org>
|
||||
MZMcBride <g@mzmcbride.com>
|
||||
nadeesha <nadeesha@calcey.com> <nadeesha@users.mediawiki.org>
|
||||
Namit <namit.ohri@gmail.com>
|
||||
Nathan Larson <nathanlarson3141@gmail.com>
|
||||
Nathan Larson <nathanlarson3141@gmail.com> <tjlsangria@gmail.com>
|
||||
Nathaniel Herman <redwwjd@yahoo.com> <pinky@users.mediawiki.org>
|
||||
Neil Kandalgaonkar <neilk@wikimedia.org> <neilk@users.mediawiki.org>
|
||||
Nemo bis <federicoleva@tiscali.it>
|
||||
nephele <nephele@skyhighway.com> <nephele@users.mediawiki.org>
|
||||
Nick Jenkins <nickpj@gmail.com> <nickj@users.mediawiki.org>
|
||||
Niharika Kohli <nkohli@wikimedia.org>
|
||||
Nik Everett <neverett@wikimedia.org>
|
||||
Niklas Laxström <niklas.laxstrom@gmail.com>
|
||||
Niklas Laxström <niklas.laxstrom@gmail.com> <nikerabbit@users.mediawiki.org>
|
||||
Nimish Gautam <nimishg@wikimedia.org> <nimishg@users.mediawiki.org>
|
||||
Nuria Ruiz <nuria@wikimedia.org>
|
||||
Ori Livneh <ori@wikimedia.org>
|
||||
Ori Livneh <ori@wikimedia.org> <ori.livneh@gmail.com>
|
||||
OverlordQ <wikipedia@thedarkcitadel.com> <overlordq@users.mediawiki.org>
|
||||
Owen Davis <owen@wikia-inc.com>
|
||||
Owen Davis <owen@wikia-inc.com> <owen@users.mediawiki.org>
|
||||
paladox <thomasmulhall410@yahoo.com>
|
||||
Patricio Molina <patriciomolina@gmail.com>
|
||||
Patrick Reilly <preilly@wikimedia.org>
|
||||
Patrick Reilly <preilly@wikimedia.org> <preilly@users.mediawiki.org>
|
||||
Patrick Westerhoff <PatrickWesterhoff@gmail.com>
|
||||
Paul Copperman <paul.copperman@gmail.com> <pcopp@users.mediawiki.org>
|
||||
Petar Petković <ppetkovic@wikimedia.org>
|
||||
Peter Coombe <pcoombe@wikimedia.org>
|
||||
Peter Coti <petercoti@gmail.com>
|
||||
Peter Potrowl <peter017@gmail.com> <peter17@users.mediawiki.org>
|
||||
Petr Kadlec <mormegil@centrum.cz>
|
||||
Philip Tzou <philip.npc@gmail.com> <philip@users.mediawiki.org>
|
||||
physikerwelt (Moritz Schubotz) <wiki@physikerwelt.de>
|
||||
PiRSquared17 <pirsquared@tools.wmflabs.org>
|
||||
Platonides <platonides@gmail.com> <platonides@users.mediawiki.org>
|
||||
pppery <mapreader@olum.org>
|
||||
PranavK <pranavmk98@gmail.com>
|
||||
Prateek Saxena <psaxena@wikimedia.org>
|
||||
Prateek Saxena <psaxena@wikimedia.org> <prtksxna@gmail.com>
|
||||
Priyanka Dhanda <pdhanda@wikimedia.org> <pdhanda@users.mediawiki.org>
|
||||
Purodha Blissenbach <purodha@blissenbach.org>
|
||||
Purodha Blissenbach <purodha@blissenbach.org> <publi@web.de>
|
||||
Purodha Blissenbach <purodha@blissenbach.org> <purodha@users.mediawiki.org>
|
||||
Pwirth <wirth@hallowelt.biz>
|
||||
Raimond Spekking <raimond.spekking@gmail.com>
|
||||
Raimond Spekking <raimond.spekking@gmail.com> <raymond@users.mediawiki.org>
|
||||
Remember the dot <rememberthedot@gmail.com> <rememberthedot@users.mediawiki.org>
|
||||
Reza <reza.energy@gmail.com>
|
||||
Ricordisamoa <ricordisamoa@openmailbox.org>
|
||||
rillke <rillke@wikipedia.de>
|
||||
rillke <rillke@wikipedia.de> <rainerrillke@hotmail.com>
|
||||
River Tarnell <river@wikimedia.org> <kateturner@users.mediawiki.org>
|
||||
River Tarnell <river@wikimedia.org> <river@users.mediawiki.org>
|
||||
Roan Kattouw <roan.kattouw@gmail.com>
|
||||
Roan Kattouw <roan.kattouw@gmail.com> <catrope@users.mediawiki.org>
|
||||
Roan Kattouw <roan.kattouw@gmail.com> <roan@wikimedia.org>
|
||||
Rob Church <robchur@gmail.com> <robchurch@users.mediawiki.org>
|
||||
Rob Lanphier <robla@robla.net>
|
||||
Rob Lanphier <robla@robla.net> <robla@users.mediawiki.org>
|
||||
Rob Lanphier <robla@robla.net> <robla@wikimedia.org>
|
||||
Rob Moen <rmoen@mediawiki.org>
|
||||
Rob Moen <rmoen@mediawiki.org> <rmoen@users.mediawiki.org>
|
||||
Rob Moen <rmoen@mediawiki.org> <rmoen@wikimedia.org>
|
||||
Robert Hoenig <indielives010@gmail.com>
|
||||
Robert Leverington <robert@rhl.me.uk> <roberthl@users.mediawiki.org>
|
||||
Robert Rohde <rarohde@gmail.com> <rarohde@users.mediawiki.org>
|
||||
Robert Stojnić <rainmansr@gmail.com> <rainman@users.mediawiki.org>
|
||||
Robert Vogel <vogel@hallowelt.biz>
|
||||
Robin Pepermans <robinp.1273@gmail.com>
|
||||
Robin Pepermans <robinp.1273@gmail.com> <robin@users.mediawiki.org>
|
||||
robinhood701 <robinhood70@live.ca>
|
||||
Rohan <rohan1395@yahoo.com>
|
||||
Rotem Liss <rotemliss@gmail.com> <rotem@users.mediawiki.org>
|
||||
Rummana Yasmeen <ryasmeen@wikimedia.org>
|
||||
Russ Nelson <russnelson@gmail.com> <nelson@users.mediawiki.org>
|
||||
Ryan Kaldari <rkaldari@wikimedia.org>
|
||||
Ryan Kaldari <rkaldari@wikimedia.org> <kaldari@gmail.com>
|
||||
Ryan Kaldari <rkaldari@wikimedia.org> <kaldari@users.mediawiki.org>
|
||||
Ryan Lane <rlane32@gmail.com>
|
||||
Ryan Lane <rlane32@gmail.com> <laner@users.mediawiki.org>
|
||||
Ryan Lane <rlane32@gmail.com> <rlane@wikimedia.org>
|
||||
Ryan Schmidt <skizzerz@gmail.com>
|
||||
Ryan Schmidt <skizzerz@gmail.com> <skizzerz@skizzerz.net>
|
||||
Ryan Schmidt <skizzerz@gmail.com> <skizzerz@users.mediawiki.org>
|
||||
S Page <spage@wikimedia.org>
|
||||
SBassett <sbassett@wikimedia.org>
|
||||
Sakretsu <sakretsu.wiki@gmail.com>
|
||||
Sam Reed <reedy@wikimedia.org>
|
||||
Sam Reed <reedy@wikimedia.org> <sam@reedyboy.net>
|
||||
Sam Reed <reedy@wikimedia.org> <Reedy reedy@wikimedia.org>
|
||||
Sam Reed <reedy@wikimedia.org> <reedy@formey.wikimedia.org>
|
||||
Sam Reed <reedy@wikimedia.org> <reedy@users.mediawiki.org>
|
||||
Sam Smith <git@samsmith.io>
|
||||
Santhosh Thottingal <santhosh.thottingal@gmail.com>
|
||||
Santhosh Thottingal <santhosh.thottingal@gmail.com> <santhosh@users.mediawiki.org>
|
||||
Schnark (Michael M.) <listenleser@gmail.com>
|
||||
Scimonster <tehalmightyscimonster@gmail.com>
|
||||
Sean Colombo <sean.colombo@gmail.com> <sean_colombo@users.mediawiki.org>
|
||||
Sean Pringle <springle@wikimedia.org>
|
||||
Seb35 <seb35wikipedia@gmail.com>
|
||||
Sergio Santoro <santoro.srg@gmail.com>
|
||||
Shahyar <shahyar@gmail.com>
|
||||
Shinjiman <shinjiman@gmail.com>
|
||||
Shinjiman <shinjiman@gmail.com> <shinjiman@users.mediawiki.org>
|
||||
shirayuki <shirayuking@gmail.com>
|
||||
Siebrand Mazeland <s.mazeland@xs4all.nl>
|
||||
Siebrand Mazeland <s.mazeland@xs4all.nl> <siebrand@kitano.nl>
|
||||
Siebrand Mazeland <s.mazeland@xs4all.nl> <siebrand@users.mediawiki.org>
|
||||
Siebrand Mazeland <s.mazeland@xs4all.nl> <siebrand@wikimedia.org>
|
||||
Smriti Singh <smritis.31095@gmail.com>
|
||||
Sorawee Porncharoenwase <nullzero.free@gmail.com>
|
||||
Southparkfan <southparkfan223@hotmail.com>
|
||||
SQL <sxwiki@gmail.com> <sql@users.mediawiki.org>
|
||||
Stanislav Malyshev <smalyshev@gmail.com>
|
||||
Stephan Gambke <s7eph4n@gmail.com>
|
||||
Stephane Bisson <sbisson@wikimedia.org>
|
||||
Stephen Liang <github@stephenliang.pw>
|
||||
Steve Sanbeg <ffnaort@jro.qr> <sanbeg@users.mediawiki.org>
|
||||
Steven Roddis <StevenRoddis@users.noreply.github.com>
|
||||
Steven Walling <swalling@wikimedia.org>
|
||||
Subramanya Sastry <ssastry@wikimedia.org>
|
||||
Sucheta Ghoshal <sghoshal@wikimedia.org>
|
||||
Sumit Asthana <asthana.sumit23@gmail.com>
|
||||
Taavi Väänänen <hi@tassu.me>
|
||||
tacsipacsi <tacsipacsi@jnet.hu>
|
||||
TerraCodes <terracodes@tools.wmflabs.org>
|
||||
Thalia Chan <thalia@cantorion.org>
|
||||
Thalia Chan <thalia@cantorion.org> <thalia.e.chan@googlemail.com>
|
||||
Thiemo Kreuz <thiemo.kreuz@wikimedia.de>
|
||||
Thiemo Kreuz <thiemo.kreuz@wikimedia.de> <thiemo.maettig@wikimedia.de>
|
||||
Thiemo Kreuz <thiemo.kreuz@wikimedia.de> <mr.heat@gmx.de>
|
||||
This, that and the other <at.light@live.com.au>
|
||||
tholam <t.lam@lamsinfosystem.com>
|
||||
Thomas Bleher <ThomasBleher@gmx.de> <tbleher@users.mediawiki.org>
|
||||
Thomas Dalton <thomas.dalton@gmail.com> <tango@users.mediawiki.org>
|
||||
Thomas Gries <mail@tgries.de> <wikinaut@users.mediawiki.org>
|
||||
Tim Landscheidt <tim@tim-landscheidt.de>
|
||||
Tim Laqua <t.laqua@gmail.com> <tlaqua@users.mediawiki.org>
|
||||
Tim Starling <tstarling@wikimedia.org>
|
||||
Tim Starling <tstarling@wikimedia.org> <tstarling@users.mediawiki.org>
|
||||
Timo Tijhof <krinklemail@gmail.com>
|
||||
Timo Tijhof <krinklemail@gmail.com> <krinkle@users.mediawiki.org>
|
||||
Timo Tijhof <krinklemail@gmail.com> <timo@wikimedia.org>
|
||||
Timo Tijhof <krinklemail@gmail.com> <ttijhof@wikimedia.org>
|
||||
Tina Johnson <tinajohnson.1234@gmail.com>
|
||||
Tom Maaswinkel <tom.maaswinkel@12wiki.eu> <thedevilonline@users.mediawiki.org>
|
||||
Tomasz Finc <tfinc@wikimedia.org> <tomasz@users.mediawiki.org>
|
||||
Tomasz W. Kozlowski <tomasz@twkozlowski.com>
|
||||
Tomasz W. Kozlowski <tomasz@twkozlowski.com> <tomasz@twkozlowski.net>
|
||||
Tomasz W. Kozlowski <tomasz@twkozlowski.com> <twkozlowski@gmail.com>
|
||||
Tony Thomas <01tonythomas@gmail.com>
|
||||
Tpt <thomaspt@hotmail.fr>
|
||||
Trevor Parscal <trevorparscal@gmail.com>
|
||||
Trevor Parscal <trevorparscal@gmail.com> <tparscal@users.mediawiki.org>
|
||||
Trevor Parscal <trevorparscal@gmail.com> <tparscal@wikimedia.org>
|
||||
Trey Jones <tjones@wikimedia.org>
|
||||
Tyler Cipriani <tcipriani@wikimedia.org>
|
||||
Tyler Romeo <tylerromeo@gmail.com>
|
||||
Umherirrender <umherirrender_de.wp@web.de>
|
||||
Victor Barbu <victorbarbu08@gmail.com>
|
||||
Victor Vasiliev <vasilvv@mit.edu>
|
||||
Victor Vasiliev <vasilvv@mit.edu> <vasilievvv@users.mediawiki.org>
|
||||
Victor Vasiliev <vasilvv@mit.edu> <vasilvv@gmail.com>
|
||||
Vikas S Yaligar <vikasyaligar.it@gmail.com>
|
||||
Vivek Ghaisas <v.a.ghaisas@gmail.com>
|
||||
Volker E <volker.e@wikimedia.org>
|
||||
wctaiwan <wctaiwan@gmail.com>
|
||||
withoutaname <drevitchi@gmail.com>
|
||||
X! <soxred93@gmail.com> <soxred93@users.mediawiki.org>
|
||||
Yaron Koren <yaron57@gmail.com>
|
||||
Yaron Koren <yaron57@gmail.com> <yaron@users.mediawiki.org>
|
||||
Yaroslav Melnychuk <yaroslavmelnuchuk@gmail.com>
|
||||
Yongmin Hong <revi@pobox.com>
|
||||
Yongmin Hong <revi@pobox.com> <revi@member.fsf.org>
|
||||
Yongmin Hong <revi@pobox.com> <reviwiki@gmail.com>
|
||||
Yuri Astrakhan <yurik@wikimedia.org>
|
||||
Yuri Astrakhan <yurik@wikimedia.org> <yuriastrakhan@gmail.com>
|
||||
Yuri Astrakhan <yurik@wikimedia.org> <yurik@users.mediawiki.org>
|
||||
Yuriy Shnitkovskiy <bmp2558@gmail.com>
|
||||
Yusuke Matsubara <whym@whym.org>
|
||||
Yuvi Panda <yuvipanda@gmail.com>
|
||||
Zak Greant <zak+mediawiki@fooassociates.com> <zak@users.mediawiki.org>
|
||||
Zhengzhu Feng <zhengzhu@gmail.com>
|
||||
Zhengzhu Feng <zhengzhu@gmail.com> <zhengzhu@users.mediawiki.org>
|
||||
Zoranzoki21 <zorandori4444@gmail.com>
|
||||
Zppix <support@zppixballee.com>
|
||||
Ævar Arnfjörð Bjarmason <avarab@gmail.com> <avar@users.mediawiki.org>
|
||||
Étienne Beaulé <beauleetienne0@gmail.com>
|
||||
Željko Filipin <zeljko.filipin@gmail.com>
|
||||
Željko Filipin <zeljko.filipin@gmail.com> <zfilipin@wikimedia.org>
|
||||
星耀晨曦 <razesoldier@outlook.com>
|
||||
星耀晨曦 <razesoldier@outlook.com> <liguangjie4399@hotmail.com>
|
129
.phan/config.php
129
.phan/config.php
|
@ -1,129 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*
|
||||
* @file
|
||||
*/
|
||||
|
||||
$disableTaintCheck = true;
|
||||
$cfg = require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';
|
||||
|
||||
$cfg['file_list'] = array_merge(
|
||||
$cfg['file_list'],
|
||||
class_exists( PEAR::class ) ? [] : [ '.phan/stubs/mail.php' ],
|
||||
defined( 'PASSWORD_ARGON2ID' ) ? [] : [ '.phan/stubs/password.php' ],
|
||||
class_exists( ValueError::class ) ? [] : [ '.phan/stubs/ValueError.php' ],
|
||||
[
|
||||
// This makes constants and globals known to Phan before processing all other files.
|
||||
// You can check the parser order with --dump-parsed-file-list
|
||||
'includes/Defines.php',
|
||||
// @todo This isn't working yet, see globals_type_map below
|
||||
// 'includes/DefaultSettings.php',
|
||||
// 'includes/Setup.php',
|
||||
]
|
||||
);
|
||||
|
||||
$cfg['exclude_file_list'] = array_merge(
|
||||
$cfg['exclude_file_list'],
|
||||
[
|
||||
// This file has invalid PHP syntax
|
||||
'vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.inc',
|
||||
]
|
||||
);
|
||||
|
||||
$cfg['analyzed_file_extensions'] = array_merge(
|
||||
$cfg['analyzed_file_extensions'] ?? [ 'php' ],
|
||||
[ 'inc' ]
|
||||
);
|
||||
|
||||
$cfg['autoload_internal_extension_signatures'] = [
|
||||
'dom' => '.phan/internal_stubs/dom.phan_php',
|
||||
'excimer' => '.phan/internal_stubs/excimer.php',
|
||||
'imagick' => '.phan/internal_stubs/imagick.phan_php',
|
||||
'intl' => '.phan/internal_stubs/intl.phan_php',
|
||||
'memcached' => '.phan/internal_stubs/memcached.phan_php',
|
||||
'oci8' => '.phan/internal_stubs/oci8.phan_php',
|
||||
'pcntl' => '.phan/internal_stubs/pcntl.phan_php',
|
||||
'pgsql' => '.phan/internal_stubs/pgsql.phan_php',
|
||||
'redis' => '.phan/internal_stubs/redis.phan_php',
|
||||
'sockets' => '.phan/internal_stubs/sockets.phan_php',
|
||||
'sqlsrv' => '.phan/internal_stubs/sqlsrv.phan_php',
|
||||
'tideways' => '.phan/internal_stubs/tideways.phan_php',
|
||||
'wikidiff2' => '.phan/internal_stubs/wikidiff.php'
|
||||
];
|
||||
|
||||
$cfg['directory_list'] = [
|
||||
'includes/',
|
||||
'languages/',
|
||||
'maintenance/',
|
||||
'mw-config/',
|
||||
'resources/',
|
||||
'vendor/',
|
||||
// Do NOT add .phan/stubs/ here: stubs are conditionally loaded in file_list
|
||||
];
|
||||
|
||||
$cfg['exclude_analysis_directory_list'] = [
|
||||
'vendor/',
|
||||
'.phan/',
|
||||
// The referenced classes are not available in vendor, only when
|
||||
// included from composer.
|
||||
'includes/composer/',
|
||||
// Directly references classes that only exist in Translate extension
|
||||
'maintenance/language/',
|
||||
// External class
|
||||
'includes/libs/jsminplus.php',
|
||||
// External class
|
||||
'includes/libs/objectcache/utils/MemcachedClient.php',
|
||||
];
|
||||
|
||||
// These are too spammy for now. TODO enable
|
||||
$cfg['null_casts_as_any_type'] = true;
|
||||
$cfg['scalar_implicit_cast'] = true;
|
||||
$cfg['suppress_issue_types'][] = 'PhanTypePossiblyInvalidDimOffset';
|
||||
$cfg['suppress_issue_types'][] = 'PhanPossiblyUndeclaredVariable';
|
||||
|
||||
// Do not use aliases in core.
|
||||
// Use the correct name, because we don't need backward compatibility
|
||||
$cfg['enable_class_alias_support'] = false;
|
||||
|
||||
$cfg['ignore_undeclared_variables_in_global_scope'] = true;
|
||||
// @todo It'd be great if we could just make phan read these from DefaultSettings, to avoid
|
||||
// duplicating the types.
|
||||
$cfg['globals_type_map'] = array_merge( $cfg['globals_type_map'], [
|
||||
'IP' => 'string',
|
||||
'wgGalleryOptions' => 'array',
|
||||
'wgDummyLanguageCodes' => 'string[]',
|
||||
'wgNamespaceProtection' => 'array<string,string|string[]>',
|
||||
'wgNamespaceAliases' => 'array<string,int>',
|
||||
'wgLockManagers' => 'array[]',
|
||||
'wgForeignFileRepos' => 'array[]',
|
||||
'wgDefaultUserOptions' => 'array',
|
||||
'wgSkipSkins' => 'string[]',
|
||||
'wgLogTypes' => 'string[]',
|
||||
'wgLogNames' => 'array<string,string>',
|
||||
'wgLogHeaders' => 'array<string,string>',
|
||||
'wgLogActionsHandlers' => 'array<string,class-string>',
|
||||
'wgPasswordPolicy' => 'array<string,array<string,string|array>>',
|
||||
'wgVirtualRestConfig' => 'array<string,array>',
|
||||
'wgWANObjectCaches' => 'array[]',
|
||||
'wgLocalInterwikis' => 'string[]',
|
||||
'wgDebugLogGroups' => 'string|false|array{destination:string,sample?:int,level:int}',
|
||||
'wgCookiePrefix' => 'string|false',
|
||||
'wgOut' => 'OutputPage',
|
||||
'wgExtraNamespaces' => 'string[]',
|
||||
] );
|
||||
|
||||
return $cfg;
|
|
@ -1,5 +0,0 @@
|
|||
See <https://github.com/phan/phan/wiki/How-To-Use-Stubs#generating-stubs> for
|
||||
how to generate internal stubs for phan.
|
||||
|
||||
The stubs should be generated using the PHP version that is our lowest
|
||||
requirement.
|
|
@ -1,420 +0,0 @@
|
|||
<?php
|
||||
// These stubs were generated by the phan stub generator.
|
||||
// @phan-stub-for-extension dom@20031129
|
||||
|
||||
namespace {
|
||||
class DOMAttr extends \DOMNode {
|
||||
|
||||
// properties
|
||||
public $name;
|
||||
public $ownerElement;
|
||||
public $schemaTypeInfo;
|
||||
public $specified;
|
||||
public $value;
|
||||
|
||||
// methods
|
||||
public function isId() {}
|
||||
public function __construct($name, $value = null) {}
|
||||
}
|
||||
|
||||
class DOMCdataSection extends \DOMText {
|
||||
|
||||
// methods
|
||||
public function __construct($value) {}
|
||||
}
|
||||
|
||||
class DOMCharacterData extends \DOMNode {
|
||||
|
||||
// properties
|
||||
public $data;
|
||||
public $length;
|
||||
|
||||
// methods
|
||||
public function substringData($offset, $count) {}
|
||||
public function appendData($arg) {}
|
||||
public function insertData($offset, $arg) {}
|
||||
public function deleteData($offset, $count) {}
|
||||
public function replaceData($offset, $count, $arg) {}
|
||||
}
|
||||
|
||||
class DOMComment extends \DOMCharacterData {
|
||||
|
||||
// methods
|
||||
public function __construct($value = null) {}
|
||||
}
|
||||
|
||||
class DOMConfiguration {
|
||||
|
||||
// methods
|
||||
public function setParameter($name, $value) {}
|
||||
public function getParameter($name = null) {}
|
||||
public function canSetParameter($name = null, $value = null) {}
|
||||
}
|
||||
|
||||
class DOMDocument extends \DOMNode {
|
||||
|
||||
// properties
|
||||
public $actualEncoding;
|
||||
public $config;
|
||||
public $doctype;
|
||||
public $documentElement;
|
||||
public $documentURI;
|
||||
public $encoding;
|
||||
public $formatOutput;
|
||||
public $implementation;
|
||||
public $preserveWhiteSpace;
|
||||
public $recover;
|
||||
public $resolveExternals;
|
||||
public $standalone;
|
||||
public $strictErrorChecking;
|
||||
public $substituteEntities;
|
||||
public $validateOnParse;
|
||||
public $version;
|
||||
public $xmlEncoding;
|
||||
public $xmlStandalone;
|
||||
public $xmlVersion;
|
||||
|
||||
// methods
|
||||
public function createElement($tagName, $value = null) {}
|
||||
public function createDocumentFragment() {}
|
||||
public function createTextNode($data) {}
|
||||
public function createComment($data) {}
|
||||
public function createCDATASection($data) {}
|
||||
public function createProcessingInstruction($target, $data) {}
|
||||
public function createAttribute($name) {}
|
||||
public function createEntityReference($name) {}
|
||||
public function getElementsByTagName($tagName) {}
|
||||
public function importNode(\DOMNode $importedNode, $deep) {}
|
||||
public function createElementNS($namespaceURI, $qualifiedName, $value = null) {}
|
||||
public function createAttributeNS($namespaceURI, $qualifiedName) {}
|
||||
public function getElementsByTagNameNS($namespaceURI, $localName) {}
|
||||
public function getElementById($elementId) {}
|
||||
public function adoptNode(\DOMNode $source) {}
|
||||
public function normalizeDocument() {}
|
||||
public function renameNode(\DOMNode $node, $namespaceURI, $qualifiedName) {}
|
||||
public function load($source, $options = null) {}
|
||||
public function save($file) {}
|
||||
public function loadXML($source, $options = null) {}
|
||||
public function saveXML(\DOMNode $node = null, $options = null) {}
|
||||
public function __construct($version = null, $encoding = null) {}
|
||||
public function validate() {}
|
||||
public function xinclude($options = null) {}
|
||||
public function loadHTML($source, $options = null) {}
|
||||
public function loadHTMLFile($source, $options = null) {}
|
||||
public function saveHTML() {}
|
||||
public function saveHTMLFile($file) {}
|
||||
public function schemaValidate($filename) {}
|
||||
public function schemaValidateSource($source) {}
|
||||
public function relaxNGValidate($filename) {}
|
||||
public function relaxNGValidateSource($source) {}
|
||||
public function registerNodeClass($baseClass, $extendedClass) {}
|
||||
}
|
||||
|
||||
class DOMDocumentFragment extends \DOMNode {
|
||||
|
||||
// properties
|
||||
public $name;
|
||||
|
||||
// methods
|
||||
public function __construct() {}
|
||||
public function appendXML($data) {}
|
||||
}
|
||||
|
||||
class DOMDocumentType extends \DOMNode {
|
||||
|
||||
// properties
|
||||
public $entities;
|
||||
public $internalSubset;
|
||||
public $name;
|
||||
public $notations;
|
||||
public $publicId;
|
||||
public $systemId;
|
||||
}
|
||||
|
||||
class DOMDomError {
|
||||
}
|
||||
|
||||
class DOMElement extends \DOMNode {
|
||||
|
||||
// properties
|
||||
public $schemaTypeInfo;
|
||||
public $tagName;
|
||||
|
||||
// methods
|
||||
public function getAttribute($name) {}
|
||||
public function setAttribute($name, $value) {}
|
||||
public function removeAttribute($name) {}
|
||||
public function getAttributeNode($name) {}
|
||||
public function setAttributeNode(\DOMAttr $newAttr) {}
|
||||
public function removeAttributeNode(\DOMAttr $oldAttr) {}
|
||||
public function getElementsByTagName($name) {}
|
||||
public function getAttributeNS($namespaceURI, $localName) {}
|
||||
public function setAttributeNS($namespaceURI, $qualifiedName, $value) {}
|
||||
public function removeAttributeNS($namespaceURI, $localName) {}
|
||||
public function getAttributeNodeNS($namespaceURI, $localName) {}
|
||||
public function setAttributeNodeNS(\DOMAttr $newAttr) {}
|
||||
public function getElementsByTagNameNS($namespaceURI, $localName) {}
|
||||
public function hasAttribute($name) {}
|
||||
public function hasAttributeNS($namespaceURI, $localName) {}
|
||||
public function setIdAttribute($name, $isId) {}
|
||||
public function setIdAttributeNS($namespaceURI, $localName, $isId) {}
|
||||
public function setIdAttributeNode(\DOMAttr $attr, $isId) {}
|
||||
public function __construct($name, $value = null, $uri = null) {}
|
||||
}
|
||||
|
||||
class DOMEntity extends \DOMNode {
|
||||
|
||||
// properties
|
||||
public $actualEncoding;
|
||||
public $encoding;
|
||||
public $notationName;
|
||||
public $publicId;
|
||||
public $systemId;
|
||||
public $version;
|
||||
}
|
||||
|
||||
class DOMEntityReference extends \DOMNode {
|
||||
|
||||
// properties
|
||||
public $name;
|
||||
|
||||
// methods
|
||||
public function __construct($name) {}
|
||||
}
|
||||
|
||||
class DOMErrorHandler {
|
||||
|
||||
// methods
|
||||
public function handleError(\DOMDomError $error) {}
|
||||
}
|
||||
|
||||
final class DOMException extends \Exception {
|
||||
|
||||
// properties
|
||||
public $code;
|
||||
protected $message;
|
||||
protected $file;
|
||||
protected $line;
|
||||
}
|
||||
|
||||
class DOMImplementation {
|
||||
|
||||
// properties
|
||||
public $name;
|
||||
|
||||
// methods
|
||||
public function getFeature($feature, $version) {}
|
||||
public function hasFeature() {}
|
||||
public function createDocumentType($qualifiedName, $publicId, $systemId) {}
|
||||
public function createDocument($namespaceURI, $qualifiedName, \DOMDocumentType $docType) {}
|
||||
}
|
||||
|
||||
class DOMImplementationList {
|
||||
|
||||
// methods
|
||||
public function item($index) {}
|
||||
}
|
||||
|
||||
class DOMImplementationSource {
|
||||
|
||||
// methods
|
||||
public function getDomimplementation($features) {}
|
||||
public function getDomimplementations($features) {}
|
||||
}
|
||||
|
||||
class DOMLocator {
|
||||
}
|
||||
|
||||
class DOMNameList {
|
||||
|
||||
// methods
|
||||
public function getName($index) {}
|
||||
public function getNamespaceURI($index) {}
|
||||
}
|
||||
|
||||
class DOMNameSpaceNode {
|
||||
}
|
||||
|
||||
class DOMNamedNodeMap implements \Traversable, \Countable {
|
||||
|
||||
// properties
|
||||
public $length;
|
||||
|
||||
// methods
|
||||
public function getNamedItem($name) {}
|
||||
public function setNamedItem(\DOMNode $arg) {}
|
||||
public function removeNamedItem($name = null) {}
|
||||
public function item($index = null) {}
|
||||
public function getNamedItemNS($namespaceURI = null, $localName = null) {}
|
||||
public function setNamedItemNS(\DOMNode $arg = null) {}
|
||||
public function removeNamedItemNS($namespaceURI = null, $localName = null) {}
|
||||
public function count() {}
|
||||
}
|
||||
|
||||
class DOMNode {
|
||||
|
||||
// properties
|
||||
public $attributes;
|
||||
public $baseURI;
|
||||
public $childNodes;
|
||||
public $firstChild;
|
||||
public $lastChild;
|
||||
public $localName;
|
||||
public $namespaceURI;
|
||||
public $nextSibling;
|
||||
public $nodeName;
|
||||
public $nodeType;
|
||||
public $nodeValue;
|
||||
public $ownerDocument;
|
||||
public $parentNode;
|
||||
public $prefix;
|
||||
public $previousSibling;
|
||||
public $textContent;
|
||||
|
||||
// methods
|
||||
public function insertBefore(\DOMNode $newChild, \DOMNode $refChild = null) {}
|
||||
public function replaceChild(\DOMNode $newChild, \DOMNode $oldChild) {}
|
||||
public function removeChild(\DOMNode $oldChild) {}
|
||||
public function appendChild(\DOMNode $newChild) {}
|
||||
public function hasChildNodes() {}
|
||||
public function cloneNode($deep = null) {}
|
||||
public function normalize() {}
|
||||
public function isSupported($feature, $version) {}
|
||||
public function hasAttributes() {}
|
||||
public function compareDocumentPosition(\DOMNode $other) {}
|
||||
public function isSameNode(\DOMNode $other) {}
|
||||
public function lookupPrefix($namespaceURI) {}
|
||||
public function isDefaultNamespace($namespaceURI) {}
|
||||
public function lookupNamespaceUri($prefix) {}
|
||||
public function isEqualNode(\DOMNode $arg) {}
|
||||
public function getFeature($feature, $version) {}
|
||||
public function setUserData($key, $data, $handler) {}
|
||||
public function getUserData($key) {}
|
||||
public function getNodePath() {}
|
||||
public function getLineNo() {}
|
||||
public function C14N($exclusive = null, $with_comments = null, array $xpath = null, array $ns_prefixes = null) {}
|
||||
public function C14NFile($uri, $exclusive = null, $with_comments = null, array $xpath = null, array $ns_prefixes = null) {}
|
||||
}
|
||||
|
||||
class DOMNodeList implements \Traversable, \Countable {
|
||||
|
||||
// properties
|
||||
public $length;
|
||||
|
||||
// methods
|
||||
public function item($index) {}
|
||||
public function count() {}
|
||||
}
|
||||
|
||||
class DOMNotation extends \DOMNode {
|
||||
|
||||
// properties
|
||||
public $publicId;
|
||||
public $systemId;
|
||||
}
|
||||
|
||||
class DOMProcessingInstruction extends \DOMNode {
|
||||
|
||||
// properties
|
||||
public $data;
|
||||
public $target;
|
||||
|
||||
// methods
|
||||
public function __construct($name, $value = null) {}
|
||||
}
|
||||
|
||||
class DOMStringExtend {
|
||||
|
||||
// methods
|
||||
public function findOffset16($offset32) {}
|
||||
public function findOffset32($offset16) {}
|
||||
}
|
||||
|
||||
class DOMStringList {
|
||||
|
||||
// methods
|
||||
public function item($index) {}
|
||||
}
|
||||
|
||||
class DOMText extends \DOMCharacterData {
|
||||
|
||||
// properties
|
||||
public $wholeText;
|
||||
|
||||
// methods
|
||||
public function splitText($offset) {}
|
||||
public function isWhitespaceInElementContent() {}
|
||||
public function isElementContentWhitespace() {}
|
||||
public function replaceWholeText($content) {}
|
||||
public function __construct($value = null) {}
|
||||
}
|
||||
|
||||
class DOMTypeinfo {
|
||||
}
|
||||
|
||||
class DOMUserDataHandler {
|
||||
|
||||
// methods
|
||||
public function handle() {}
|
||||
}
|
||||
|
||||
class DOMXPath {
|
||||
|
||||
// properties
|
||||
public $document;
|
||||
|
||||
// methods
|
||||
public function __construct(\DOMDocument $doc) {}
|
||||
public function registerNamespace($prefix, $uri) {}
|
||||
public function query($expr, \DOMNode $context = null, $registerNodeNS = null) {}
|
||||
public function evaluate($expr, \DOMNode $context = null, $registerNodeNS = null) {}
|
||||
public function registerPhpFunctions() {}
|
||||
}
|
||||
|
||||
function dom_import_simplexml($node) {}
|
||||
const DOMSTRING_SIZE_ERR = 2;
|
||||
const DOM_HIERARCHY_REQUEST_ERR = 3;
|
||||
const DOM_INDEX_SIZE_ERR = 1;
|
||||
const DOM_INUSE_ATTRIBUTE_ERR = 10;
|
||||
const DOM_INVALID_ACCESS_ERR = 15;
|
||||
const DOM_INVALID_CHARACTER_ERR = 5;
|
||||
const DOM_INVALID_MODIFICATION_ERR = 13;
|
||||
const DOM_INVALID_STATE_ERR = 11;
|
||||
const DOM_NAMESPACE_ERR = 14;
|
||||
const DOM_NOT_FOUND_ERR = 8;
|
||||
const DOM_NOT_SUPPORTED_ERR = 9;
|
||||
const DOM_NO_DATA_ALLOWED_ERR = 6;
|
||||
const DOM_NO_MODIFICATION_ALLOWED_ERR = 7;
|
||||
const DOM_PHP_ERR = 0;
|
||||
const DOM_SYNTAX_ERR = 12;
|
||||
const DOM_VALIDATION_ERR = 16;
|
||||
const DOM_WRONG_DOCUMENT_ERR = 4;
|
||||
const XML_ATTRIBUTE_CDATA = 1;
|
||||
const XML_ATTRIBUTE_DECL_NODE = 16;
|
||||
const XML_ATTRIBUTE_ENTITY = 6;
|
||||
const XML_ATTRIBUTE_ENUMERATION = 9;
|
||||
const XML_ATTRIBUTE_ID = 2;
|
||||
const XML_ATTRIBUTE_IDREF = 3;
|
||||
const XML_ATTRIBUTE_IDREFS = 4;
|
||||
const XML_ATTRIBUTE_NMTOKEN = 7;
|
||||
const XML_ATTRIBUTE_NMTOKENS = 8;
|
||||
const XML_ATTRIBUTE_NODE = 2;
|
||||
const XML_ATTRIBUTE_NOTATION = 10;
|
||||
const XML_CDATA_SECTION_NODE = 4;
|
||||
const XML_COMMENT_NODE = 8;
|
||||
const XML_DOCUMENT_FRAG_NODE = 11;
|
||||
const XML_DOCUMENT_NODE = 9;
|
||||
const XML_DOCUMENT_TYPE_NODE = 10;
|
||||
const XML_DTD_NODE = 14;
|
||||
const XML_ELEMENT_DECL_NODE = 15;
|
||||
const XML_ELEMENT_NODE = 1;
|
||||
const XML_ENTITY_DECL_NODE = 17;
|
||||
const XML_ENTITY_NODE = 6;
|
||||
const XML_ENTITY_REF_NODE = 5;
|
||||
const XML_HTML_DOCUMENT_NODE = 13;
|
||||
const XML_LOCAL_NAMESPACE = 18;
|
||||
const XML_NAMESPACE_DECL_NODE = 18;
|
||||
const XML_NOTATION_NODE = 12;
|
||||
const XML_PI_NODE = 7;
|
||||
const XML_TEXT_NODE = 3;
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
<?php
|
||||
|
||||
// phpcs:ignoreFile
|
||||
|
||||
define( 'EXCIMER_REAL', 0 );
|
||||
define( 'EXCIMER_CPU', 1 );
|
||||
|
||||
class ExcimerProfiler {
|
||||
public function __construct() {
|
||||
}
|
||||
public function setPeriod( $period ) {
|
||||
}
|
||||
public function setEventType( $event_type ) {
|
||||
}
|
||||
public function setMaxDepth( $maxDepth ) {
|
||||
}
|
||||
public function setFlushCallback( $callback, $max_samples ) {
|
||||
}
|
||||
public function clearFlushCallback() {
|
||||
}
|
||||
public function start() {
|
||||
}
|
||||
public function stop() {
|
||||
}
|
||||
public function getLog() : ExcimerLog {
|
||||
}
|
||||
public function flush() {
|
||||
}
|
||||
}
|
||||
|
||||
class ExcimerLog {
|
||||
private final function __construct() {
|
||||
}
|
||||
function formatCollapsed() {
|
||||
}
|
||||
/**
|
||||
* @return array[]
|
||||
*/
|
||||
function aggregateByFunction() {
|
||||
}
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
function getEventCount() {
|
||||
}
|
||||
function current() {
|
||||
}
|
||||
function key() {
|
||||
}
|
||||
function next() {
|
||||
}
|
||||
function rewind() {
|
||||
}
|
||||
function valid() {
|
||||
}
|
||||
function count() {
|
||||
}
|
||||
function offsetExists( $offset ) {
|
||||
}
|
||||
function offsetGet( $offset ) {
|
||||
}
|
||||
function offsetSet( $offset, $value ) {
|
||||
}
|
||||
function offsetUnset( $offset ) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class ExcimerLogEntry {
|
||||
private final function __construct() {
|
||||
}
|
||||
function getTimestamp() {
|
||||
}
|
||||
function getEventCount() {
|
||||
}
|
||||
function getTrace() {
|
||||
}
|
||||
}
|
||||
|
||||
class ExcimerTimer {
|
||||
function setEventType( $event_type ) {
|
||||
}
|
||||
function setInterval( $interval ) {
|
||||
}
|
||||
function setPeriod( $period ) {
|
||||
}
|
||||
function setCallback( $callback ) {
|
||||
}
|
||||
function start() {
|
||||
}
|
||||
function stop() {
|
||||
}
|
||||
function getTime() {
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,180 +0,0 @@
|
|||
<?php
|
||||
// These stubs were generated by the phan stub generator.
|
||||
// @phan-stub-for-extension memcached@3.0.1
|
||||
|
||||
namespace {
|
||||
class Memcached {
|
||||
|
||||
// constants
|
||||
const LIBMEMCACHED_VERSION_HEX = 16777240;
|
||||
const OPT_COMPRESSION = -1001;
|
||||
const OPT_COMPRESSION_TYPE = -1004;
|
||||
const OPT_PREFIX_KEY = -1002;
|
||||
const OPT_SERIALIZER = -1003;
|
||||
const OPT_USER_FLAGS = -1006;
|
||||
const OPT_STORE_RETRY_COUNT = -1005;
|
||||
const HAVE_IGBINARY = true;
|
||||
const HAVE_JSON = true;
|
||||
const HAVE_MSGPACK = true;
|
||||
const HAVE_SESSION = true;
|
||||
const HAVE_SASL = true;
|
||||
const OPT_HASH = 2;
|
||||
const HASH_DEFAULT = 0;
|
||||
const HASH_MD5 = 1;
|
||||
const HASH_CRC = 2;
|
||||
const HASH_FNV1_64 = 3;
|
||||
const HASH_FNV1A_64 = 4;
|
||||
const HASH_FNV1_32 = 5;
|
||||
const HASH_FNV1A_32 = 6;
|
||||
const HASH_HSIEH = 7;
|
||||
const HASH_MURMUR = 8;
|
||||
const OPT_DISTRIBUTION = 9;
|
||||
const DISTRIBUTION_MODULA = 0;
|
||||
const DISTRIBUTION_CONSISTENT = 1;
|
||||
const DISTRIBUTION_VIRTUAL_BUCKET = 6;
|
||||
const OPT_LIBKETAMA_COMPATIBLE = 16;
|
||||
const OPT_LIBKETAMA_HASH = 17;
|
||||
const OPT_TCP_KEEPALIVE = 32;
|
||||
const OPT_BUFFER_WRITES = 10;
|
||||
const OPT_BINARY_PROTOCOL = 18;
|
||||
const OPT_NO_BLOCK = 0;
|
||||
const OPT_TCP_NODELAY = 1;
|
||||
const OPT_SOCKET_SEND_SIZE = 4;
|
||||
const OPT_SOCKET_RECV_SIZE = 5;
|
||||
const OPT_CONNECT_TIMEOUT = 14;
|
||||
const OPT_RETRY_TIMEOUT = 15;
|
||||
const OPT_DEAD_TIMEOUT = 36;
|
||||
const OPT_SEND_TIMEOUT = 19;
|
||||
const OPT_RECV_TIMEOUT = 20;
|
||||
const OPT_POLL_TIMEOUT = 8;
|
||||
const OPT_CACHE_LOOKUPS = 6;
|
||||
const OPT_SERVER_FAILURE_LIMIT = 21;
|
||||
const OPT_AUTO_EJECT_HOSTS = 28;
|
||||
const OPT_HASH_WITH_PREFIX_KEY = 25;
|
||||
const OPT_NOREPLY = 26;
|
||||
const OPT_SORT_HOSTS = 12;
|
||||
const OPT_VERIFY_KEY = 13;
|
||||
const OPT_USE_UDP = 27;
|
||||
const OPT_NUMBER_OF_REPLICAS = 29;
|
||||
const OPT_RANDOMIZE_REPLICA_READ = 30;
|
||||
const OPT_REMOVE_FAILED_SERVERS = 35;
|
||||
const OPT_SERVER_TIMEOUT_LIMIT = 37;
|
||||
const RES_SUCCESS = 0;
|
||||
const RES_FAILURE = 1;
|
||||
const RES_HOST_LOOKUP_FAILURE = 2;
|
||||
const RES_UNKNOWN_READ_FAILURE = 7;
|
||||
const RES_PROTOCOL_ERROR = 8;
|
||||
const RES_CLIENT_ERROR = 9;
|
||||
const RES_SERVER_ERROR = 10;
|
||||
const RES_WRITE_FAILURE = 5;
|
||||
const RES_DATA_EXISTS = 12;
|
||||
const RES_NOTSTORED = 14;
|
||||
const RES_NOTFOUND = 16;
|
||||
const RES_PARTIAL_READ = 18;
|
||||
const RES_SOME_ERRORS = 19;
|
||||
const RES_NO_SERVERS = 20;
|
||||
const RES_END = 21;
|
||||
const RES_ERRNO = 26;
|
||||
const RES_BUFFERED = 32;
|
||||
const RES_TIMEOUT = 31;
|
||||
const RES_BAD_KEY_PROVIDED = 33;
|
||||
const RES_STORED = 15;
|
||||
const RES_DELETED = 22;
|
||||
const RES_STAT = 24;
|
||||
const RES_ITEM = 25;
|
||||
const RES_NOT_SUPPORTED = 28;
|
||||
const RES_FETCH_NOTFINISHED = 30;
|
||||
const RES_SERVER_MARKED_DEAD = 35;
|
||||
const RES_UNKNOWN_STAT_KEY = 36;
|
||||
const RES_INVALID_HOST_PROTOCOL = 34;
|
||||
const RES_MEMORY_ALLOCATION_FAILURE = 17;
|
||||
const RES_CONNECTION_SOCKET_CREATE_FAILURE = 11;
|
||||
const RES_E2BIG = 37;
|
||||
const RES_KEY_TOO_BIG = 39;
|
||||
const RES_SERVER_TEMPORARILY_DISABLED = 47;
|
||||
const RES_SERVER_MEMORY_ALLOCATION_FAILURE = 48;
|
||||
const RES_AUTH_PROBLEM = 40;
|
||||
const RES_AUTH_FAILURE = 41;
|
||||
const RES_AUTH_CONTINUE = 42;
|
||||
const RES_PAYLOAD_FAILURE = -1001;
|
||||
const SERIALIZER_PHP = 1;
|
||||
const SERIALIZER_IGBINARY = 2;
|
||||
const SERIALIZER_JSON = 3;
|
||||
const SERIALIZER_JSON_ARRAY = 4;
|
||||
const SERIALIZER_MSGPACK = 5;
|
||||
const COMPRESSION_FASTLZ = 2;
|
||||
const COMPRESSION_ZLIB = 1;
|
||||
const GET_PRESERVE_ORDER = 1;
|
||||
const GET_EXTENDED = 2;
|
||||
const GET_ERROR_RETURN_VALUE = false;
|
||||
|
||||
// methods
|
||||
public function __construct($persistent_id = null, $callback = null) {}
|
||||
public function getResultCode() {}
|
||||
public function getResultMessage() {}
|
||||
public function get($key, $cache_cb = null, $get_flags = null) {}
|
||||
public function getByKey($server_key, $key, $cache_cb = null, $get_flags = null) {}
|
||||
public function getMulti(array $keys, $get_flags = null) {}
|
||||
public function getMultiByKey($server_key, array $keys, $get_flags = null) {}
|
||||
public function getDelayed(array $keys, $with_cas = null, $value_cb = null) {}
|
||||
public function getDelayedByKey($server_key, array $keys, $with_cas = null, $value_cb = null) {}
|
||||
public function fetch() {}
|
||||
public function fetchAll() {}
|
||||
public function set($key, $value, $expiration = null) {}
|
||||
public function setByKey($server_key, $key, $value, $expiration = null) {}
|
||||
public function touch($key, $expiration) {}
|
||||
public function touchByKey($server_key, $key, $expiration) {}
|
||||
public function setMulti(array $items, $expiration = null) {}
|
||||
public function setMultiByKey($server_key, array $items, $expiration = null) {}
|
||||
public function cas($cas_token, $key, $value, $expiration = null) {}
|
||||
public function casByKey($cas_token, $server_key, $key, $value, $expiration = null) {}
|
||||
public function add($key, $value, $expiration = null) {}
|
||||
public function addByKey($server_key, $key, $value, $expiration = null) {}
|
||||
public function append($key, $value, $expiration = null) {}
|
||||
public function appendByKey($server_key, $key, $value, $expiration = null) {}
|
||||
public function prepend($key, $value, $expiration = null) {}
|
||||
public function prependByKey($server_key, $key, $value, $expiration = null) {}
|
||||
public function replace($key, $value, $expiration = null) {}
|
||||
public function replaceByKey($server_key, $key, $value, $expiration = null) {}
|
||||
public function delete($key, $time = null) {}
|
||||
public function deleteMulti($keys, $time = null) {}
|
||||
public function deleteByKey($server_key, $key, $time = null) {}
|
||||
public function deleteMultiByKey($server_key, $keys, $time = null) {}
|
||||
public function increment($key, $offset = null, $initial_value = null, $expiry = null) {}
|
||||
public function decrement($key, $offset = null, $initial_value = null, $expiry = null) {}
|
||||
public function incrementByKey($server_key, $key, $offset = null, $initial_value = null, $expiry = null) {}
|
||||
public function decrementByKey($server_key, $key, $offset = null, $initial_value = null, $expiry = null) {}
|
||||
public function addServer($host, $port, $weight = null) {}
|
||||
public function addServers(array $servers) {}
|
||||
public function getServerList() {}
|
||||
public function getServerByKey($server_key) {}
|
||||
public function resetServerList() {}
|
||||
public function quit() {}
|
||||
public function flushBuffers() {}
|
||||
public function getLastErrorMessage() {}
|
||||
public function getLastErrorCode() {}
|
||||
public function getLastErrorErrno() {}
|
||||
public function getLastDisconnectedServer() {}
|
||||
public function getStats($args) {}
|
||||
public function getVersion() {}
|
||||
public function getAllKeys() {}
|
||||
public function flush($delay = null) {}
|
||||
public function getOption($option) {}
|
||||
public function setOption($option, $value) {}
|
||||
public function setOptions($options) {}
|
||||
public function setBucket($host_map, $forward_map, $replicas) {}
|
||||
public function setSaslAuthData($username, $password) {}
|
||||
public function isPersistent() {}
|
||||
public function isPristine() {}
|
||||
}
|
||||
|
||||
class MemcachedException extends \RuntimeException {
|
||||
|
||||
// properties
|
||||
protected $message;
|
||||
protected $code;
|
||||
protected $file;
|
||||
protected $line;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,589 +0,0 @@
|
|||
<?php
|
||||
|
||||
// @phan-stub-for-extension oci8@2.0.7
|
||||
|
||||
|
||||
class OCI_Lob {
|
||||
|
||||
|
||||
public function load () {}
|
||||
|
||||
|
||||
public function tell () {}
|
||||
|
||||
|
||||
public function truncate ($length = 0) {}
|
||||
|
||||
|
||||
public function erase ($offset = null, $length = null) {}
|
||||
|
||||
|
||||
public function flush ($flag = null) {}
|
||||
|
||||
|
||||
public function setbuffering ($on_off) {}
|
||||
|
||||
|
||||
public function getbuffering () {}
|
||||
|
||||
|
||||
public function rewind () {}
|
||||
|
||||
|
||||
public function read ($length) {}
|
||||
|
||||
|
||||
public function eof () {}
|
||||
|
||||
|
||||
public function seek ($offset, $whence = OCI_SEEK_SET) {}
|
||||
|
||||
|
||||
public function write ($data, $length = null) {}
|
||||
|
||||
|
||||
public function append (OCI_Lob $lob_from) {}
|
||||
|
||||
|
||||
public function size () {}
|
||||
|
||||
|
||||
public function writetofile ($filename, $start, $length) {}
|
||||
|
||||
|
||||
public function export ($filename, $start = null, $length = null) {}
|
||||
|
||||
|
||||
public function import ($filename) {}
|
||||
|
||||
|
||||
public function writeTemporary ($data, $lob_type = OCI_TEMP_CLOB) {}
|
||||
|
||||
|
||||
public function close () {}
|
||||
|
||||
|
||||
public function save ($data, $offset = null) {}
|
||||
|
||||
|
||||
public function savefile ($filename) {}
|
||||
|
||||
|
||||
public function free () {}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class OCI_Collection {
|
||||
|
||||
|
||||
public function append ($value) {}
|
||||
|
||||
|
||||
public function getelem ($index) {}
|
||||
|
||||
|
||||
public function assignelem ($index, $value) {}
|
||||
|
||||
|
||||
public function assign (OCI_Collection $from) {}
|
||||
|
||||
|
||||
public function size () {}
|
||||
|
||||
|
||||
public function max () {}
|
||||
|
||||
|
||||
public function trim ($num) {}
|
||||
|
||||
|
||||
public function free () {}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function oci_define_by_name ($statement, $column_name, &$variable, $type = SQLT_CHR) {}
|
||||
|
||||
|
||||
function oci_bind_by_name ($statement, $bv_name, &$variable, $maxlength = -1, $type = SQLT_CHR) {}
|
||||
|
||||
|
||||
function oci_bind_array_by_name ($statement, $name, array &$var_array, $max_table_length, $max_item_length = -1, $type = SQLT_AFC) {}
|
||||
|
||||
|
||||
function oci_field_is_null ($statement, $field) {}
|
||||
|
||||
|
||||
function oci_field_name ($statement, $field) {}
|
||||
|
||||
|
||||
function oci_field_size ($statement, $field) {}
|
||||
|
||||
|
||||
function oci_field_scale ($statement, $field) {}
|
||||
|
||||
|
||||
function oci_field_precision ($statement, $field) {}
|
||||
|
||||
|
||||
function oci_field_type ($statement, $field) {}
|
||||
|
||||
|
||||
function oci_field_type_raw ($statement, $field) {}
|
||||
|
||||
|
||||
function oci_execute ($statement, $mode = OCI_COMMIT_ON_SUCCESS) {}
|
||||
|
||||
|
||||
function oci_cancel ($statement) {}
|
||||
|
||||
|
||||
function oci_fetch ($statement) {}
|
||||
|
||||
|
||||
function oci_fetch_object ($statement) {}
|
||||
|
||||
|
||||
function oci_fetch_row ($statement) {}
|
||||
|
||||
|
||||
function oci_fetch_assoc ($statement) {}
|
||||
|
||||
|
||||
function oci_fetch_array ($statement, $mode = null) {}
|
||||
|
||||
|
||||
function ocifetchinto ($statement_resource, &$result, $mode = null) {}
|
||||
|
||||
|
||||
function oci_fetch_all ($statement, array &$output, $skip = 0, $maxrows = -1, $flags = OCI_FETCHSTATEMENT_BY_COLUMN | OCI_ASSOC) {}
|
||||
|
||||
|
||||
function oci_free_statement ($statement) {}
|
||||
|
||||
|
||||
function oci_internal_debug ($onoff) {}
|
||||
|
||||
|
||||
function oci_num_fields ($statement) {}
|
||||
|
||||
|
||||
function oci_parse ($connection, $sql_text) {}
|
||||
|
||||
|
||||
function oci_get_implicit_resultset ($statement) {}
|
||||
|
||||
|
||||
function oci_new_cursor ($connection) {}
|
||||
|
||||
|
||||
function oci_result ($statement, $field) {}
|
||||
|
||||
|
||||
function oci_client_version () {}
|
||||
|
||||
|
||||
function oci_server_version ($connection) {}
|
||||
|
||||
|
||||
function oci_statement_type ($statement) {}
|
||||
|
||||
|
||||
function oci_num_rows ($statement) {}
|
||||
|
||||
|
||||
function oci_close ($connection) {}
|
||||
|
||||
|
||||
function oci_connect ($username, $password, $connection_string = null, $character_set = null, $session_mode = null) {}
|
||||
|
||||
|
||||
function oci_new_connect ($username, $password, $connection_string = null, $character_set = null, $session_mode = null) {}
|
||||
|
||||
|
||||
function oci_pconnect ($username, $password, $connection_string = null, $character_set = null, $session_mode = null) {}
|
||||
|
||||
|
||||
function oci_error ($resource = null) {}
|
||||
|
||||
|
||||
function oci_free_descriptor ($descriptor) {}
|
||||
|
||||
|
||||
function oci_lob_is_equal (OCI_Lob $lob1, OCI_Lob $lob2) {}
|
||||
|
||||
|
||||
function oci_lob_copy (OCI_Lob $lob_to, OCI_Lob $lob_from, $length = 0) {}
|
||||
|
||||
|
||||
function oci_commit ($connection) {}
|
||||
|
||||
|
||||
function oci_rollback ($connection) {}
|
||||
|
||||
|
||||
function oci_new_descriptor ($connection, $type = OCI_DTYPE_LOB) {}
|
||||
|
||||
|
||||
function oci_set_prefetch ($statement, $rows) {}
|
||||
|
||||
|
||||
function oci_set_client_identifier ($connection, $client_identifier) {}
|
||||
|
||||
|
||||
function oci_set_edition ($edition) {}
|
||||
|
||||
|
||||
function oci_set_module_name ($connection, $module_name) {}
|
||||
|
||||
|
||||
function oci_set_action ($connection, $action_name) {}
|
||||
|
||||
|
||||
function oci_set_client_info ($connection, $client_info) {}
|
||||
|
||||
|
||||
function oci_password_change ($connection, $username, $old_password, $new_password) {}
|
||||
|
||||
|
||||
function oci_new_collection ($connection, $tdo, $schema = null) {}
|
||||
|
||||
|
||||
function oci_free_cursor ($statement_resource) {}
|
||||
|
||||
|
||||
function ocifreecursor ($statement_resource) {}
|
||||
|
||||
|
||||
function ocibindbyname ($statement, $column_name, &$variable, $maximum_length = -1, $type = SQLT_CHR) {}
|
||||
|
||||
|
||||
function ocidefinebyname ($statement, $column_name, &$variable, $type = SQLT_CHR) {}
|
||||
|
||||
|
||||
function ocicolumnisnull ($statement, $column_number_or_name) {}
|
||||
|
||||
|
||||
function ocicolumnname ($statement, $column_number) {}
|
||||
|
||||
|
||||
function ocicolumnsize ($statement, $column_number_or_name) {}
|
||||
|
||||
|
||||
function ocicolumnscale ($statement_resource, $column_number) {}
|
||||
|
||||
|
||||
function ocicolumnprecision ($statement_resource, $column_number) {}
|
||||
|
||||
|
||||
function ocicolumntype ($statement_resource, $column_number) {}
|
||||
|
||||
|
||||
function ocicolumntyperaw ($statement_resource, $column_number) {}
|
||||
|
||||
|
||||
function ociexecute ($statement_resource, $mode = OCI_COMMIT_ON_SUCCESS) {}
|
||||
|
||||
|
||||
function ocicancel ($statement_resource) {}
|
||||
|
||||
|
||||
function ocifetch ($statement_resource) {}
|
||||
|
||||
|
||||
function ocifetchstatement ($statement_resource, &$output, $skip, $maximum_rows, $flags) {}
|
||||
|
||||
|
||||
function ocifreestatement ($statement_resource) {}
|
||||
|
||||
|
||||
function ociinternaldebug ($mode) {}
|
||||
|
||||
|
||||
function ocinumcols ($statement_resource) {}
|
||||
|
||||
|
||||
function ociparse ($connection_resource, $sql_text) {}
|
||||
|
||||
|
||||
function ocinewcursor ($connection_resource) {}
|
||||
|
||||
|
||||
function ociresult ($statement_resource, $column_number_or_name) {}
|
||||
|
||||
|
||||
function ociserverversion ($connection_resource) {}
|
||||
|
||||
|
||||
function ocistatementtype ($statement_resource) {}
|
||||
|
||||
|
||||
function ocirowcount ($statement_resource) {}
|
||||
|
||||
|
||||
function ocilogoff ($connection_resource) {}
|
||||
|
||||
|
||||
function ocilogon ($username, $password, $connection_string, $character_set, $session_mode) {}
|
||||
|
||||
|
||||
function ocinlogon ($username, $password, $connection_string, $character_set, $session_mode) {}
|
||||
|
||||
|
||||
function ociplogon ($username, $password, $connection_string, $character_set, $session_mode) {}
|
||||
|
||||
|
||||
function ocierror ($connection_or_statement_resource) {}
|
||||
|
||||
|
||||
function ocifreedesc ($lob_descriptor) {}
|
||||
|
||||
|
||||
function ocisavelob ($lob_descriptor, $data, $offset) {}
|
||||
|
||||
|
||||
function ocisavelobfile ($lob_descriptor, $filename) {}
|
||||
|
||||
|
||||
function ociwritelobtofile ($lob_descriptor, $filename, $start, $length) {}
|
||||
|
||||
|
||||
function ociloadlob ($lob_descriptor) {}
|
||||
|
||||
|
||||
function ocicommit ($connection_resource) {}
|
||||
|
||||
|
||||
function ocirollback ($connection_resource) {}
|
||||
|
||||
|
||||
function ocinewdescriptor ($connection_resource, $type = OCI_DTYPE_LOB) {}
|
||||
|
||||
|
||||
function ocisetprefetch ($statement_resource, $number_of_rows) {}
|
||||
|
||||
|
||||
function ocipasswordchange ($connection_resource_or_connection_string_or_dbname, $username, $old_password, $new_password) {}
|
||||
|
||||
|
||||
function ocifreecollection ($collection) {}
|
||||
|
||||
|
||||
function ocinewcollection ($connection_resource, $tdo, $schema = null) {}
|
||||
|
||||
|
||||
function ocicollappend ($collection, $value) {}
|
||||
|
||||
|
||||
function ocicollgetelem ($collection, $index) {}
|
||||
|
||||
|
||||
function ocicollassignelem ($collection, $index, $value) {}
|
||||
|
||||
|
||||
function ocicollsize ($collection) {}
|
||||
|
||||
|
||||
function ocicollmax ($collection) {}
|
||||
|
||||
|
||||
function ocicolltrim ($collection, $number) {}
|
||||
|
||||
|
||||
|
||||
function ociwritetemporarylob($lob_descriptor, $data, $lob_type = OCI_TEMP_CLOB ) {}
|
||||
|
||||
|
||||
function ocicloselob($lob_descriptor){}
|
||||
|
||||
|
||||
function ocicollassign($to, $from ) {}
|
||||
|
||||
define ('OCI_DEFAULT', 0);
|
||||
|
||||
|
||||
define ('OCI_SYSOPER', 4);
|
||||
|
||||
|
||||
define ('OCI_SYSDBA', 2);
|
||||
|
||||
|
||||
define ('OCI_CRED_EXT', -2147483648);
|
||||
|
||||
|
||||
define ('OCI_DESCRIBE_ONLY', 16);
|
||||
|
||||
|
||||
define ('OCI_COMMIT_ON_SUCCESS', 32);
|
||||
|
||||
|
||||
define ('OCI_NO_AUTO_COMMIT', 0);
|
||||
|
||||
|
||||
define ('OCI_EXACT_FETCH', 2);
|
||||
|
||||
|
||||
define ('OCI_SEEK_SET', 0);
|
||||
|
||||
|
||||
define ('OCI_SEEK_CUR', 1);
|
||||
|
||||
|
||||
define ('OCI_SEEK_END', 2);
|
||||
|
||||
|
||||
define ('OCI_LOB_BUFFER_FREE', 1);
|
||||
|
||||
|
||||
define ('SQLT_BFILEE', 114);
|
||||
|
||||
|
||||
define ('SQLT_CFILEE', 115);
|
||||
|
||||
|
||||
define ('SQLT_CLOB', 112);
|
||||
|
||||
|
||||
define ('SQLT_BLOB', 113);
|
||||
|
||||
|
||||
define ('SQLT_RDD', 104);
|
||||
|
||||
|
||||
define ('SQLT_INT', 3);
|
||||
|
||||
|
||||
define ('SQLT_NUM', 2);
|
||||
|
||||
|
||||
define ('SQLT_RSET', 116);
|
||||
|
||||
|
||||
define ('SQLT_AFC', 96);
|
||||
|
||||
|
||||
define ('SQLT_CHR', 1);
|
||||
|
||||
|
||||
define ('SQLT_VCS', 9);
|
||||
|
||||
|
||||
define ('SQLT_AVC', 97);
|
||||
|
||||
|
||||
define ('SQLT_STR', 5);
|
||||
|
||||
|
||||
define ('SQLT_LVC', 94);
|
||||
|
||||
|
||||
define ('SQLT_FLT', 4);
|
||||
|
||||
|
||||
define ('SQLT_UIN', 68);
|
||||
|
||||
|
||||
define ('SQLT_LNG', 8);
|
||||
|
||||
|
||||
define ('SQLT_LBI', 24);
|
||||
|
||||
|
||||
define ('SQLT_BIN', 23);
|
||||
|
||||
|
||||
define ('SQLT_ODT', 156);
|
||||
|
||||
|
||||
define ('SQLT_BDOUBLE', 22);
|
||||
|
||||
|
||||
define ('SQLT_BFLOAT', 21);
|
||||
|
||||
|
||||
define ('OCI_B_NTY', 108);
|
||||
|
||||
|
||||
define ('SQLT_NTY', 108);
|
||||
|
||||
|
||||
define ('OCI_SYSDATE', "SYSDATE");
|
||||
|
||||
|
||||
define ('OCI_B_BFILE', 114);
|
||||
|
||||
|
||||
define ('OCI_B_CFILEE', 115);
|
||||
|
||||
|
||||
define ('OCI_B_CLOB', 112);
|
||||
|
||||
|
||||
define ('OCI_B_BLOB', 113);
|
||||
|
||||
|
||||
define ('OCI_B_ROWID', 104);
|
||||
|
||||
|
||||
define ('OCI_B_CURSOR', 116);
|
||||
|
||||
|
||||
define ('OCI_B_BIN', 23);
|
||||
|
||||
|
||||
define ('OCI_B_INT', 3);
|
||||
|
||||
|
||||
define ('OCI_B_NUM', 2);
|
||||
|
||||
|
||||
define ('OCI_FETCHSTATEMENT_BY_COLUMN', 16);
|
||||
|
||||
|
||||
define ('OCI_FETCHSTATEMENT_BY_ROW', 32);
|
||||
|
||||
|
||||
define ('OCI_ASSOC', 1);
|
||||
|
||||
|
||||
define ('OCI_NUM', 2);
|
||||
|
||||
|
||||
define ('OCI_BOTH', 3);
|
||||
|
||||
|
||||
define ('OCI_RETURN_NULLS', 4);
|
||||
|
||||
|
||||
define ('OCI_RETURN_LOBS', 8);
|
||||
|
||||
|
||||
define ('OCI_DTYPE_FILE', 56);
|
||||
|
||||
|
||||
define ('OCI_DTYPE_LOB', 50);
|
||||
|
||||
|
||||
define ('OCI_DTYPE_ROWID', 54);
|
||||
|
||||
|
||||
define ('OCI_D_FILE', 56);
|
||||
|
||||
|
||||
define ('OCI_D_LOB', 50);
|
||||
|
||||
|
||||
define ('OCI_D_ROWID', 54);
|
||||
|
||||
|
||||
define ('OCI_TEMP_CLOB', 2);
|
||||
|
||||
|
||||
define ('OCI_TEMP_BLOB', 1);
|
||||
|
||||
|
||||
define ('SQLT_BOL', 252);
|
||||
|
||||
|
||||
define ('OCI_B_BOL', 252);
|
|
@ -1,139 +0,0 @@
|
|||
<?php
|
||||
// These stubs were generated by the phan stub generator.
|
||||
// @phan-stub-for-extension pcntl@7.0.33-0+deb9u3
|
||||
|
||||
namespace {
|
||||
function pcntl_alarm($seconds) {}
|
||||
function pcntl_errno() {}
|
||||
function pcntl_exec($path, $args = null, $envs = null) {}
|
||||
function pcntl_fork() {}
|
||||
function pcntl_get_last_error() {}
|
||||
function pcntl_getpriority($pid = null, $process_identifier = null) {}
|
||||
function pcntl_setpriority($priority, $pid = null, $process_identifier = null) {}
|
||||
function pcntl_signal($signo, $handler, $restart_syscalls = null) {}
|
||||
function pcntl_signal_dispatch() {}
|
||||
function pcntl_sigprocmask($how, $set, &$oldset = null) {}
|
||||
function pcntl_sigtimedwait($set, &$info = null, $seconds = null, $nanoseconds = null) {}
|
||||
function pcntl_sigwaitinfo($set, &$info = null) {}
|
||||
function pcntl_strerror($errno) {}
|
||||
function pcntl_wait(&$status, $options = null, &$rusage = null) {}
|
||||
function pcntl_waitpid($pid, &$status, $options = null, &$rusage = null) {}
|
||||
function pcntl_wexitstatus($status) {}
|
||||
function pcntl_wifcontinued($status) {}
|
||||
function pcntl_wifexited($status) {}
|
||||
function pcntl_wifsignaled($status) {}
|
||||
function pcntl_wifstopped($status) {}
|
||||
function pcntl_wstopsig($status) {}
|
||||
function pcntl_wtermsig($status) {}
|
||||
const BUS_ADRALN = 1;
|
||||
const BUS_ADRERR = 2;
|
||||
const BUS_OBJERR = 3;
|
||||
const CLD_CONTINUED = 6;
|
||||
const CLD_DUMPED = 3;
|
||||
const CLD_EXITED = 1;
|
||||
const CLD_KILLED = 2;
|
||||
const CLD_STOPPED = 5;
|
||||
const CLD_TRAPPED = 4;
|
||||
const FPE_FLTDIV = 3;
|
||||
const FPE_FLTINV = 7;
|
||||
const FPE_FLTOVF = 4;
|
||||
const FPE_FLTRES = 6;
|
||||
const FPE_FLTSUB = 8;
|
||||
const FPE_FLTUND = 7;
|
||||
const FPE_INTDIV = 1;
|
||||
const FPE_INTOVF = 2;
|
||||
const ILL_BADSTK = 8;
|
||||
const ILL_COPROC = 7;
|
||||
const ILL_ILLADR = 3;
|
||||
const ILL_ILLOPC = 1;
|
||||
const ILL_ILLOPN = 2;
|
||||
const ILL_ILLTRP = 4;
|
||||
const ILL_PRVOPC = 5;
|
||||
const ILL_PRVREG = 6;
|
||||
const PCNTL_E2BIG = 7;
|
||||
const PCNTL_EACCES = 13;
|
||||
const PCNTL_EAGAIN = 11;
|
||||
const PCNTL_ECHILD = 10;
|
||||
const PCNTL_EFAULT = 14;
|
||||
const PCNTL_EINTR = 4;
|
||||
const PCNTL_EINVAL = 22;
|
||||
const PCNTL_EIO = 5;
|
||||
const PCNTL_EISDIR = 21;
|
||||
const PCNTL_ELIBBAD = 80;
|
||||
const PCNTL_ELOOP = 40;
|
||||
const PCNTL_EMFILE = 24;
|
||||
const PCNTL_ENAMETOOLONG = 36;
|
||||
const PCNTL_ENFILE = 23;
|
||||
const PCNTL_ENOENT = 2;
|
||||
const PCNTL_ENOEXEC = 8;
|
||||
const PCNTL_ENOMEM = 12;
|
||||
const PCNTL_ENOTDIR = 20;
|
||||
const PCNTL_EPERM = 1;
|
||||
const PCNTL_ESRCH = 3;
|
||||
const PCNTL_ETXTBSY = 26;
|
||||
const POLL_ERR = 4;
|
||||
const POLL_HUP = 6;
|
||||
const POLL_IN = 1;
|
||||
const POLL_MSG = 3;
|
||||
const POLL_OUT = 2;
|
||||
const POLL_PRI = 5;
|
||||
const PRIO_PGRP = 1;
|
||||
const PRIO_PROCESS = 0;
|
||||
const PRIO_USER = 2;
|
||||
const SEGV_ACCERR = 2;
|
||||
const SEGV_MAPERR = 1;
|
||||
const SIGABRT = 6;
|
||||
const SIGALRM = 14;
|
||||
const SIGBABY = 31;
|
||||
const SIGBUS = 7;
|
||||
const SIGCHLD = 17;
|
||||
const SIGCLD = 17;
|
||||
const SIGCONT = 18;
|
||||
const SIGFPE = 8;
|
||||
const SIGHUP = 1;
|
||||
const SIGILL = 4;
|
||||
const SIGINT = 2;
|
||||
const SIGIO = 29;
|
||||
const SIGIOT = 6;
|
||||
const SIGKILL = 9;
|
||||
const SIGPIPE = 13;
|
||||
const SIGPOLL = 29;
|
||||
const SIGPROF = 27;
|
||||
const SIGPWR = 30;
|
||||
const SIGQUIT = 3;
|
||||
const SIGSEGV = 11;
|
||||
const SIGSTKFLT = 16;
|
||||
const SIGSTOP = 19;
|
||||
const SIGSYS = 31;
|
||||
const SIGTERM = 15;
|
||||
const SIGTRAP = 5;
|
||||
const SIGTSTP = 20;
|
||||
const SIGTTIN = 21;
|
||||
const SIGTTOU = 22;
|
||||
const SIGURG = 23;
|
||||
const SIGUSR1 = 10;
|
||||
const SIGUSR2 = 12;
|
||||
const SIGVTALRM = 26;
|
||||
const SIGWINCH = 28;
|
||||
const SIGXCPU = 24;
|
||||
const SIGXFSZ = 25;
|
||||
const SIG_BLOCK = 0;
|
||||
const SIG_DFL = 0;
|
||||
const SIG_ERR = -1;
|
||||
const SIG_IGN = 1;
|
||||
const SIG_SETMASK = 2;
|
||||
const SIG_UNBLOCK = 1;
|
||||
const SI_ASYNCIO = -4;
|
||||
const SI_KERNEL = 128;
|
||||
const SI_MESGQ = -3;
|
||||
const SI_QUEUE = -1;
|
||||
const SI_SIGIO = -5;
|
||||
const SI_TIMER = -2;
|
||||
const SI_TKILL = -6;
|
||||
const SI_USER = 0;
|
||||
const TRAP_BRKPT = 1;
|
||||
const TRAP_TRACE = 2;
|
||||
const WCONTINUED = 8;
|
||||
const WNOHANG = 1;
|
||||
const WUNTRACED = 2;
|
||||
}
|
|
@ -1,189 +0,0 @@
|
|||
<?php
|
||||
// These stubs were generated by the phan stub generator.
|
||||
// @phan-stub-for-extension pgsql@7.3.4
|
||||
|
||||
namespace {
|
||||
function pg_affected_rows($result) {}
|
||||
function pg_cancel_query($connection) {}
|
||||
function pg_client_encoding($connection = null) {}
|
||||
function pg_clientencoding($connection = null) {}
|
||||
function pg_close($connection = null) {}
|
||||
function pg_cmdtuples($result) {}
|
||||
function pg_connect($connection_string, $connect_type = null, $host = null, $port = null, $options = null, $tty = null, $database = null) {}
|
||||
function pg_connect_poll($connection = null) {}
|
||||
function pg_connection_busy($connection) {}
|
||||
function pg_connection_reset($connection) {}
|
||||
function pg_connection_status($connection) {}
|
||||
function pg_consume_input($connection) {}
|
||||
function pg_convert($db, $table, $values, $options = null) {}
|
||||
function pg_copy_from($connection, $table_name, $rows, $delimiter = null, $null_as = null) {}
|
||||
function pg_copy_to($connection, $table_name, $delimiter = null, $null_as = null) {}
|
||||
function pg_dbname($connection = null) {}
|
||||
function pg_delete($db, $table, $ids, $options = null) {}
|
||||
function pg_end_copy($connection = null) {}
|
||||
function pg_errormessage($connection = null) {}
|
||||
function pg_escape_bytea($connection = null, $data = null) {}
|
||||
function pg_escape_identifier($connection = null, $data = null) {}
|
||||
function pg_escape_literal($connection = null, $data = null) {}
|
||||
function pg_escape_string($connection = null, $data = null) {}
|
||||
function pg_exec($connection = null, $query = null) {}
|
||||
function pg_execute($connection = null, $stmtname = null, $params = null) {}
|
||||
function pg_fetch_all($result, $result_type = null) {}
|
||||
function pg_fetch_all_columns($result, $column_number = null) {}
|
||||
function pg_fetch_array($result, $row = null, $result_type = null) {}
|
||||
function pg_fetch_assoc($result, $row = null) {}
|
||||
function pg_fetch_object($result, $row = null, $class_name = null, $l = null, $ctor_params = null) {}
|
||||
function pg_fetch_result($result, $row_number = null, $field_name = null) {}
|
||||
function pg_fetch_row($result, $row = null, $result_type = null) {}
|
||||
function pg_field_is_null($result, $row = null, $field_name_or_number = null) {}
|
||||
function pg_field_name($result, $field_number) {}
|
||||
function pg_field_num($result, $field_name) {}
|
||||
function pg_field_prtlen($result, $row = null, $field_name_or_number = null) {}
|
||||
function pg_field_size($result, $field_number) {}
|
||||
function pg_field_table($result, $field_number, $oid_only = null) {}
|
||||
function pg_field_type($result, $field_number) {}
|
||||
function pg_field_type_oid($result, $field_number) {}
|
||||
function pg_fieldisnull($result, $row = null, $field_name_or_number = null) {}
|
||||
function pg_fieldname($result, $field_number) {}
|
||||
function pg_fieldnum($result, $field_name) {}
|
||||
function pg_fieldprtlen($result, $row = null, $field_name_or_number = null) {}
|
||||
function pg_fieldsize($result, $field_number) {}
|
||||
function pg_fieldtype($result, $field_number) {}
|
||||
function pg_flush($connection) {}
|
||||
function pg_free_result($result) {}
|
||||
function pg_freeresult($result) {}
|
||||
function pg_get_notify($connection = null, $e = null) {}
|
||||
function pg_get_pid($connection = null) {}
|
||||
function pg_get_result($connection) {}
|
||||
function pg_getlastoid($result) {}
|
||||
function pg_host($connection = null) {}
|
||||
function pg_insert($db, $table, $values, $options = null) {}
|
||||
function pg_last_error($connection = null) {}
|
||||
function pg_last_notice($connection, $option = null) {}
|
||||
function pg_last_oid($result) {}
|
||||
function pg_lo_close($large_object) {}
|
||||
function pg_lo_create($connection = null, $large_object_id = null) {}
|
||||
function pg_lo_export($connection = null, $objoid = null, $filename = null) {}
|
||||
function pg_lo_import($connection = null, $filename = null, $large_object_oid = null) {}
|
||||
function pg_lo_open($connection = null, $large_object_oid = null, $mode = null) {}
|
||||
function pg_lo_read($large_object, $len = null) {}
|
||||
function pg_lo_read_all($large_object) {}
|
||||
function pg_lo_seek($large_object, $offset, $whence = null) {}
|
||||
function pg_lo_tell($large_object) {}
|
||||
function pg_lo_truncate($large_object, $size = null) {}
|
||||
function pg_lo_unlink($connection = null, $large_object_oid = null) {}
|
||||
function pg_lo_write($large_object, $buf, $len = null) {}
|
||||
function pg_loclose($large_object) {}
|
||||
function pg_locreate($connection = null, $large_object_id = null) {}
|
||||
function pg_loexport($connection = null, $objoid = null, $filename = null) {}
|
||||
function pg_loimport($connection = null, $filename = null, $large_object_oid = null) {}
|
||||
function pg_loopen($connection = null, $large_object_oid = null, $mode = null) {}
|
||||
function pg_loread($large_object, $len = null) {}
|
||||
function pg_loreadall($large_object) {}
|
||||
function pg_lounlink($connection = null, $large_object_oid = null) {}
|
||||
function pg_lowrite($large_object, $buf, $len = null) {}
|
||||
function pg_meta_data($db, $table) {}
|
||||
function pg_num_fields($result) {}
|
||||
function pg_num_rows($result) {}
|
||||
function pg_numfields($result) {}
|
||||
function pg_numrows($result) {}
|
||||
function pg_options($connection = null) {}
|
||||
function pg_parameter_status($connection, $param_name = null) {}
|
||||
function pg_pconnect($connection_string, $host = null, $port = null, $options = null, $tty = null, $database = null) {}
|
||||
function pg_ping($connection = null) {}
|
||||
function pg_port($connection = null) {}
|
||||
function pg_prepare($connection = null, $stmtname = null, $query = null) {}
|
||||
function pg_put_line($connection = null, $query = null) {}
|
||||
function pg_query($connection = null, $query = null) {}
|
||||
function pg_query_params($connection = null, $query = null, $params = null) {}
|
||||
function pg_result($connection) {}
|
||||
function pg_result_error($result) {}
|
||||
function pg_result_error_field($result, $fieldcode) {}
|
||||
function pg_result_seek($result, $offset) {}
|
||||
function pg_result_status($result, $result_type = null) {}
|
||||
function pg_select($db, $table, $ids, $options = null, $result_type = null) {}
|
||||
function pg_send_execute($connection, $stmtname, $params) {}
|
||||
function pg_send_prepare($connection, $stmtname, $query) {}
|
||||
function pg_send_query($connection, $query) {}
|
||||
function pg_send_query_params($connection, $query, $params) {}
|
||||
function pg_set_client_encoding($connection = null, $encoding = null) {}
|
||||
function pg_set_error_verbosity($connection = null, $verbosity = null) {}
|
||||
function pg_setclientencoding($connection = null, $encoding = null) {}
|
||||
function pg_socket($connection) {}
|
||||
function pg_trace($filename, $mode = null, $connection = null) {}
|
||||
function pg_transaction_status($connection) {}
|
||||
function pg_tty($connection = null) {}
|
||||
function pg_unescape_bytea($data) {}
|
||||
function pg_untrace($connection = null) {}
|
||||
function pg_update($db, $table, $fields, $ids, $options = null) {}
|
||||
function pg_version($connection = null) {}
|
||||
const PGSQL_ASSOC = 1;
|
||||
const PGSQL_BAD_RESPONSE = 5;
|
||||
const PGSQL_BOTH = 3;
|
||||
const PGSQL_COMMAND_OK = 1;
|
||||
const PGSQL_CONNECTION_AUTH_OK = 5;
|
||||
const PGSQL_CONNECTION_AWAITING_RESPONSE = 4;
|
||||
const PGSQL_CONNECTION_BAD = 1;
|
||||
const PGSQL_CONNECTION_MADE = 3;
|
||||
const PGSQL_CONNECTION_OK = 0;
|
||||
const PGSQL_CONNECTION_SETENV = 6;
|
||||
const PGSQL_CONNECTION_STARTED = 2;
|
||||
const PGSQL_CONNECT_ASYNC = 4;
|
||||
const PGSQL_CONNECT_FORCE_NEW = 2;
|
||||
const PGSQL_CONV_FORCE_NULL = 4;
|
||||
const PGSQL_CONV_IGNORE_DEFAULT = 2;
|
||||
const PGSQL_CONV_IGNORE_NOT_NULL = 8;
|
||||
const PGSQL_COPY_IN = 4;
|
||||
const PGSQL_COPY_OUT = 3;
|
||||
const PGSQL_DIAG_COLUMN_NAME = 99;
|
||||
const PGSQL_DIAG_CONSTRAINT_NAME = 110;
|
||||
const PGSQL_DIAG_CONTEXT = 87;
|
||||
const PGSQL_DIAG_DATATYPE_NAME = 100;
|
||||
const PGSQL_DIAG_INTERNAL_POSITION = 112;
|
||||
const PGSQL_DIAG_INTERNAL_QUERY = 113;
|
||||
const PGSQL_DIAG_MESSAGE_DETAIL = 68;
|
||||
const PGSQL_DIAG_MESSAGE_HINT = 72;
|
||||
const PGSQL_DIAG_MESSAGE_PRIMARY = 77;
|
||||
const PGSQL_DIAG_SCHEMA_NAME = 115;
|
||||
const PGSQL_DIAG_SEVERITY = 83;
|
||||
const PGSQL_DIAG_SEVERITY_NONLOCALIZED = 86;
|
||||
const PGSQL_DIAG_SOURCE_FILE = 70;
|
||||
const PGSQL_DIAG_SOURCE_FUNCTION = 82;
|
||||
const PGSQL_DIAG_SOURCE_LINE = 76;
|
||||
const PGSQL_DIAG_SQLSTATE = 67;
|
||||
const PGSQL_DIAG_STATEMENT_POSITION = 80;
|
||||
const PGSQL_DIAG_TABLE_NAME = 116;
|
||||
const PGSQL_DML_ASYNC = 1024;
|
||||
const PGSQL_DML_ESCAPE = 4096;
|
||||
const PGSQL_DML_EXEC = 512;
|
||||
const PGSQL_DML_NO_CONV = 256;
|
||||
const PGSQL_DML_STRING = 2048;
|
||||
const PGSQL_EMPTY_QUERY = 0;
|
||||
const PGSQL_ERRORS_DEFAULT = 1;
|
||||
const PGSQL_ERRORS_TERSE = 0;
|
||||
const PGSQL_ERRORS_VERBOSE = 2;
|
||||
const PGSQL_FATAL_ERROR = 7;
|
||||
const PGSQL_LIBPQ_VERSION = '9.6.9';
|
||||
const PGSQL_LIBPQ_VERSION_STR = 'PostgreSQL 9.6.9 (win32)';
|
||||
const PGSQL_NONFATAL_ERROR = 6;
|
||||
const PGSQL_NOTICE_ALL = 2;
|
||||
const PGSQL_NOTICE_CLEAR = 3;
|
||||
const PGSQL_NOTICE_LAST = 1;
|
||||
const PGSQL_NUM = 2;
|
||||
const PGSQL_POLLING_ACTIVE = 4;
|
||||
const PGSQL_POLLING_FAILED = 0;
|
||||
const PGSQL_POLLING_OK = 3;
|
||||
const PGSQL_POLLING_READING = 1;
|
||||
const PGSQL_POLLING_WRITING = 2;
|
||||
const PGSQL_SEEK_CUR = 1;
|
||||
const PGSQL_SEEK_END = 2;
|
||||
const PGSQL_SEEK_SET = 0;
|
||||
const PGSQL_STATUS_LONG = 1;
|
||||
const PGSQL_STATUS_STRING = 2;
|
||||
const PGSQL_TRANSACTION_ACTIVE = 1;
|
||||
const PGSQL_TRANSACTION_IDLE = 0;
|
||||
const PGSQL_TRANSACTION_INERROR = 3;
|
||||
const PGSQL_TRANSACTION_INTRANS = 2;
|
||||
const PGSQL_TRANSACTION_UNKNOWN = 4;
|
||||
const PGSQL_TUPLES_OK = 2;
|
||||
}
|
|
@ -1,547 +0,0 @@
|
|||
<?php
|
||||
// These stubs were generated by the phan stub generator.
|
||||
// @phan-stub-for-extension redis@5.1.1
|
||||
|
||||
namespace {
|
||||
class Redis {
|
||||
|
||||
// constants
|
||||
const REDIS_NOT_FOUND = 0;
|
||||
const REDIS_STRING = 1;
|
||||
const REDIS_SET = 2;
|
||||
const REDIS_LIST = 3;
|
||||
const REDIS_ZSET = 4;
|
||||
const REDIS_HASH = 5;
|
||||
const REDIS_STREAM = 6;
|
||||
const PIPELINE = 2;
|
||||
const ATOMIC = 0;
|
||||
const MULTI = 1;
|
||||
const OPT_SERIALIZER = 1;
|
||||
const OPT_PREFIX = 2;
|
||||
const OPT_READ_TIMEOUT = 3;
|
||||
const OPT_TCP_KEEPALIVE = 6;
|
||||
const OPT_COMPRESSION = 7;
|
||||
const OPT_REPLY_LITERAL = 8;
|
||||
const OPT_COMPRESSION_LEVEL = 9;
|
||||
const SERIALIZER_NONE = 0;
|
||||
const SERIALIZER_PHP = 1;
|
||||
const SERIALIZER_JSON = 4;
|
||||
const COMPRESSION_NONE = 0;
|
||||
const OPT_SCAN = 4;
|
||||
const SCAN_RETRY = 1;
|
||||
const SCAN_NORETRY = 0;
|
||||
const AFTER = 'after';
|
||||
const BEFORE = 'before';
|
||||
|
||||
// methods
|
||||
public function __construct() {}
|
||||
public function __destruct() {}
|
||||
public function _prefix($key) {}
|
||||
public function _serialize($value) {}
|
||||
public function _unserialize($value) {}
|
||||
public function append($key, $value) {}
|
||||
public function auth($password) {}
|
||||
public function bgSave() {}
|
||||
public function bgrewriteaof() {}
|
||||
public function bitcount($key) {}
|
||||
public function bitop($operation, $ret_key, $key, ...$other_keys) {}
|
||||
public function bitpos($key, $bit, $start = null, $end = null) {}
|
||||
public function blPop($key, $timeout_or_key, ...$extra_args) {}
|
||||
public function brPop($key, $timeout_or_key, ...$extra_args) {}
|
||||
public function brpoplpush($src, $dst, $timeout) {}
|
||||
public function bzPopMax($key, $timeout_or_key, ...$extra_args) {}
|
||||
public function bzPopMin($key, $timeout_or_key, ...$extra_args) {}
|
||||
public function clearLastError() {}
|
||||
public function client($cmd, ...$args) {}
|
||||
public function close() {}
|
||||
public function command(...$args) {}
|
||||
public function config($cmd, $key, $value = null) {}
|
||||
public function connect($host, $port = null, $timeout = null, $retry_interval = null) {}
|
||||
public function dbSize() {}
|
||||
public function debug($key) {}
|
||||
public function decr($key) {}
|
||||
public function decrBy($key, $value) {}
|
||||
public function del($key, ...$other_keys) {}
|
||||
public function discard() {}
|
||||
public function dump($key) {}
|
||||
public function echo($msg) {}
|
||||
public function eval($script, $args = null, $num_keys = null) {}
|
||||
public function evalsha($script_sha, $args = null, $num_keys = null) {}
|
||||
public function exec() {}
|
||||
public function exists($key, ...$other_keys) {}
|
||||
public function expire($key, $timeout) {}
|
||||
public function expireAt($key, $timestamp) {}
|
||||
public function flushAll($async = null) {}
|
||||
public function flushDB($async = null) {}
|
||||
public function geoadd($key, $lng, $lat, $member, ...$other_triples) {}
|
||||
public function geodist($key, $src, $dst, $unit = null) {}
|
||||
public function geohash($key, $member, ...$other_members) {}
|
||||
public function geopos($key, $member, ...$other_members) {}
|
||||
public function georadius($key, $lng, $lan, $radius, $unit, array $opts = null) {}
|
||||
public function georadius_ro($key, $lng, $lan, $radius, $unit, array $opts = null) {}
|
||||
public function georadiusbymember($key, $member, $radius, $unit, array $opts = null) {}
|
||||
public function georadiusbymember_ro($key, $member, $radius, $unit, array $opts = null) {}
|
||||
public function get($key) {}
|
||||
public function getAuth() {}
|
||||
public function getBit($key, $offset) {}
|
||||
public function getDBNum() {}
|
||||
public function getHost() {}
|
||||
public function getLastError() {}
|
||||
public function getMode() {}
|
||||
public function getOption($option) {}
|
||||
public function getPersistentID() {}
|
||||
public function getPort() {}
|
||||
public function getRange($key, $start, $end) {}
|
||||
public function getReadTimeout() {}
|
||||
public function getSet($key, $value) {}
|
||||
public function getTimeout() {}
|
||||
public function hDel($key, $member, ...$other_members) {}
|
||||
public function hExists($key, $member) {}
|
||||
public function hGet($key, $member) {}
|
||||
public function hGetAll($key) {}
|
||||
public function hIncrBy($key, $member, $value) {}
|
||||
public function hIncrByFloat($key, $member, $value) {}
|
||||
public function hKeys($key) {}
|
||||
public function hLen($key) {}
|
||||
public function hMget($key, array $keys) {}
|
||||
public function hMset($key, array $pairs) {}
|
||||
public function hSet($key, $member, $value) {}
|
||||
public function hSetNx($key, $member, $value) {}
|
||||
public function hStrLen($key, $member) {}
|
||||
public function hVals($key) {}
|
||||
public function hscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) {}
|
||||
public function incr($key) {}
|
||||
public function incrBy($key, $value) {}
|
||||
public function incrByFloat($key, $value) {}
|
||||
public function info($option = null) {}
|
||||
public function isConnected() {}
|
||||
public function keys($pattern) {}
|
||||
public function lInsert($key, $position, $pivot, $value) {}
|
||||
public function lLen($key) {}
|
||||
public function lPop($key) {}
|
||||
public function lPush($key, $value) {}
|
||||
public function lPushx($key, $value) {}
|
||||
public function lSet($key, $index, $value) {}
|
||||
public function lastSave() {}
|
||||
public function lindex($key, $index) {}
|
||||
public function lrange($key, $start, $end) {}
|
||||
public function lrem($key, $value, $count) {}
|
||||
public function ltrim($key, $start, $stop) {}
|
||||
public function mget(array $keys) {}
|
||||
public function migrate($host, $port, $key, $db, $timeout, $copy = null, $replace = null) {}
|
||||
public function move($key, $dbindex) {}
|
||||
public function mset(array $pairs) {}
|
||||
public function msetnx(array $pairs) {}
|
||||
public function multi($mode = null) {}
|
||||
public function object($field, $key) {}
|
||||
public function pconnect($host, $port = null, $timeout = null) {}
|
||||
public function persist($key) {}
|
||||
public function pexpire($key, $timestamp) {}
|
||||
public function pexpireAt($key, $timestamp) {}
|
||||
public function pfadd($key, array $elements) {}
|
||||
public function pfcount($key) {}
|
||||
public function pfmerge($dstkey, array $keys) {}
|
||||
public function ping() {}
|
||||
public function pipeline() {}
|
||||
public function psetex($key, $expire, $value) {}
|
||||
public function psubscribe(array $patterns, $callback) {}
|
||||
public function pttl($key) {}
|
||||
public function publish($channel, $message) {}
|
||||
public function pubsub($cmd, ...$args) {}
|
||||
public function punsubscribe($pattern, ...$other_patterns) {}
|
||||
public function rPop($key) {}
|
||||
public function rPush($key, $value) {}
|
||||
public function rPushx($key, $value) {}
|
||||
public function randomKey() {}
|
||||
public function rawcommand($cmd, ...$args) {}
|
||||
public function rename($key, $newkey) {}
|
||||
public function renameNx($key, $newkey) {}
|
||||
public function restore($ttl, $key, $value) {}
|
||||
public function role() {}
|
||||
public function rpoplpush($src, $dst) {}
|
||||
public function sAdd($key, $value) {}
|
||||
public function sAddArray($key, array $options) {}
|
||||
public function sDiff($key, ...$other_keys) {}
|
||||
public function sDiffStore($dst, $key, ...$other_keys) {}
|
||||
public function sInter($key, ...$other_keys) {}
|
||||
public function sInterStore($dst, $key, ...$other_keys) {}
|
||||
public function sMembers($key) {}
|
||||
public function sMove($src, $dst, $value) {}
|
||||
public function sPop($key) {}
|
||||
public function sRandMember($key, $count = null) {}
|
||||
public function sUnion($key, ...$other_keys) {}
|
||||
public function sUnionStore($dst, $key, ...$other_keys) {}
|
||||
public function save() {}
|
||||
public function scan(&$i_iterator, $str_pattern = null, $i_count = null) {}
|
||||
public function scard($key) {}
|
||||
public function script($cmd, ...$args) {}
|
||||
public function select($dbindex) {}
|
||||
public function set($key, $value, $opts = null) {}
|
||||
public function setBit($key, $offset, $value) {}
|
||||
public function setOption($option, $value) {}
|
||||
public function setRange($key, $offset, $value) {}
|
||||
public function setex($key, $expire, $value) {}
|
||||
public function setnx($key, $value) {}
|
||||
public function sismember($key, $value) {}
|
||||
public function slaveof($host = null, $port = null) {}
|
||||
public function slowlog($arg, $option = null) {}
|
||||
public function sort($key, array $options = null) {}
|
||||
public function sortAsc($key, $pattern = null, $get = null, $start = null, $end = null, $getList = null) {}
|
||||
public function sortAscAlpha($key, $pattern = null, $get = null, $start = null, $end = null, $getList = null) {}
|
||||
public function sortDesc($key, $pattern = null, $get = null, $start = null, $end = null, $getList = null) {}
|
||||
public function sortDescAlpha($key, $pattern = null, $get = null, $start = null, $end = null, $getList = null) {}
|
||||
public function srem($key, $member, ...$other_members) {}
|
||||
public function sscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) {}
|
||||
public function strlen($key) {}
|
||||
public function subscribe(array $channels, $callback) {}
|
||||
public function swapdb($srcdb, $dstdb) {}
|
||||
public function time() {}
|
||||
public function ttl($key) {}
|
||||
public function type($key) {}
|
||||
public function unlink($key, ...$other_keys) {}
|
||||
public function unsubscribe($channel, ...$other_channels) {}
|
||||
public function unwatch() {}
|
||||
public function wait($numslaves, $timeout) {}
|
||||
public function watch($key, ...$other_keys) {}
|
||||
public function xack($str_key, $str_group, array $arr_ids) {}
|
||||
public function xadd($str_key, $str_id, array $arr_fields, $i_maxlen = null, $boo_approximate = null) {}
|
||||
public function xclaim($str_key, $str_group, $str_consumer, $i_min_idle, array $arr_ids, array $arr_opts = null) {}
|
||||
public function xdel($str_key, array $arr_ids) {}
|
||||
public function xgroup($str_operation, $str_key = null, $str_arg1 = null, $str_arg2 = null, $str_arg3 = null) {}
|
||||
public function xinfo($str_cmd, $str_key = null, $str_group = null) {}
|
||||
public function xlen($key) {}
|
||||
public function xpending($str_key, $str_group, $str_start = null, $str_end = null, $i_count = null, $str_consumer = null) {}
|
||||
public function xrange($str_key, $str_start, $str_end, $i_count = null) {}
|
||||
public function xread(array $arr_streams, $i_count = null, $i_block = null) {}
|
||||
public function xreadgroup($str_group, $str_consumer, array $arr_streams, $i_count = null, $i_block = null) {}
|
||||
public function xrevrange($str_key, $str_start, $str_end, $i_count = null) {}
|
||||
public function xtrim($str_key, $i_maxlen, $boo_approximate = null) {}
|
||||
public function zAdd($key, $score, $value) {}
|
||||
public function zCard($key) {}
|
||||
public function zCount($key, $min, $max) {}
|
||||
public function zIncrBy($key, $value, $member) {}
|
||||
public function zLexCount($key, $min, $max) {}
|
||||
public function zPopMax($key) {}
|
||||
public function zPopMin($key) {}
|
||||
public function zRange($key, $start, $end, $scores = null) {}
|
||||
public function zRangeByLex($key, $min, $max, $offset = null, $limit = null) {}
|
||||
public function zRangeByScore($key, $start, $end, array $options = null) {}
|
||||
public function zRank($key, $member) {}
|
||||
public function zRem($key, $member, ...$other_members) {}
|
||||
public function zRemRangeByLex($key, $min, $max) {}
|
||||
public function zRemRangeByRank($key, $start, $end) {}
|
||||
public function zRemRangeByScore($key, $min, $max) {}
|
||||
public function zRevRange($key, $start, $end, $scores = null) {}
|
||||
public function zRevRangeByLex($key, $min, $max, $offset = null, $limit = null) {}
|
||||
public function zRevRangeByScore($key, $start, $end, array $options = null) {}
|
||||
public function zRevRank($key, $member) {}
|
||||
public function zScore($key, $member) {}
|
||||
public function zinterstore($key, array $keys, ?array $weights = null, $aggregate = null) {}
|
||||
public function zscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) {}
|
||||
public function zunionstore($key, array $keys, ?array $weights = null, $aggregate = null) {}
|
||||
public function delete($key, ...$other_keys) {}
|
||||
public function evaluate($script, $args = null, $num_keys = null) {}
|
||||
public function evaluateSha($script_sha, $args = null, $num_keys = null) {}
|
||||
public function getKeys($pattern) {}
|
||||
public function getMultiple(array $keys) {}
|
||||
public function lGet($key, $index) {}
|
||||
public function lGetRange($key, $start, $end) {}
|
||||
public function lRemove($key, $value, $count) {}
|
||||
public function lSize($key) {}
|
||||
public function listTrim($key, $start, $stop) {}
|
||||
public function open($host, $port = null, $timeout = null, $retry_interval = null) {}
|
||||
public function popen($host, $port = null, $timeout = null) {}
|
||||
public function renameKey($key, $newkey) {}
|
||||
public function sContains($key, $value) {}
|
||||
public function sGetMembers($key) {}
|
||||
public function sRemove($key, $member, ...$other_members) {}
|
||||
public function sSize($key) {}
|
||||
public function sendEcho($msg) {}
|
||||
public function setTimeout($key, $timeout) {}
|
||||
public function substr($key, $start, $end) {}
|
||||
public function zDelete($key, $member, ...$other_members) {}
|
||||
public function zDeleteRangeByRank($key, $min, $max) {}
|
||||
public function zDeleteRangeByScore($key, $min, $max) {}
|
||||
public function zInter($key, array $keys, ?array $weights = null, $aggregate = null) {}
|
||||
public function zRemove($key, $member, ...$other_members) {}
|
||||
public function zRemoveRangeByScore($key, $min, $max) {}
|
||||
public function zReverseRange($key, $start, $end, $scores = null) {}
|
||||
public function zSize($key) {}
|
||||
public function zUnion($key, array $keys, ?array $weights = null, $aggregate = null) {}
|
||||
}
|
||||
|
||||
class RedisArray {
|
||||
|
||||
// methods
|
||||
public function __call($function_name, $arguments) {}
|
||||
public function __construct($name_or_hosts, array $options = null) {}
|
||||
public function _continuum() {}
|
||||
public function _distributor() {}
|
||||
public function _function() {}
|
||||
public function _hosts() {}
|
||||
public function _instance($host) {}
|
||||
public function _rehash($callable = null) {}
|
||||
public function _target($key) {}
|
||||
public function bgsave() {}
|
||||
public function del($keys) {}
|
||||
public function discard() {}
|
||||
public function exec() {}
|
||||
public function flushall($async = null) {}
|
||||
public function flushdb($async = null) {}
|
||||
public function getOption($opt) {}
|
||||
public function info() {}
|
||||
public function keys($pattern) {}
|
||||
public function mget($keys) {}
|
||||
public function mset($pairs) {}
|
||||
public function multi($host, $mode = null) {}
|
||||
public function ping() {}
|
||||
public function save() {}
|
||||
public function select($index) {}
|
||||
public function setOption($opt, $value) {}
|
||||
public function unlink() {}
|
||||
public function unwatch() {}
|
||||
public function delete($keys) {}
|
||||
public function getMultiple($keys) {}
|
||||
}
|
||||
|
||||
class RedisCluster {
|
||||
|
||||
// constants
|
||||
const REDIS_NOT_FOUND = 0;
|
||||
const REDIS_STRING = 1;
|
||||
const REDIS_SET = 2;
|
||||
const REDIS_LIST = 3;
|
||||
const REDIS_ZSET = 4;
|
||||
const REDIS_HASH = 5;
|
||||
const REDIS_STREAM = 6;
|
||||
const ATOMIC = 0;
|
||||
const MULTI = 1;
|
||||
const OPT_SERIALIZER = 1;
|
||||
const OPT_PREFIX = 2;
|
||||
const OPT_READ_TIMEOUT = 3;
|
||||
const OPT_TCP_KEEPALIVE = 6;
|
||||
const OPT_COMPRESSION = 7;
|
||||
const OPT_REPLY_LITERAL = 8;
|
||||
const OPT_COMPRESSION_LEVEL = 9;
|
||||
const SERIALIZER_NONE = 0;
|
||||
const SERIALIZER_PHP = 1;
|
||||
const SERIALIZER_JSON = 4;
|
||||
const COMPRESSION_NONE = 0;
|
||||
const OPT_SCAN = 4;
|
||||
const SCAN_RETRY = 1;
|
||||
const SCAN_NORETRY = 0;
|
||||
const OPT_SLAVE_FAILOVER = 5;
|
||||
const FAILOVER_NONE = 0;
|
||||
const FAILOVER_ERROR = 1;
|
||||
const FAILOVER_DISTRIBUTE = 2;
|
||||
const FAILOVER_DISTRIBUTE_SLAVES = 3;
|
||||
const AFTER = 'after';
|
||||
const BEFORE = 'before';
|
||||
|
||||
// methods
|
||||
public function __construct($name, array $seeds = null, $timeout = null, $read_timeout = null, $persistent = null, $auth = null) {}
|
||||
public function _masters() {}
|
||||
public function _prefix($key) {}
|
||||
public function _redir() {}
|
||||
public function _serialize($value) {}
|
||||
public function _unserialize($value) {}
|
||||
public function append($key, $value) {}
|
||||
public function bgrewriteaof($key_or_address) {}
|
||||
public function bgsave($key_or_address) {}
|
||||
public function bitcount($key) {}
|
||||
public function bitop($operation, $ret_key, $key, ...$other_keys) {}
|
||||
public function bitpos($key, $bit, $start = null, $end = null) {}
|
||||
public function blpop($key, $timeout_or_key, ...$extra_args) {}
|
||||
public function brpop($key, $timeout_or_key, ...$extra_args) {}
|
||||
public function brpoplpush($src, $dst, $timeout) {}
|
||||
public function clearlasterror() {}
|
||||
public function bzpopmax($key, $timeout_or_key, ...$extra_args) {}
|
||||
public function bzpopmin($key, $timeout_or_key, ...$extra_args) {}
|
||||
public function client($key_or_address, $arg = null, ...$other_args) {}
|
||||
public function close() {}
|
||||
public function cluster($key_or_address, $arg = null, ...$other_args) {}
|
||||
public function command(...$args) {}
|
||||
public function config($key_or_address, $arg = null, ...$other_args) {}
|
||||
public function dbsize($key_or_address) {}
|
||||
public function decr($key) {}
|
||||
public function decrby($key, $value) {}
|
||||
public function del($key, ...$other_keys) {}
|
||||
public function discard() {}
|
||||
public function dump($key) {}
|
||||
public function echo($msg) {}
|
||||
public function eval($script, $args = null, $num_keys = null) {}
|
||||
public function evalsha($script_sha, $args = null, $num_keys = null) {}
|
||||
public function exec() {}
|
||||
public function exists($key) {}
|
||||
public function expire($key, $timeout) {}
|
||||
public function expireat($key, $timestamp) {}
|
||||
public function flushall($key_or_address, $async = null) {}
|
||||
public function flushdb($key_or_address, $async = null) {}
|
||||
public function geoadd($key, $lng, $lat, $member, ...$other_triples) {}
|
||||
public function geodist($key, $src, $dst, $unit = null) {}
|
||||
public function geohash($key, $member, ...$other_members) {}
|
||||
public function geopos($key, $member, ...$other_members) {}
|
||||
public function georadius($key, $lng, $lan, $radius, $unit, array $opts = null) {}
|
||||
public function georadius_ro($key, $lng, $lan, $radius, $unit, array $opts = null) {}
|
||||
public function georadiusbymember($key, $member, $radius, $unit, array $opts = null) {}
|
||||
public function georadiusbymember_ro($key, $member, $radius, $unit, array $opts = null) {}
|
||||
public function get($key) {}
|
||||
public function getbit($key, $offset) {}
|
||||
public function getlasterror() {}
|
||||
public function getmode() {}
|
||||
public function getoption($option) {}
|
||||
public function getrange($key, $start, $end) {}
|
||||
public function getset($key, $value) {}
|
||||
public function hdel($key, $member, ...$other_members) {}
|
||||
public function hexists($key, $member) {}
|
||||
public function hget($key, $member) {}
|
||||
public function hgetall($key) {}
|
||||
public function hincrby($key, $member, $value) {}
|
||||
public function hincrbyfloat($key, $member, $value) {}
|
||||
public function hkeys($key) {}
|
||||
public function hlen($key) {}
|
||||
public function hmget($key, array $keys) {}
|
||||
public function hmset($key, array $pairs) {}
|
||||
public function hscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) {}
|
||||
public function hset($key, $member, $value) {}
|
||||
public function hsetnx($key, $member, $value) {}
|
||||
public function hstrlen($key, $member) {}
|
||||
public function hvals($key) {}
|
||||
public function incr($key) {}
|
||||
public function incrby($key, $value) {}
|
||||
public function incrbyfloat($key, $value) {}
|
||||
public function info($key_or_address, $option = null) {}
|
||||
public function keys($pattern) {}
|
||||
public function lastsave($key_or_address) {}
|
||||
public function lget($key, $index) {}
|
||||
public function lindex($key, $index) {}
|
||||
public function linsert($key, $position, $pivot, $value) {}
|
||||
public function llen($key) {}
|
||||
public function lpop($key) {}
|
||||
public function lpush($key, $value) {}
|
||||
public function lpushx($key, $value) {}
|
||||
public function lrange($key, $start, $end) {}
|
||||
public function lrem($key, $value) {}
|
||||
public function lset($key, $index, $value) {}
|
||||
public function ltrim($key, $start, $stop) {}
|
||||
public function mget(array $keys) {}
|
||||
public function mset(array $pairs) {}
|
||||
public function msetnx(array $pairs) {}
|
||||
public function multi() {}
|
||||
public function object($field, $key) {}
|
||||
public function persist($key) {}
|
||||
public function pexpire($key, $timestamp) {}
|
||||
public function pexpireat($key, $timestamp) {}
|
||||
public function pfadd($key, array $elements) {}
|
||||
public function pfcount($key) {}
|
||||
public function pfmerge($dstkey, array $keys) {}
|
||||
public function ping($key_or_address) {}
|
||||
public function psetex($key, $expire, $value) {}
|
||||
public function psubscribe(array $patterns, $callback) {}
|
||||
public function pttl($key) {}
|
||||
public function publish($channel, $message) {}
|
||||
public function pubsub($key_or_address, $arg = null, ...$other_args) {}
|
||||
public function punsubscribe($pattern, ...$other_patterns) {}
|
||||
public function randomkey($key_or_address) {}
|
||||
public function rawcommand($cmd, ...$args) {}
|
||||
public function rename($key, $newkey) {}
|
||||
public function renamenx($key, $newkey) {}
|
||||
public function restore($ttl, $key, $value) {}
|
||||
public function role() {}
|
||||
public function rpop($key) {}
|
||||
public function rpoplpush($src, $dst) {}
|
||||
public function rpush($key, $value) {}
|
||||
public function rpushx($key, $value) {}
|
||||
public function sadd($key, $value) {}
|
||||
public function saddarray($key, array $options) {}
|
||||
public function save($key_or_address) {}
|
||||
public function scan(&$i_iterator, $str_node, $str_pattern = null, $i_count = null) {}
|
||||
public function scard($key) {}
|
||||
public function script($key_or_address, $arg = null, ...$other_args) {}
|
||||
public function sdiff($key, ...$other_keys) {}
|
||||
public function sdiffstore($dst, $key, ...$other_keys) {}
|
||||
public function set($key, $value, $opts = null) {}
|
||||
public function setbit($key, $offset, $value) {}
|
||||
public function setex($key, $expire, $value) {}
|
||||
public function setnx($key, $value) {}
|
||||
public function setoption($option, $value) {}
|
||||
public function setrange($key, $offset, $value) {}
|
||||
public function sinter($key, ...$other_keys) {}
|
||||
public function sinterstore($dst, $key, ...$other_keys) {}
|
||||
public function sismember($key, $value) {}
|
||||
public function slowlog($key_or_address, $arg = null, ...$other_args) {}
|
||||
public function smembers($key) {}
|
||||
public function smove($src, $dst, $value) {}
|
||||
public function sort($key, array $options = null) {}
|
||||
public function spop($key) {}
|
||||
public function srandmember($key, $count = null) {}
|
||||
public function srem($key, $value) {}
|
||||
public function sscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) {}
|
||||
public function strlen($key) {}
|
||||
public function subscribe(array $channels, $callback) {}
|
||||
public function sunion($key, ...$other_keys) {}
|
||||
public function sunionstore($dst, $key, ...$other_keys) {}
|
||||
public function time() {}
|
||||
public function ttl($key) {}
|
||||
public function type($key) {}
|
||||
public function unsubscribe($channel, ...$other_channels) {}
|
||||
public function unlink($key, ...$other_keys) {}
|
||||
public function unwatch() {}
|
||||
public function watch($key, ...$other_keys) {}
|
||||
public function xack($str_key, $str_group, array $arr_ids) {}
|
||||
public function xadd($str_key, $str_id, array $arr_fields, $i_maxlen = null, $boo_approximate = null) {}
|
||||
public function xclaim($str_key, $str_group, $str_consumer, $i_min_idle, array $arr_ids, array $arr_opts = null) {}
|
||||
public function xdel($str_key, array $arr_ids) {}
|
||||
public function xgroup($str_operation, $str_key = null, $str_arg1 = null, $str_arg2 = null, $str_arg3 = null) {}
|
||||
public function xinfo($str_cmd, $str_key = null, $str_group = null) {}
|
||||
public function xlen($key) {}
|
||||
public function xpending($str_key, $str_group, $str_start = null, $str_end = null, $i_count = null, $str_consumer = null) {}
|
||||
public function xrange($str_key, $str_start, $str_end, $i_count = null) {}
|
||||
public function xread(array $arr_streams, $i_count = null, $i_block = null) {}
|
||||
public function xreadgroup($str_group, $str_consumer, array $arr_streams, $i_count = null, $i_block = null) {}
|
||||
public function xrevrange($str_key, $str_start, $str_end, $i_count = null) {}
|
||||
public function xtrim($str_key, $i_maxlen, $boo_approximate = null) {}
|
||||
public function zadd($key, $score, $value) {}
|
||||
public function zcard($key) {}
|
||||
public function zcount($key, $min, $max) {}
|
||||
public function zincrby($key, $value, $member) {}
|
||||
public function zinterstore($key, array $keys, ?array $weights = null, $aggregate = null) {}
|
||||
public function zlexcount($key, $min, $max) {}
|
||||
public function zpopmax($key) {}
|
||||
public function zpopmin($key) {}
|
||||
public function zrange($key, $start, $end, $scores = null) {}
|
||||
public function zrangebylex($key, $min, $max, $offset = null, $limit = null) {}
|
||||
public function zrangebyscore($key, $start, $end, array $options = null) {}
|
||||
public function zrank($key, $member) {}
|
||||
public function zrem($key, $member, ...$other_members) {}
|
||||
public function zremrangebylex($key, $min, $max) {}
|
||||
public function zremrangebyrank($key, $min, $max) {}
|
||||
public function zremrangebyscore($key, $min, $max) {}
|
||||
public function zrevrange($key, $start, $end, $scores = null) {}
|
||||
public function zrevrangebylex($key, $min, $max, $offset = null, $limit = null) {}
|
||||
public function zrevrangebyscore($key, $start, $end, array $options = null) {}
|
||||
public function zrevrank($key, $member) {}
|
||||
public function zscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) {}
|
||||
public function zscore($key, $member) {}
|
||||
public function zunionstore($key, array $keys, ?array $weights = null, $aggregate = null) {}
|
||||
}
|
||||
|
||||
class RedisClusterException extends \Exception {
|
||||
|
||||
// properties
|
||||
protected $message;
|
||||
protected $code;
|
||||
protected $file;
|
||||
protected $line;
|
||||
}
|
||||
|
||||
class RedisException extends \Exception {
|
||||
|
||||
// properties
|
||||
protected $message;
|
||||
protected $code;
|
||||
protected $file;
|
||||
protected $line;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,211 +0,0 @@
|
|||
<?php
|
||||
// These stubs were generated by the phan stub generator.
|
||||
// @phan-stub-for-extension sockets@7.0.33-0+deb9u3
|
||||
|
||||
namespace {
|
||||
function socket_accept($socket) {}
|
||||
function socket_bind($socket, $addr, $port = null) {}
|
||||
function socket_clear_error($socket = null) {}
|
||||
function socket_close($socket) {}
|
||||
function socket_cmsg_space($level, $type) {}
|
||||
function socket_connect($socket, $addr, $port = null) {}
|
||||
function socket_create($domain, $type, $protocol) {}
|
||||
function socket_create_listen($port, $backlog = null) {}
|
||||
function socket_create_pair($domain, $type, $protocol, &$fd) {}
|
||||
function socket_export_stream($socket) {}
|
||||
function socket_get_option($socket, $level, $optname) {}
|
||||
function socket_getopt($socket, $level, $optname) {}
|
||||
function socket_getpeername($socket, &$addr, &$port = null) {}
|
||||
function socket_getsockname($socket, &$addr, &$port = null) {}
|
||||
function socket_import_stream($stream) {}
|
||||
function socket_last_error($socket = null) {}
|
||||
function socket_listen($socket, $backlog = null) {}
|
||||
function socket_read($socket, $length, $type = null) {}
|
||||
function socket_recv($socket, &$buf, $len, $flags) {}
|
||||
function socket_recvfrom($socket, &$buf, $len, $flags, &$name, &$port = null) {}
|
||||
function socket_recvmsg($socket, &$msghdr, $flags) {}
|
||||
function socket_select(&$read_fds, &$write_fds, &$except_fds, $tv_sec, $tv_usec = null) {}
|
||||
function socket_send($socket, $buf, $len, $flags) {}
|
||||
function socket_sendmsg($socket, $msghdr, $flags) {}
|
||||
function socket_sendto($socket, $buf, $len, $flags, $addr, $port = null) {}
|
||||
function socket_set_block($socket) {}
|
||||
function socket_set_nonblock($socket) {}
|
||||
function socket_set_option($socket, $level, $optname, $optval) {}
|
||||
function socket_setopt($socket, $level, $optname, $optval) {}
|
||||
function socket_shutdown($socket, $how = null) {}
|
||||
function socket_strerror($errno) {}
|
||||
function socket_write($socket, $buf, $length = null) {}
|
||||
const AF_INET = 2;
|
||||
const AF_INET6 = 10;
|
||||
const AF_UNIX = 1;
|
||||
const IPPROTO_IP = 0;
|
||||
const IPPROTO_IPV6 = 41;
|
||||
const IPV6_HOPLIMIT = 52;
|
||||
const IPV6_MULTICAST_HOPS = 18;
|
||||
const IPV6_MULTICAST_IF = 17;
|
||||
const IPV6_MULTICAST_LOOP = 19;
|
||||
const IPV6_PKTINFO = 50;
|
||||
const IPV6_RECVHOPLIMIT = 51;
|
||||
const IPV6_RECVPKTINFO = 49;
|
||||
const IPV6_RECVTCLASS = 66;
|
||||
const IPV6_TCLASS = 67;
|
||||
const IPV6_UNICAST_HOPS = 16;
|
||||
const IPV6_V6ONLY = 26;
|
||||
const IP_MULTICAST_IF = 32;
|
||||
const IP_MULTICAST_LOOP = 34;
|
||||
const IP_MULTICAST_TTL = 33;
|
||||
const MCAST_BLOCK_SOURCE = 43;
|
||||
const MCAST_JOIN_GROUP = 42;
|
||||
const MCAST_JOIN_SOURCE_GROUP = 46;
|
||||
const MCAST_LEAVE_GROUP = 45;
|
||||
const MCAST_LEAVE_SOURCE_GROUP = 47;
|
||||
const MCAST_UNBLOCK_SOURCE = 44;
|
||||
const MSG_CMSG_CLOEXEC = 1073741824;
|
||||
const MSG_CONFIRM = 2048;
|
||||
const MSG_CTRUNC = 8;
|
||||
const MSG_DONTROUTE = 4;
|
||||
const MSG_DONTWAIT = 64;
|
||||
const MSG_EOF = 512;
|
||||
const MSG_EOR = 128;
|
||||
const MSG_ERRQUEUE = 8192;
|
||||
const MSG_MORE = 32768;
|
||||
const MSG_NOSIGNAL = 16384;
|
||||
const MSG_OOB = 1;
|
||||
const MSG_PEEK = 2;
|
||||
const MSG_TRUNC = 32;
|
||||
const MSG_WAITALL = 256;
|
||||
const MSG_WAITFORONE = 65536;
|
||||
const PHP_BINARY_READ = 2;
|
||||
const PHP_NORMAL_READ = 1;
|
||||
const SCM_CREDENTIALS = 2;
|
||||
const SCM_RIGHTS = 1;
|
||||
const SOCKET_E2BIG = 7;
|
||||
const SOCKET_EACCES = 13;
|
||||
const SOCKET_EADDRINUSE = 98;
|
||||
const SOCKET_EADDRNOTAVAIL = 99;
|
||||
const SOCKET_EADV = 68;
|
||||
const SOCKET_EAFNOSUPPORT = 97;
|
||||
const SOCKET_EAGAIN = 11;
|
||||
const SOCKET_EALREADY = 114;
|
||||
const SOCKET_EBADE = 52;
|
||||
const SOCKET_EBADF = 9;
|
||||
const SOCKET_EBADFD = 77;
|
||||
const SOCKET_EBADMSG = 74;
|
||||
const SOCKET_EBADR = 53;
|
||||
const SOCKET_EBADRQC = 56;
|
||||
const SOCKET_EBADSLT = 57;
|
||||
const SOCKET_EBUSY = 16;
|
||||
const SOCKET_ECHRNG = 44;
|
||||
const SOCKET_ECOMM = 70;
|
||||
const SOCKET_ECONNABORTED = 103;
|
||||
const SOCKET_ECONNREFUSED = 111;
|
||||
const SOCKET_ECONNRESET = 104;
|
||||
const SOCKET_EDESTADDRREQ = 89;
|
||||
const SOCKET_EDQUOT = 122;
|
||||
const SOCKET_EEXIST = 17;
|
||||
const SOCKET_EFAULT = 14;
|
||||
const SOCKET_EHOSTDOWN = 112;
|
||||
const SOCKET_EHOSTUNREACH = 113;
|
||||
const SOCKET_EIDRM = 43;
|
||||
const SOCKET_EINPROGRESS = 115;
|
||||
const SOCKET_EINTR = 4;
|
||||
const SOCKET_EINVAL = 22;
|
||||
const SOCKET_EIO = 5;
|
||||
const SOCKET_EISCONN = 106;
|
||||
const SOCKET_EISDIR = 21;
|
||||
const SOCKET_EISNAM = 120;
|
||||
const SOCKET_EL2HLT = 51;
|
||||
const SOCKET_EL2NSYNC = 45;
|
||||
const SOCKET_EL3HLT = 46;
|
||||
const SOCKET_EL3RST = 47;
|
||||
const SOCKET_ELNRNG = 48;
|
||||
const SOCKET_ELOOP = 40;
|
||||
const SOCKET_EMEDIUMTYPE = 124;
|
||||
const SOCKET_EMFILE = 24;
|
||||
const SOCKET_EMLINK = 31;
|
||||
const SOCKET_EMSGSIZE = 90;
|
||||
const SOCKET_EMULTIHOP = 72;
|
||||
const SOCKET_ENAMETOOLONG = 36;
|
||||
const SOCKET_ENETDOWN = 100;
|
||||
const SOCKET_ENETRESET = 102;
|
||||
const SOCKET_ENETUNREACH = 101;
|
||||
const SOCKET_ENFILE = 23;
|
||||
const SOCKET_ENOANO = 55;
|
||||
const SOCKET_ENOBUFS = 105;
|
||||
const SOCKET_ENOCSI = 50;
|
||||
const SOCKET_ENODATA = 61;
|
||||
const SOCKET_ENODEV = 19;
|
||||
const SOCKET_ENOENT = 2;
|
||||
const SOCKET_ENOLCK = 37;
|
||||
const SOCKET_ENOLINK = 67;
|
||||
const SOCKET_ENOMEDIUM = 123;
|
||||
const SOCKET_ENOMEM = 12;
|
||||
const SOCKET_ENOMSG = 42;
|
||||
const SOCKET_ENONET = 64;
|
||||
const SOCKET_ENOPROTOOPT = 92;
|
||||
const SOCKET_ENOSPC = 28;
|
||||
const SOCKET_ENOSR = 63;
|
||||
const SOCKET_ENOSTR = 60;
|
||||
const SOCKET_ENOSYS = 38;
|
||||
const SOCKET_ENOTBLK = 15;
|
||||
const SOCKET_ENOTCONN = 107;
|
||||
const SOCKET_ENOTDIR = 20;
|
||||
const SOCKET_ENOTEMPTY = 39;
|
||||
const SOCKET_ENOTSOCK = 88;
|
||||
const SOCKET_ENOTTY = 25;
|
||||
const SOCKET_ENOTUNIQ = 76;
|
||||
const SOCKET_ENXIO = 6;
|
||||
const SOCKET_EOPNOTSUPP = 95;
|
||||
const SOCKET_EPERM = 1;
|
||||
const SOCKET_EPFNOSUPPORT = 96;
|
||||
const SOCKET_EPIPE = 32;
|
||||
const SOCKET_EPROTO = 71;
|
||||
const SOCKET_EPROTONOSUPPORT = 93;
|
||||
const SOCKET_EPROTOTYPE = 91;
|
||||
const SOCKET_EREMCHG = 78;
|
||||
const SOCKET_EREMOTE = 66;
|
||||
const SOCKET_EREMOTEIO = 121;
|
||||
const SOCKET_ERESTART = 85;
|
||||
const SOCKET_EROFS = 30;
|
||||
const SOCKET_ESHUTDOWN = 108;
|
||||
const SOCKET_ESOCKTNOSUPPORT = 94;
|
||||
const SOCKET_ESPIPE = 29;
|
||||
const SOCKET_ESRMNT = 69;
|
||||
const SOCKET_ESTRPIPE = 86;
|
||||
const SOCKET_ETIME = 62;
|
||||
const SOCKET_ETIMEDOUT = 110;
|
||||
const SOCKET_ETOOMANYREFS = 109;
|
||||
const SOCKET_EUNATCH = 49;
|
||||
const SOCKET_EUSERS = 87;
|
||||
const SOCKET_EWOULDBLOCK = 11;
|
||||
const SOCKET_EXDEV = 18;
|
||||
const SOCKET_EXFULL = 54;
|
||||
const SOCK_DGRAM = 2;
|
||||
const SOCK_RAW = 3;
|
||||
const SOCK_RDM = 4;
|
||||
const SOCK_SEQPACKET = 5;
|
||||
const SOCK_STREAM = 1;
|
||||
const SOL_SOCKET = 1;
|
||||
const SOL_TCP = 6;
|
||||
const SOL_UDP = 17;
|
||||
const SOMAXCONN = 128;
|
||||
const SO_BINDTODEVICE = 25;
|
||||
const SO_BROADCAST = 6;
|
||||
const SO_DEBUG = 1;
|
||||
const SO_DONTROUTE = 5;
|
||||
const SO_ERROR = 4;
|
||||
const SO_KEEPALIVE = 9;
|
||||
const SO_LINGER = 13;
|
||||
const SO_OOBINLINE = 10;
|
||||
const SO_PASSCRED = 16;
|
||||
const SO_RCVBUF = 8;
|
||||
const SO_RCVLOWAT = 18;
|
||||
const SO_RCVTIMEO = 20;
|
||||
const SO_REUSEADDR = 2;
|
||||
const SO_REUSEPORT = 15;
|
||||
const SO_SNDBUF = 7;
|
||||
const SO_SNDLOWAT = 19;
|
||||
const SO_SNDTIMEO = 21;
|
||||
const SO_TYPE = 3;
|
||||
const TCP_NODELAY = 1;
|
||||
}
|
|
@ -1,276 +0,0 @@
|
|||
<?php
|
||||
// @phan-stub-for-extension sqlsrv@3.0.1
|
||||
|
||||
define('SQLSRV_ERR_ERRORS', 0);
|
||||
|
||||
|
||||
define('SQLSRV_ERR_WARNINGS', 1);
|
||||
|
||||
|
||||
define('SQLSRV_ERR_ALL', 2);
|
||||
|
||||
|
||||
define('SQLSRV_LOG_SYSTEM_ALL',-1);
|
||||
|
||||
|
||||
define('SQLSRV_LOG_SYSTEM_OFF', 0);
|
||||
|
||||
|
||||
define('SQLSRV_LOG_SYSTEM_INIT', 1);
|
||||
|
||||
|
||||
define('SQLSRV_LOG_SYSTEM_CONN', 2);
|
||||
|
||||
|
||||
define('SQLSRV_LOG_SYSTEM_STMT', 4);
|
||||
|
||||
|
||||
define('SQLSRV_LOG_SYSTEM_UTIL', 8);
|
||||
|
||||
|
||||
define('SQLSRV_LOG_SEVERITY_ALL', -1);
|
||||
|
||||
|
||||
define('SQLSRV_LOG_SEVERITY_ERROR', 1);
|
||||
|
||||
|
||||
define('SQLSRV_LOG_SEVERITY_NOTICE', 4);
|
||||
|
||||
|
||||
define('SQLSRV_LOG_SEVERITY_WARNING', 2);
|
||||
|
||||
|
||||
define('SQLSRV_FETCH_NUMERIC', 1);
|
||||
|
||||
|
||||
define('SQLSRV_FETCH_ASSOC', 2);
|
||||
|
||||
|
||||
define('SQLSRV_FETCH_BOTH', 3);
|
||||
|
||||
|
||||
define('SQLSRV_PHPTYPE_NULL', 1);
|
||||
|
||||
|
||||
define('SQLSRV_PHPTYPE_INT', 2);
|
||||
|
||||
|
||||
define('SQLSRV_PHPTYPE_FLOAT', 3);
|
||||
|
||||
|
||||
define('SQLSRV_PHPTYPE_DATETIME', 4);
|
||||
|
||||
|
||||
define('SQLSRV_ENC_BINARY', 'binary');
|
||||
|
||||
|
||||
define('SQLSRV_ENC_CHAR','char');
|
||||
|
||||
|
||||
define('SQLSRV_NULLABLE_NO', 0);
|
||||
|
||||
|
||||
define('SQLSRV_NULLABLE_YES', 1);
|
||||
|
||||
|
||||
define('SQLSRV_NULLABLE_UNKNOWN', 2);
|
||||
|
||||
|
||||
define('SQLSRV_SQLTYPE_BIGINT', -5);
|
||||
|
||||
define('SQLSRV_SQLTYPE_BIT', -7);
|
||||
|
||||
define('SQLSRV_SQLTYPE_DATETIME', 25177693);
|
||||
|
||||
define('SQLSRV_SQLTYPE_FLOAT', 6);
|
||||
|
||||
define('SQLSRV_SQLTYPE_IMAGE', -4);
|
||||
|
||||
define('SQLSRV_SQLTYPE_INT', 4);
|
||||
|
||||
define('SQLSRV_SQLTYPE_MONEY', 33564163);
|
||||
|
||||
define('SQLSRV_SQLTYPE_NTEXT', -10);
|
||||
|
||||
define('SQLSRV_SQLTYPE_TEXT', -1);
|
||||
|
||||
define('SQLSRV_SQLTYPE_REAL', 7);
|
||||
|
||||
define('SQLSRV_SQLTYPE_SMALLDATETIME', 8285);
|
||||
|
||||
define('SQLSRV_SQLTYPE_SMALLINT', 5);
|
||||
|
||||
define('SQLSRV_SQLTYPE_SMALLMONEY', 33559555);
|
||||
|
||||
define('SQLSRV_SQLTYPE_TIMESTAMP', 4606);
|
||||
|
||||
define('SQLSRV_SQLTYPE_TINYINT', -6);
|
||||
|
||||
define('SQLSRV_SQLTYPE_UDT', -151);
|
||||
|
||||
define('SQLSRV_SQLTYPE_UNIQUEIDENTIFIER', -11);
|
||||
|
||||
define('SQLSRV_SQLTYPE_XML', -152);
|
||||
|
||||
define('SQLSRV_SQLTYPE_DATE', 5211);
|
||||
|
||||
define('SQLSRV_SQLTYPE_TIME', 58728806);
|
||||
|
||||
define('SQLSRV_SQLTYPE_DATETIMEOFFSET', 58738021);
|
||||
|
||||
define('SQLSRV_SQLTYPE_DATETIME2', 58734173);
|
||||
|
||||
|
||||
define('SQLSRV_PARAM_IN', 1);
|
||||
|
||||
|
||||
define('SQLSRV_PARAM_INOUT', 2);
|
||||
|
||||
|
||||
define('SQLSRV_PARAM_OUT', 4);
|
||||
|
||||
|
||||
define('SQLSRV_TXN_READ_UNCOMMITTED', 1);
|
||||
|
||||
define('SQLSRV_TXN_READ_COMMITTED', 2);
|
||||
|
||||
define('SQLSRV_TXN_REPEATABLE_READ', 4);
|
||||
|
||||
define('SQLSRV_TXN_SERIALIZABLE', 8);
|
||||
|
||||
define('SQLSRV_TXN_SNAPSHOT', 32);
|
||||
|
||||
|
||||
define('SQLSRV_SCROLL_NEXT', 1);
|
||||
|
||||
define('SQLSRV_SCROLL_PRIOR', 4);
|
||||
|
||||
define('SQLSRV_SCROLL_FIRST', 2);
|
||||
|
||||
define('SQLSRV_SCROLL_LAST', 3);
|
||||
|
||||
define('SQLSRV_SCROLL_ABSOLUTE', 5);
|
||||
|
||||
define('SQLSRV_SCROLL_RELATIVE', 6);
|
||||
|
||||
|
||||
define('SQLSRV_CURSOR_FORWARD', 'forward');
|
||||
|
||||
define('SQLSRV_CURSOR_STATIC', 'static');
|
||||
|
||||
define('SQLSRV_CURSOR_DYNAMIC', 'dynamic');
|
||||
|
||||
define('SQLSRV_CURSOR_KEYSET', 'keyset');
|
||||
|
||||
define('SQLSRV_CURSOR_CLIENT_BUFFERED', 'buffered');
|
||||
|
||||
|
||||
|
||||
function sqlsrv_connect($server_name, $connection_info = array()){}
|
||||
|
||||
|
||||
function sqlsrv_close($conn){}
|
||||
|
||||
|
||||
function sqlsrv_commit($conn){}
|
||||
|
||||
|
||||
function sqlsrv_begin_transaction($conn){}
|
||||
|
||||
|
||||
function sqlsrv_rollback($conn){}
|
||||
|
||||
|
||||
function sqlsrv_errors($errorsAndOrWarnings = SQLSRV_ERR_ALL){}
|
||||
|
||||
|
||||
function sqlsrv_configure($setting, $value){}
|
||||
|
||||
|
||||
function sqlsrv_get_config($setting){}
|
||||
|
||||
|
||||
function sqlsrv_prepare($conn, $tsql, $params=array(), $options=array()){}
|
||||
|
||||
|
||||
function sqlsrv_execute($stmt){}
|
||||
|
||||
|
||||
function sqlsrv_query($conn, $tsql, $params=array(), $options=array()){}
|
||||
|
||||
|
||||
function sqlsrv_fetch($stmt, $row=null, $offset=null){}
|
||||
|
||||
|
||||
function sqlsrv_get_field($stmt, $field_index, $get_as_type){}
|
||||
|
||||
|
||||
function sqlsrv_fetch_array($stmt, $fetch_type = null, $row=null, $offset=null){}
|
||||
|
||||
|
||||
function sqlsrv_fetch_object($stmt, $class_name=null, $ctor_params=null, $row=null, $offset=null){}
|
||||
|
||||
|
||||
function sqlsrv_has_rows($stmt){}
|
||||
|
||||
|
||||
function sqlsrv_num_fields($stmt){}
|
||||
|
||||
|
||||
function sqlsrv_next_result($stmt){}
|
||||
|
||||
|
||||
function sqlsrv_num_rows($stmt){}
|
||||
|
||||
|
||||
function sqlsrv_rows_affected($stmt){}
|
||||
|
||||
|
||||
function sqlsrv_client_info($conn){}
|
||||
|
||||
|
||||
function sqlsrv_server_info($conn){}
|
||||
|
||||
|
||||
function sqlsrv_cancel($stmt){}
|
||||
|
||||
|
||||
function sqlsrv_free_stmt($stmt){}
|
||||
|
||||
|
||||
function sqlsrv_field_metadata($stmt){}
|
||||
|
||||
|
||||
function sqlsrv_send_stream_data($stmt){}
|
||||
|
||||
|
||||
function SQLSRV_PHPTYPE_STREAM($encoding){}
|
||||
|
||||
|
||||
function SQLSRV_PHPTYPE_STRING($encoding){}
|
||||
|
||||
|
||||
function SQLSRV_SQLTYPE_BINARY($byteCount){}
|
||||
|
||||
|
||||
function SQLSRV_SQLTYPE_VARBINARY($byteCount){}
|
||||
|
||||
|
||||
|
||||
function SQLSRV_SQLTYPE_VARCHAR($charCount) {}
|
||||
|
||||
|
||||
function SQLSRV_SQLTYPE_CHAR($charCount){}
|
||||
|
||||
|
||||
function SQLSRV_SQLTYPE_NCHAR($charCount){}
|
||||
|
||||
|
||||
function SQLSRV_SQLTYPE_NVARCHAR($charCount){}
|
||||
|
||||
|
||||
function SQLSRV_SQLTYPE_DECIMAL($precision, $scale){}
|
||||
|
||||
|
||||
function SQLSRV_SQLTYPE_NUMERIC($precision, $scale){}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
<?php
|
||||
// These stubs were generated by the phan stub generator.
|
||||
// @phan-stub-for-extension tideways@4.0.7
|
||||
|
||||
namespace {
|
||||
function tideways_disable() {}
|
||||
function tideways_enable($flags = null, $options = null) {}
|
||||
function tideways_fatal_backtrace() {}
|
||||
function tideways_get_spans() {}
|
||||
function tideways_last_detected_exception() {}
|
||||
function tideways_last_fatal_error() {}
|
||||
function tideways_prepend_overwritten() {}
|
||||
function tideways_span_annotate($span = null, $annotations = null) {}
|
||||
function tideways_span_callback($name = null, $callback = null) {}
|
||||
function tideways_span_create($category = null) {}
|
||||
function tideways_span_timer_start($span = null) {}
|
||||
function tideways_span_timer_stop($span = null) {}
|
||||
function tideways_span_watch($name = null, $category = null) {}
|
||||
function tideways_sql_minify($sql = null) {}
|
||||
function tideways_transaction_name() {}
|
||||
const TIDEWAYS_FLAGS_CPU = 2;
|
||||
const TIDEWAYS_FLAGS_MEMORY = 4;
|
||||
const TIDEWAYS_FLAGS_NO_BUILTINS = 1;
|
||||
const TIDEWAYS_FLAGS_NO_COMPILE = 16;
|
||||
const TIDEWAYS_FLAGS_NO_HIERACHICAL = 64;
|
||||
const TIDEWAYS_FLAGS_NO_SPANS = 32;
|
||||
const TIDEWAYS_FLAGS_NO_USERLAND = 8;
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
// phpcs:ignoreFile
|
||||
|
||||
/**
|
||||
* @param string $text1
|
||||
* @param string $text2
|
||||
* @param int $numContextLines
|
||||
* @param int $movedParagraphDetectionCutoff
|
||||
* @return string
|
||||
*/
|
||||
function wikidiff2_do_diff( $text1, $text2, $numContextLines, $movedParagraphDetectionCutoff = 0 ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $text1
|
||||
* @param string $text2
|
||||
* @param int $numContextLines
|
||||
* @return string
|
||||
*/
|
||||
function wikidiff2_inline_diff( $text1, $text2, $numContextLines ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $text1
|
||||
* @param string $text2
|
||||
* @param int $numContextLines
|
||||
* @return string
|
||||
*/
|
||||
function wikidiff2_inline_json_diff( $text1, $text2, $numContextLines ) {
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
These stubs describe how code that is not available at analysis time should be
|
||||
used. No implementations are necessary, just define the classes and their
|
||||
methods and use phpdoc to describe what arguments are allowed.
|
|
@ -1,6 +0,0 @@
|
|||
<?php
|
||||
|
||||
// Stub for PHP 8's ValueError exception
|
||||
|
||||
class ValueError extends Error {
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Minimal set of classes necessary for UserMailer to be happy. Types
|
||||
* taken from documentation at pear.php.net.
|
||||
* phpcs:ignoreFile
|
||||
*/
|
||||
|
||||
class PEAR {
|
||||
/**
|
||||
* @param mixed $data
|
||||
* @return bool
|
||||
*/
|
||||
public static function isError( $data ) {
|
||||
}
|
||||
}
|
||||
|
||||
class PEAR_Error {
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getMessage() {
|
||||
}
|
||||
}
|
||||
|
||||
class Mail {
|
||||
/**
|
||||
* @param string $driver
|
||||
* @param array $params
|
||||
* @return self
|
||||
*/
|
||||
static public function factory( $driver, array $params = [] ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $recipients
|
||||
* @param array $headers
|
||||
* @param string $body
|
||||
* @return bool|PEAR_Error
|
||||
*/
|
||||
public function send( $recipients, array $headers, $body ) {
|
||||
}
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getMessage() {
|
||||
}
|
||||
}
|
||||
|
||||
class Mail_smtp extends Mail {
|
||||
}
|
||||
|
||||
class Mail_mime {
|
||||
/**
|
||||
* @param mixed $params
|
||||
*/
|
||||
public function __construct( $params = [] ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $data
|
||||
* @param bool $isfile
|
||||
* @param bool $append
|
||||
* @return bool|PEAR_Error
|
||||
*/
|
||||
public function setTXTBody( $data, $isfile = false, $append = false ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $data
|
||||
* @param bool $isfile
|
||||
* @return bool|PEAR_Error
|
||||
*/
|
||||
public function setHTMLBody( $data, $isfile = false ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array|null $parms
|
||||
* @param mixed $filename
|
||||
* @param bool $skip_head
|
||||
* @return string|bool|PEAR_Error
|
||||
*/
|
||||
public function get( $params = null, $filename = null, $skip_head = false ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array|null $xtra_headers
|
||||
* @param bool $overwrite
|
||||
* @param bool $skip_content
|
||||
* @return array
|
||||
*/
|
||||
public function headers( array $xtra_headers = null, $overwrite = false, $skip_content = false ) {
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
<?php
|
||||
// phpcs:ignoreFile
|
||||
|
||||
// Password constants added in PHP 7.2 & 7.3
|
||||
|
||||
const PASSWORD_ARGON2I = 2;
|
||||
const PASSWORD_ARGON2ID = 3;
|
||||
const PASSWORD_ARGON2_DEFAULT_MEMORY_COST = 1024;
|
||||
const PASSWORD_ARGON2_DEFAULT_THREADS = 2;
|
||||
const PASSWORD_ARGON2_DEFAULT_TIME_COST = 2;
|
253
.phpcs.xml
253
.phpcs.xml
|
@ -1,253 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<ruleset name="MediaWiki">
|
||||
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
|
||||
<exclude name="Generic.ControlStructures.InlineControlStructure" />
|
||||
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate" />
|
||||
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" />
|
||||
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
|
||||
<exclude name="MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures" />
|
||||
<exclude name="MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName" />
|
||||
<exclude name="MediaWiki.Usage.DbrQueryUsage.DbrQueryFound" />
|
||||
<exclude name="MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgContLang" />
|
||||
<exclude name="MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgMemc" />
|
||||
<exclude name="MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgTitle" />
|
||||
<exclude name="MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgUser" />
|
||||
<exclude name="MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgVersion" />
|
||||
<exclude name="MediaWiki.Usage.ForbiddenFunctions.passthru" />
|
||||
<exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
|
||||
</rule>
|
||||
<!-- TODO Still to be done -->
|
||||
<rule ref="MediaWiki.Commenting.FunctionComment.WrongStyle">
|
||||
<exclude-pattern>includes/</exclude-pattern>
|
||||
</rule>
|
||||
<!-- See T238572 -->
|
||||
<rule ref="MediaWiki.Commenting.FunctionComment.MissingParamTag">
|
||||
<exclude-pattern>tests/</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.NamingConventions.PrefixedGlobalFunctions">
|
||||
<properties>
|
||||
<!--
|
||||
includes/GlobalFunctions.php
|
||||
* mimeTypeMatch
|
||||
maintenance/language/transstat.php
|
||||
* showUsage
|
||||
maintenance/mcc.php
|
||||
* mccGetHelp
|
||||
* mccShowUsage
|
||||
maintenance/storage/moveToExternal.php
|
||||
* moveToExternal
|
||||
maintenance/storage/resolveStubs.php
|
||||
* resolveStub
|
||||
* resolveStubs
|
||||
tests/phpunit/includes/HooksTest.php
|
||||
* NothingFunction
|
||||
* NothingFunctionData
|
||||
tests/qunit/data/styleTest.css.php
|
||||
* cssfilter
|
||||
-->
|
||||
<property name="ignoreList" type="array" value="cssfilter,mccGetHelp,mccShowUsage,mimeTypeMatch,moveToExternal,NothingFunction,NothingFunctionData,resolveStub,resolveStubs,showUsage" />
|
||||
</properties>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.NamingConventions.ValidGlobalName">
|
||||
<properties>
|
||||
<property name="ignoreList" type="array" value="$IP" />
|
||||
</properties>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.NamingConventions.ValidGlobalName.allowedPrefix">
|
||||
<exclude-pattern>maintenance/language/checkLanguage\.inc</exclude-pattern>
|
||||
<exclude-pattern>maintenance/doMaintenance\.php</exclude-pattern>
|
||||
<exclude-pattern>maintenance/mergeMessageFileList\.php</exclude-pattern>
|
||||
<exclude-pattern>maintenance/commandLine\.inc</exclude-pattern>
|
||||
<exclude-pattern>tests/phpunit/MediaWikiIntegrationTestCase\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="Generic.Files.LineLength">
|
||||
<exclude-pattern>*/languages/messages/Messages*\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.Files.ClassMatchesFilename.NotMatch">
|
||||
<!--
|
||||
Whitelist existing violations, but enable the sniff to prevent
|
||||
any new occurrences.
|
||||
-->
|
||||
<exclude-pattern>*/includes/specials/SpecialMostimages\.php</exclude-pattern>
|
||||
<exclude-pattern>*/includes/specials/SpecialMovepage\.php</exclude-pattern>
|
||||
<exclude-pattern>*/includes/specials/SpecialRandompage\.php</exclude-pattern>
|
||||
<exclude-pattern>*/includes/specials/SpecialUserrights\.php</exclude-pattern>
|
||||
<exclude-pattern>*/includes/specials/SpecialWantedfiles\.php</exclude-pattern>
|
||||
<exclude-pattern>*/includes/specials/SpecialWantedpages\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/CodeCleanerGlobalsPass.inc</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/archives/upgradeLogging\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/benchmarks/bench_HTTP_HTTPS\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/benchmarks/bench_Wikimedia_base_convert\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/benchmarks/bench_delete_truncate\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/benchmarks/bench_if_switch\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/benchmarks/bench_utf8_title_check\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/benchmarks/bench_wfIsWindows\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/cleanupTable.inc</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/cleanupTitles\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/commandLine.inc</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/edit\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/findDeprecated\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/getText\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/importDump\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/install\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/invalidateUserSessions\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/jsparse\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/lag\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/language/StatOutputs\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/language/checkLanguage.inc</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/language/date-formats\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/language/languages.inc</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/minify\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/mysql\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/parse\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/preprocessorFuzzTest\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/rebuildImages\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/renderDump\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/shell\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/sql\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/sqlite.inc</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/sqlite\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/term/MWTerm\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/update\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/userDupes.inc</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/userOptions\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/view\.php</exclude-pattern>
|
||||
<!-- Language converters use the pattern of 2 classes in one file -->
|
||||
<exclude-pattern>*/languages/*\.php</exclude-pattern>
|
||||
<!-- Skip violations in some tests for now -->
|
||||
<exclude-pattern>*/tests/parser/*\.php</exclude-pattern>
|
||||
<exclude-pattern>*/tests/phan/*\.php</exclude-pattern>
|
||||
<exclude-pattern>*/tests/phpunit/maintenance/*\.php</exclude-pattern>
|
||||
<exclude-pattern>*/tests/phpunit/bootstrap\.php</exclude-pattern>
|
||||
<exclude-pattern>*/tests/phpunit/phpunit\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.Files.ClassMatchesFilename.WrongCase">
|
||||
<!--
|
||||
Whitelist existing violations, but enable the sniff to prevent
|
||||
any new occurrences.
|
||||
-->
|
||||
<exclude-pattern>*/maintenance/language/alltrans\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/language/digit2html\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/language/langmemusage\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/mctest\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/mergeMessageFileList\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/mwdocgen\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/rebuildall\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/rebuildmessages\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/rebuildrecentchanges\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/rebuildtextindex\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/storage/checkStorage\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/storage/recompressTracked\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/storage/trackBlobs\.php</exclude-pattern>
|
||||
<!-- Skip violations in some tests for now -->
|
||||
<exclude-pattern>*/tests/phpunit/unit/includes/GlobalFunctions/*\.php</exclude-pattern>
|
||||
<exclude-pattern>*/tests/phpunit/includes/GlobalFunctions/*\.php</exclude-pattern>
|
||||
<exclude-pattern>*/tests/phpunit/maintenance/*\.php</exclude-pattern>
|
||||
<exclude-pattern>*/tests/phpunit/integration/includes/GlobalFunctions/*\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="Generic.PHP.NoSilencedErrors.Discouraged">
|
||||
<!--
|
||||
Our normal policy of using Wikimedia\AtEase does not always make sense tests.
|
||||
|
||||
AtEase cannot be cleanly used in tests that also use expectException() as
|
||||
the restoreWarnings() call would never be reached:
|
||||
|
||||
$this->expectException( PasswordError::class );
|
||||
AtEase::suppressWarnings();
|
||||
$password->crypt( 'whatever' );
|
||||
AtEase::restoreWarnings();
|
||||
|
||||
The above will stop at crypt(), as expected, and leave AtEase in a dirty
|
||||
state for unrelated tests.
|
||||
|
||||
TODO: Stop using PHPUnit TestCase directly. Require with a structure test
|
||||
or with a high-level check in our run() hook, that all test cases use either
|
||||
MediaWikiUnitTestCase or MediaWikiIntegrationTestCase. Otherwise the check
|
||||
in MediaWikiTestCaseTrait can still be bypassed and cause a random failures.
|
||||
|
||||
-->
|
||||
<exclude-pattern>*/tests/*\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="Generic.Files.OneObjectStructurePerFile.MultipleFound">
|
||||
<!--
|
||||
Whitelist existing violations, but enable the sniff to prevent
|
||||
any new occurrences.
|
||||
-->
|
||||
<exclude-pattern>*/maintenance/dumpIterator\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/findDeprecated\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/storage/recompressTracked\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/preprocessorFuzzTest\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/language/languages.inc</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/language/StatOutputs\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/language/checkLanguage.inc</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/language/generateCollationData\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/term/MWTerm\.php</exclude-pattern>
|
||||
<!-- Language converters use the pattern of 2 classes in one file -->
|
||||
<exclude-pattern>*/languages/*\.php</exclude-pattern>
|
||||
<!-- We don't care that much about violations in tests -->
|
||||
<exclude-pattern>*/tests/*\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="PSR2.Methods.MethodDeclaration.Underscore">
|
||||
<exclude-pattern>*/includes/StubObject\.php</exclude-pattern>
|
||||
<exclude-pattern>*/includes/StubUserLang\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn">
|
||||
<exclude-pattern>*/tests/phpunit/*\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.Usage.ForbiddenFunctions.escapeshellarg">
|
||||
<!--
|
||||
Whitelist existing violations, but enable the sniff to prevent
|
||||
any new occurrences.
|
||||
-->
|
||||
<exclude-pattern>*/includes/libs/filebackend/FSFileBackend\.php</exclude-pattern>
|
||||
<exclude-pattern>*/includes/shell/Command\.php</exclude-pattern>
|
||||
<exclude-pattern>*/includes/shell/Shell\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.Usage.ForbiddenFunctions.popen">
|
||||
<!--
|
||||
Whitelist existing violations, but enable the sniff to prevent
|
||||
any new occurrences.
|
||||
-->
|
||||
<exclude-pattern>*/includes/GlobalFunctions\.php</exclude-pattern>
|
||||
<exclude-pattern>*/includes/libs/filebackend/FSFileBackend\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/includes/SevenZipStream\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/populateImageSha1\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.Usage.ForbiddenFunctions.proc_open">
|
||||
<!--
|
||||
Whitelist existing violations, but enable the sniff to prevent
|
||||
any new occurrences.
|
||||
-->
|
||||
<exclude-pattern>includes/export/DumpPipeOutput\.php</exclude-pattern>
|
||||
<exclude-pattern>includes/resourceloader/ResourceLoaderImage\.php</exclude-pattern>
|
||||
<exclude-pattern>includes/shell/Command\.php</exclude-pattern>
|
||||
<exclude-pattern>maintenance/includes/TextPassDumper\.php</exclude-pattern>
|
||||
<exclude-pattern>maintenance/mysql\.php</exclude-pattern>
|
||||
<exclude-pattern>maintenance/storage/recompressTracked\.php</exclude-pattern>
|
||||
<exclude-pattern>tests/parser/editTests\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.Usage.ForbiddenFunctions.shell_exec">
|
||||
<!--
|
||||
Whitelist existing violations, but enable the sniff to prevent
|
||||
any new occurrences.
|
||||
-->
|
||||
<exclude-pattern>*/maintenance/mwdocgen\.php</exclude-pattern>
|
||||
<exclude-pattern>*/maintenance/updateCredits\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.Usage.ForbiddenFunctions.system">
|
||||
<!--
|
||||
Whitelist existing violations, but enable the sniff to prevent
|
||||
any new occurrences.
|
||||
-->
|
||||
<exclude-pattern>*/maintenance/mwdocgen\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="MediaWiki.Commenting.MissingCovers.MissingCovers">
|
||||
<exclude-pattern>tests/phpunit/structure/*</exclude-pattern>
|
||||
</rule>
|
||||
<file>.</file>
|
||||
<arg name="encoding" value="UTF-8"/>
|
||||
<arg name="extensions" value="php,php5,inc,sample"/>
|
||||
<exclude-pattern type="relative">^extensions/</exclude-pattern>
|
||||
<exclude-pattern type="relative">^skins/</exclude-pattern>
|
||||
<exclude-pattern>LocalSettings\.php</exclude-pattern>
|
||||
</ruleset>
|
|
@ -1,14 +0,0 @@
|
|||
version: v4
|
||||
base: docker-registry.wikimedia.org/dev/stretch-php72-fpm-apache2-blubber
|
||||
|
||||
lives:
|
||||
in: /var/www/html
|
||||
|
||||
variants:
|
||||
dev:
|
||||
runs:
|
||||
insecurely: true
|
||||
builder:
|
||||
command: [.pipeline/dev_prereq.sh]
|
||||
requirements: [.pipeline, .pipeline/dev_prereq.sh, composer.json]
|
||||
copies: [local]
|
|
@ -1,9 +0,0 @@
|
|||
pipelines:
|
||||
publish:
|
||||
blubberfile: blubber.yaml
|
||||
stages:
|
||||
- name: dev
|
||||
build: dev
|
||||
publish:
|
||||
image:
|
||||
tags: [dev]
|
|
@ -1,18 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
mkdir -p /tmp/php
|
||||
mkdir -p extensions
|
||||
|
||||
git clone --depth 1 https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor.git /var/www/html/extensions/VisualEditor
|
||||
git clone --depth 1 https://gerrit.wikimedia.org/r/mediawiki/skins/Vector /var/www/html/skins/Vector
|
||||
cd /var/www/html/extensions/VisualEditor
|
||||
git submodule update --depth 10 --init
|
||||
|
||||
cd /var/www/html
|
||||
composer install
|
||||
cat <<PHP > LocalSettings.php
|
||||
<?php
|
||||
require_once '/var/config/LocalSettings.php';
|
||||
PHP
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"extends": "stylelint-config-wikimedia",
|
||||
"rules": {
|
||||
"selector-class-pattern": "^((mw|oo-ui)-|(wikitable|(toc(|toggle|hidden))|client-(no)?js)$)",
|
||||
"no-descending-specificity": null,
|
||||
"selector-max-id": null
|
||||
}
|
||||
}
|
230
DEVELOPERS.md
230
DEVELOPERS.md
|
@ -1,230 +0,0 @@
|
|||
# MediaWiki Developers
|
||||
|
||||
Welcome to the MediaWiki community! Please see [How to become a MediaWiki
|
||||
hacker](https://www.mediawiki.org/wiki/How_to_become_a_MediaWiki_hacker) for
|
||||
general information on contributing to MediaWiki.
|
||||
|
||||
## Docker Developer Environment
|
||||
|
||||
MediaWiki provides an extendable local development environment based on
|
||||
Docker Compose.
|
||||
|
||||
The default environment provides PHP, Apache, XDebug and a SQLite database.
|
||||
(**Do not run this stack in production! Bad things might happen!**)
|
||||
|
||||
More documentation as well as example overrides and configuration recipes
|
||||
are available at [mediawiki.org/wiki/MediaWiki-Docker][mw-docker].
|
||||
|
||||
Support is available on the [Freenode IRC network][freenode] at `#mediawiki`
|
||||
and on Wikimedia Phabricator at [#MediaWiki-Docker][mw-docker-phab].
|
||||
|
||||
[mw-docker]: https://www.mediawiki.org/wiki/MediaWiki-Docker
|
||||
[mw-docker-phab]: https://phabricator.wikimedia.org/project/profile/3094/
|
||||
[freenode]: https://freenode.net/
|
||||
|
||||
### Requirements
|
||||
|
||||
You'll need a locally running Docker and Docker Compose:
|
||||
|
||||
- [Docker installation instructions][docker-install]
|
||||
- [Docker Compose installation instructions][docker-compose]
|
||||
|
||||
[docker-install]: https://docs.docker.com/install/
|
||||
[docker-compose]: https://docs.docker.com/compose/install/
|
||||
|
||||
---
|
||||
|
||||
**Linux users**
|
||||
|
||||
* We recommend installing `docker-compose` by [downloading the binary release](https://docs.docker.com/compose/install/#install-compose-on-linux-systems). You can also use `pip`, your OS package manager, or even run it in a container, but downloading the binary release is the easiest method.
|
||||
* Follow the instructions to ["Manage Docker as a non-root user"](https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user)
|
||||
|
||||
---
|
||||
|
||||
### Quickstart
|
||||
|
||||
Using a text editor, create a `.env` file in the root of the MediaWiki core repository, and copy these contents into that file:
|
||||
|
||||
```bash
|
||||
MW_DOCKER_PORT=8080
|
||||
MW_SCRIPT_PATH=/
|
||||
MW_SERVER=http://localhost:8080
|
||||
MEDIAWIKI_USER=Admin
|
||||
MEDIAWIKI_PASSWORD=dockerpass
|
||||
XDEBUG_CONFIG=''
|
||||
```
|
||||
|
||||
#### Linux users
|
||||
|
||||
If you are on a Linux system, first create a
|
||||
|
||||
`docker-compose.override.yml` containing the following:
|
||||
|
||||
|
||||
```yaml
|
||||
version: '3.7'
|
||||
services:
|
||||
mediawiki:
|
||||
# On Linux, these lines ensure file ownership is set to your host user/group
|
||||
user: "${MW_DOCKER_UID}:${MW_DOCKER_GID}"
|
||||
```
|
||||
|
||||
Run the following command to add your user ID and group ID to your `.env` file:
|
||||
|
||||
```bash
|
||||
echo "MW_DOCKER_UID=$(id -u)
|
||||
MW_DOCKER_GID=$(id -g)" >> .env
|
||||
```
|
||||
|
||||
#### Start environment and install MediaWiki
|
||||
|
||||
Start the environment:
|
||||
|
||||
```sh
|
||||
# -d is detached mode - runs containers in the background:
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
Install Composer dependencies:
|
||||
|
||||
```sh
|
||||
docker-compose exec mediawiki composer update
|
||||
```
|
||||
|
||||
Install MediaWiki in the environment:
|
||||
|
||||
```sh
|
||||
docker-compose exec mediawiki /bin/bash /docker/install.sh
|
||||
```
|
||||
|
||||
##### Re-install
|
||||
|
||||
Remove or rename `LocalSettings.php`, delete the `cache/sqlite` directory, then
|
||||
re-run the installation command above. Copy over any changes from your previous
|
||||
`LocalSettings.php` and then run `maintenance/update.php`.
|
||||
|
||||
### Usage
|
||||
|
||||
#### Running commands
|
||||
|
||||
You can use `docker-compose exec mediawiki bash` to open a bash shell in the
|
||||
MediaWiki container, or you can run commands in the container from your host,
|
||||
for example: `docker-compose exec mediawiki php maintenance/update.php`
|
||||
|
||||
#### Running tests
|
||||
|
||||
##### PHPUnit
|
||||
|
||||
Run all tests:
|
||||
|
||||
```sh
|
||||
docker-compose exec mediawiki php tests/phpunit/phpunit.php
|
||||
```
|
||||
|
||||
Run a single test:
|
||||
|
||||
```sh
|
||||
docker-compose exec mediawiki php tests/phpunit/phpunit.php /path/to/test
|
||||
```
|
||||
|
||||
See [PHPUnit Testing][phpunit-testing] on MediaWiki.org for more help.
|
||||
|
||||
[phpunit-testing]: https://www.mediawiki.org/wiki/Manual:PHP_unit_testing/Running_the_unit_tests
|
||||
|
||||
##### Selenium
|
||||
|
||||
You can use [Fresh][fresh] to run [Selenium in a dedicated
|
||||
container][selenium-dedicated]. Example usage:
|
||||
|
||||
```sh
|
||||
export MW_SERVER=http://localhost:8080
|
||||
export MW_SCRIPT_PATH=/
|
||||
export MEDIAWIKI_USER=Admin
|
||||
export MEDIAWIKI_PASSWORD=dockerpass
|
||||
fresh-node -env -net
|
||||
npm ci
|
||||
npm run selenium
|
||||
```
|
||||
|
||||
[selenium-dedicated]: https://www.mediawiki.org/wiki/Selenium/Node.js/Target_Local_MediaWiki_(Container)
|
||||
|
||||
#### API Testing
|
||||
|
||||
You can use [Fresh][fresh] to run [API tests in a dedicated
|
||||
container][api-dedicated]. Example usage:
|
||||
|
||||
```sh
|
||||
export MW_SERVER=http://localhost:8080/
|
||||
export MW_SCRIPT_PATH=/
|
||||
export MEDIAWIKI_USER=Admin
|
||||
export MEDIAWIKI_PASSWORD=dockerpass
|
||||
fresh-node -env -net
|
||||
# Create .api-testing.config.json as documented on
|
||||
# https://www.mediawiki.org/wiki/MediaWiki_API_integration_tests
|
||||
npm ci
|
||||
npm run api-testing
|
||||
```
|
||||
|
||||
[fresh]: https://github.com/wikimedia/fresh
|
||||
[api-dedicated]: https://www.mediawiki.org/wiki/MediaWiki_API_integration_tests
|
||||
|
||||
### Modifying the development environment
|
||||
|
||||
You can override the default services with a `docker-compose.override.yml`
|
||||
file, and configure those overrides with changes to `LocalSettings.php`.
|
||||
|
||||
Example overrides and configurations can be found at [MediaWiki-Docker](https://www.mediawiki.org/wiki/MediaWiki-Docker)
|
||||
|
||||
After updating `docker-compose.override.yml`, run `docker-compose down`
|
||||
followed by `docker-compose up -d` for changes to take effect.
|
||||
|
||||
#### Installing extra packages
|
||||
|
||||
If you need root on the container to install packages for troubleshooting,
|
||||
you can open a shell as root with `docker-compose exec --user root mediawiki
|
||||
bash`.
|
||||
|
||||
#### Use Vector skin
|
||||
|
||||
Clone the skin to `skins/Vector`:
|
||||
|
||||
```sh
|
||||
git clone "https://gerrit.wikimedia.org/r/mediawiki/skins/Vector" skins/Vector
|
||||
```
|
||||
|
||||
Configure MediaWiki to use the skin:
|
||||
|
||||
```sh
|
||||
echo "wfLoadSkin( 'Vector' );" >> LocalSettings.php
|
||||
```
|
||||
|
||||
#### XDebug
|
||||
|
||||
You can override the XDebug configuration included with the default image by
|
||||
passing `XDEBUG_CONFIG={your config}` in the `.env` file at the root of the MediaWiki repository:
|
||||
|
||||
```
|
||||
XDEBUG_CONFIG=remote_enable=1 remote_host=172.17.0.1 remote_log=/tmp/xdebug.log remote_port=9009
|
||||
```
|
||||
|
||||
##### Troubleshooting
|
||||
|
||||
###### Port conflicts
|
||||
|
||||
If you installed php-fpm on your host, that is listening on port 9000 and
|
||||
will conflict with XDebug. The workaround is to tell your IDE to listen on a
|
||||
different port (e.g. 9009) and to set the configuration in your
|
||||
`.env` file: `XDEBUG_CONFIG=remote_port=9009`
|
||||
|
||||
###### Linux desktop, host not found
|
||||
|
||||
The image uses `host.docker.internal` as the `remote_host` value which
|
||||
should work for Docker for Mac/Windows. On Linux hosts, you need to specify
|
||||
the hostname or IP address of your host. The IP address works more reliably.
|
||||
You can obtain it by running e.g. `ip -4 addr show docker0` and copying the
|
||||
IP address into the config, like `XDEBUG_CONFIG=remote_host=172.17.0.1`
|
||||
|
||||
###### Generating logs
|
||||
|
||||
Switching on the remote log for XDebug comes at a performance cost so only
|
||||
use it while troubleshooting. You can enable it like so: `XDEBUG_CONFIG=remote_log=/tmp/xdebug.log`
|
152
Gruntfile.js
152
Gruntfile.js
|
@ -1,152 +0,0 @@
|
|||
/* eslint-env node */
|
||||
module.exports = function ( grunt ) {
|
||||
var wgServer = process.env.MW_SERVER,
|
||||
wgScriptPath = process.env.MW_SCRIPT_PATH,
|
||||
karmaProxy = {};
|
||||
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-contrib-copy' );
|
||||
grunt.loadNpmTasks( 'grunt-eslint' );
|
||||
grunt.loadNpmTasks( 'grunt-karma' );
|
||||
grunt.loadNpmTasks( 'grunt-stylelint' );
|
||||
grunt.loadNpmTasks( 'grunt-svgmin' );
|
||||
|
||||
karmaProxy[ wgScriptPath ] = {
|
||||
target: wgServer + wgScriptPath,
|
||||
changeOrigin: true
|
||||
};
|
||||
|
||||
grunt.initConfig( {
|
||||
eslint: {
|
||||
options: {
|
||||
extensions: [ '.js', '.json', '.vue' ],
|
||||
cache: true,
|
||||
fix: grunt.option( 'fix' )
|
||||
},
|
||||
all: '.'
|
||||
},
|
||||
banana: {
|
||||
options: {
|
||||
requireLowerCase: false,
|
||||
disallowBlankTranslations: false
|
||||
},
|
||||
core: 'languages/i18n/',
|
||||
exif: 'languages/i18n/exif/',
|
||||
api: 'includes/api/i18n/',
|
||||
rest: 'includes/Rest/i18n/',
|
||||
installer: 'includes/installer/i18n/',
|
||||
paramvalidator: 'includes/libs/ParamValidator/i18n/'
|
||||
},
|
||||
stylelint: {
|
||||
src: '{resources/src,mw-config}/**/*.{css,less,vue}'
|
||||
},
|
||||
svgmin: {
|
||||
options: {
|
||||
js2svg: {
|
||||
indent: '\t',
|
||||
pretty: true
|
||||
},
|
||||
multipass: true,
|
||||
plugins: [ {
|
||||
cleanupIDs: false
|
||||
}, {
|
||||
removeDesc: false
|
||||
}, {
|
||||
removeRasterImages: true
|
||||
}, {
|
||||
removeTitle: false
|
||||
}, {
|
||||
removeViewBox: false
|
||||
}, {
|
||||
removeXMLProcInst: false
|
||||
}, {
|
||||
sortAttrs: true
|
||||
} ]
|
||||
},
|
||||
all: {
|
||||
files: [ {
|
||||
expand: true,
|
||||
cwd: 'resources/src',
|
||||
src: [
|
||||
'**/*.svg'
|
||||
],
|
||||
dest: 'resources/src/',
|
||||
ext: '.svg'
|
||||
} ]
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
files: [
|
||||
'.{stylelintrc,eslintrc.json}',
|
||||
'**/*',
|
||||
'!{docs,extensions,node_modules,skins,vendor}/**'
|
||||
],
|
||||
tasks: 'test'
|
||||
},
|
||||
karma: {
|
||||
options: {
|
||||
customLaunchers: {
|
||||
ChromeCustom: {
|
||||
base: 'ChromeHeadless',
|
||||
// Chrome requires --no-sandbox in Docker/CI.
|
||||
// WMF CI images expose CHROMIUM_FLAGS which sets that.
|
||||
flags: ( process.env.CHROMIUM_FLAGS || '' ).split( ' ' )
|
||||
}
|
||||
},
|
||||
proxies: karmaProxy,
|
||||
files: [ {
|
||||
pattern: wgServer + wgScriptPath + '/index.php?title=Special:JavaScriptTest/qunit/export',
|
||||
watched: false,
|
||||
included: true,
|
||||
served: false
|
||||
} ],
|
||||
logLevel: ( process.env.ZUUL_PROJECT ? 'DEBUG' : 'INFO' ),
|
||||
frameworks: [ 'qunit' ],
|
||||
reporters: [ 'mocha' ],
|
||||
singleRun: true,
|
||||
autoWatch: false,
|
||||
// Some tests in extensions don't yield for more than the default 10s (T89075)
|
||||
browserNoActivityTimeout: 60 * 1000,
|
||||
// Karma requires Same-Origin (or CORS) by default since v1.1.1
|
||||
// for better stacktraces. But we load the first request from wgServer
|
||||
crossOriginAttribute: false
|
||||
},
|
||||
main: {
|
||||
browsers: [ 'ChromeCustom' ]
|
||||
},
|
||||
firefox: {
|
||||
browsers: [ 'FirefoxHeadless' ]
|
||||
}
|
||||
},
|
||||
copy: {
|
||||
jsduck: {
|
||||
src: 'resources/**/*',
|
||||
dest: 'docs/js/modules',
|
||||
expand: true,
|
||||
rename: function ( dest, src ) {
|
||||
return require( 'path' ).join( dest, src.replace( 'resources/', '' ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'assert-mw-env', function () {
|
||||
var ok = true;
|
||||
if ( !process.env.MW_SERVER ) {
|
||||
grunt.log.error( 'Environment variable MW_SERVER must be set.\n' +
|
||||
'Set this like $wgServer, e.g. "http://localhost"'
|
||||
);
|
||||
ok = false;
|
||||
}
|
||||
if ( !process.env.MW_SCRIPT_PATH ) {
|
||||
grunt.log.error( 'Environment variable MW_SCRIPT_PATH must be set.\n' +
|
||||
'Set this like $wgScriptPath, e.g. "/w"' );
|
||||
ok = false;
|
||||
}
|
||||
return ok;
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'minify', 'svgmin' );
|
||||
grunt.registerTask( 'lint', [ 'eslint', 'banana', 'stylelint' ] );
|
||||
grunt.registerTask( 'qunit', [ 'assert-mw-env', 'karma:main' ] );
|
||||
};
|
|
@ -1,12 +1,5 @@
|
|||
= MediaWiki 1.35 =
|
||||
|
||||
== MediaWiki 1.35.1 ==
|
||||
|
||||
THIS IS NOT A RELEASE YET
|
||||
|
||||
=== Changes since MediaWiki 1.35.0 ===
|
||||
* Parser: Adjust typehint to show that getTitle can return null.
|
||||
|
||||
== MediaWiki 1.35.0 ==
|
||||
|
||||
=== Changes since MediaWiki 1.35.0-rc.3 ===
|
||||
|
@ -512,7 +505,6 @@ because of Phabricator reports.
|
|||
* (T248299) Added language support for Inari Sami (smn).
|
||||
* (T251369) Added language support for Ladin (lld).
|
||||
* (T251369) Added language support for Seediq (trv), also known as Taroko.
|
||||
* (T254854) Added language support for Southern Altay (alt).
|
||||
|
||||
=== Breaking changes in 1.35 ===
|
||||
* MediaWiki no longer supports PHP 7.2; use PHP 7.3.19+ (T228346, T257879).
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
# Please see DEVELOPERS.md for help
|
||||
#
|
||||
# Contributions to this file are welcome but please note that this file is
|
||||
# minimal by design, with the idea to make it easily extensible via
|
||||
# docker-compose.override.yml. For help with doing that, please see
|
||||
# DEVELOPERS.md
|
||||
version: '3.7'
|
||||
services:
|
||||
mediawiki:
|
||||
image: docker-registry.wikimedia.org/dev/stretch-php72-fpm-apache2-xdebug:0.4.0
|
||||
ports:
|
||||
- "${MW_DOCKER_PORT:-8080}:8080"
|
||||
volumes:
|
||||
- ./:/var/www/html:cached
|
||||
environment:
|
||||
COMPOSER_CACHE_DIR: '/var/www/html/cache/composer'
|
||||
MW_SERVER: 'http://localhost:${MW_DOCKER_PORT:-8080}'
|
||||
MW_SCRIPT_PATH: ''
|
||||
MW_DBPATH: '/var/www/html/cache/sqlite'
|
||||
MW_DBTYPE: 'sqlite'
|
||||
MW_LANG: 'en'
|
||||
MW_USER: 'admin'
|
||||
MW_PASS: 'dockerpass'
|
||||
MW_SITENAME: 'MediaWiki'
|
||||
MW_LOG_DIR: /var/www/html/cache
|
||||
XDEBUG_CONFIG: ${XDEBUG_CONFIG}
|
||||
mediawiki-jobrunner:
|
||||
image: docker-registry.wikimedia.org/dev/stretch-php72-jobrunner:0.0.1
|
||||
volumes:
|
||||
- ./:/var/www/html:cached
|
||||
environment:
|
||||
MW_LOG_DIR: /var/www/html/cache
|
||||
MW_INSTALL_PATH: /var/www/html
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": "wikimedia",
|
||||
"env": {
|
||||
"browser": true,
|
||||
"commonjs": true
|
||||
},
|
||||
"globals": {
|
||||
"mw": false,
|
||||
"$": false
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
[gerrit]
|
||||
host=gerrit.wikimedia.org
|
||||
port=29418
|
||||
project=mediawiki/extensions/CategoryTree.git
|
||||
track=1
|
|
@ -1,3 +0,0 @@
|
|||
<?php
|
||||
|
||||
return require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<ruleset>
|
||||
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki" />
|
||||
<file>.</file>
|
||||
<arg name="extensions" value="php,php5,inc" />
|
||||
<arg name="encoding" value="UTF-8" />
|
||||
</ruleset>
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"extends": "stylelint-config-wikimedia",
|
||||
"rules": {
|
||||
"selector-max-id": null,
|
||||
"no-descending-specificity": null
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
/*!
|
||||
* Grunt file
|
||||
*
|
||||
* @package CategoryTree
|
||||
*/
|
||||
|
||||
/* eslint-env node */
|
||||
module.exports = function ( grunt ) {
|
||||
var conf = grunt.file.readJSON( 'extension.json' );
|
||||
|
||||
grunt.loadNpmTasks( 'grunt-eslint' );
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-stylelint' );
|
||||
|
||||
grunt.initConfig( {
|
||||
banana: conf.MessagesDirs,
|
||||
eslint: {
|
||||
options: {
|
||||
extensions: [ '.js', '.json' ],
|
||||
cache: true
|
||||
},
|
||||
all: [
|
||||
'**/*.js{,on}',
|
||||
'!{vendor,node_modules}/**'
|
||||
]
|
||||
},
|
||||
stylelint: {
|
||||
all: [
|
||||
'**/*.css',
|
||||
'!node_modules/**',
|
||||
'!vendor/**'
|
||||
]
|
||||
}
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'test', [ 'eslint', 'stylelint', 'banana' ] );
|
||||
grunt.registerTask( 'default', 'test' );
|
||||
};
|
File diff suppressed because it is too large
Load Diff
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"test": "grunt test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint-config-wikimedia": "0.15.3",
|
||||
"grunt": "1.1.0",
|
||||
"grunt-banana-checker": "0.9.0",
|
||||
"grunt-eslint": "22.0.0",
|
||||
"grunt-stylelint": "0.15.0",
|
||||
"stylelint-config-wikimedia": "0.10.1"
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": [
|
||||
"wikimedia/client",
|
||||
"wikimedia/jquery",
|
||||
"wikimedia/mediawiki"
|
||||
],
|
||||
"rules": {
|
||||
"max-len": "off"
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
[gerrit]
|
||||
host=gerrit.wikimedia.org
|
||||
port=29418
|
||||
project=mediawiki/extensions/Cite.git
|
||||
track=1
|
|
@ -1,8 +0,0 @@
|
|||
<?php
|
||||
|
||||
$cfg = require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';
|
||||
|
||||
// Due to creation of Parser::$extCite property
|
||||
$cfg['suppress_issue_types'][] = 'PhanUndeclaredProperty';
|
||||
|
||||
return $cfg;
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<ruleset>
|
||||
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki" />
|
||||
<file>.</file>
|
||||
<arg name="extensions" value="php,php5,inc" />
|
||||
<arg name="encoding" value="UTF-8" />
|
||||
</ruleset>
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"extends": "stylelint-config-wikimedia"
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
/*!
|
||||
* Grunt file
|
||||
*
|
||||
* @package Cite
|
||||
*/
|
||||
|
||||
/* eslint-env node, es6 */
|
||||
|
||||
module.exports = function ( grunt ) {
|
||||
var conf = grunt.file.readJSON( 'extension.json' );
|
||||
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-eslint' );
|
||||
grunt.loadNpmTasks( 'grunt-stylelint' );
|
||||
grunt.loadNpmTasks( 'grunt-svgmin' );
|
||||
|
||||
grunt.initConfig( {
|
||||
eslint: {
|
||||
options: {
|
||||
cache: true,
|
||||
fix: grunt.option( 'fix' )
|
||||
},
|
||||
all: [
|
||||
'**/*.{js,json}',
|
||||
'!{vendor,node_modules}/**'
|
||||
]
|
||||
},
|
||||
banana: conf.MessagesDirs,
|
||||
stylelint: {
|
||||
all: [
|
||||
'**/*.css',
|
||||
'**/*.less',
|
||||
'!node_modules/**',
|
||||
'!vendor/**'
|
||||
]
|
||||
},
|
||||
// SVG Optimization
|
||||
svgmin: {
|
||||
options: {
|
||||
js2svg: {
|
||||
pretty: true,
|
||||
multipass: true
|
||||
},
|
||||
plugins: [ {
|
||||
cleanupIDs: false
|
||||
}, {
|
||||
removeDesc: false
|
||||
}, {
|
||||
removeRasterImages: true
|
||||
}, {
|
||||
removeTitle: false
|
||||
}, {
|
||||
removeViewBox: false
|
||||
}, {
|
||||
removeXMLProcInst: false
|
||||
}, {
|
||||
sortAttrs: true
|
||||
} ]
|
||||
},
|
||||
all: {
|
||||
files: [ {
|
||||
expand: true,
|
||||
cwd: 'modules/ve-cite/icons',
|
||||
src: [
|
||||
'**/*.svg'
|
||||
],
|
||||
dest: 'modules/ve-cite/icons/',
|
||||
ext: '.svg'
|
||||
} ]
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'test', [ 'eslint', 'stylelint', 'banana', 'svgmin' ] );
|
||||
grunt.registerTask( 'default', 'test' );
|
||||
};
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"globals": {
|
||||
"ve": "readonly"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"extends": [
|
||||
"wikimedia/qunit",
|
||||
"../.eslintrc.json"
|
||||
]
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"name": "cite",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"description": "Build tools for the Cite extension.",
|
||||
"scripts": {
|
||||
"selenium-daily": "npm run selenium-test",
|
||||
"selenium-test": "wdio tests/selenium/wdio.conf.js",
|
||||
"test": "grunt test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@wdio/cli": "6.1.16",
|
||||
"@wdio/local-runner": "6.1.16",
|
||||
"@wdio/mocha-framework": "6.1.14",
|
||||
"@wdio/spec-reporter": "6.1.14",
|
||||
"@wdio/sync": "6.1.14",
|
||||
"eslint-config-wikimedia": "0.16.1",
|
||||
"grunt": "1.1.0",
|
||||
"grunt-banana-checker": "0.9.0",
|
||||
"grunt-eslint": "23.0.0",
|
||||
"grunt-stylelint": "0.15.0",
|
||||
"grunt-svgmin": "5.0.0",
|
||||
"stylelint-config-wikimedia": "0.10.1",
|
||||
"wdio-mediawiki": "1.0.0",
|
||||
"webdriverio": "6.1.16"
|
||||
}
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": [
|
||||
"wikimedia/selenium"
|
||||
],
|
||||
"globals": {
|
||||
"mw": "readonly"
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": [
|
||||
"wikimedia/client",
|
||||
"wikimedia/jquery"
|
||||
],
|
||||
"globals": {
|
||||
"ve": true,
|
||||
"VisualEditorSupportCheck": false,
|
||||
"OO": false,
|
||||
"unicodeJS": false,
|
||||
"RangeFix": false,
|
||||
"Papa": false,
|
||||
"mw": false,
|
||||
"require": false
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
[gerrit]
|
||||
host=gerrit.wikimedia.org
|
||||
port=29418
|
||||
project=mediawiki/extensions/CiteThisPage.git
|
||||
track=1
|
|
@ -1,3 +0,0 @@
|
|||
<?php
|
||||
|
||||
return require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<ruleset>
|
||||
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
|
||||
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate" />
|
||||
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" />
|
||||
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
|
||||
<exclude name="MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName" />
|
||||
</rule>
|
||||
<file>.</file>
|
||||
<arg name="extensions" value="php,php5,inc" />
|
||||
<arg name="encoding" value="UTF-8" />
|
||||
</ruleset>
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"extends": "stylelint-config-wikimedia"
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
/*!
|
||||
* Grunt file
|
||||
*
|
||||
* @package CiteThisPage
|
||||
*/
|
||||
|
||||
/* eslint-env node, es6 */
|
||||
module.exports = function ( grunt ) {
|
||||
var conf = grunt.file.readJSON( 'extension.json' );
|
||||
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-eslint' );
|
||||
grunt.loadNpmTasks( 'grunt-stylelint' );
|
||||
|
||||
grunt.initConfig( {
|
||||
eslint: {
|
||||
options: {
|
||||
extensions: [ '.js', '.json' ],
|
||||
cache: true
|
||||
},
|
||||
all: [
|
||||
'**/*.js{,on}',
|
||||
'!{vendor,node_modules}/**'
|
||||
]
|
||||
},
|
||||
banana: conf.MessagesDirs,
|
||||
stylelint: {
|
||||
all: [
|
||||
'**/*.css',
|
||||
'!node_modules/**',
|
||||
'!vendor/**'
|
||||
]
|
||||
}
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'test', [ 'eslint', 'banana', 'stylelint' ] );
|
||||
grunt.registerTask( 'default', 'test' );
|
||||
};
|
File diff suppressed because it is too large
Load Diff
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
"name": "citethispage",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"description": "Build tools for the CiteThisPage extension.",
|
||||
"scripts": {
|
||||
"test": "grunt test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint-config-wikimedia": "0.15.3",
|
||||
"grunt": "1.1.0",
|
||||
"grunt-banana-checker": "0.9.0",
|
||||
"grunt-eslint": "22.0.0",
|
||||
"grunt-stylelint": "0.15.0",
|
||||
"stylelint-config-wikimedia": "0.10.1"
|
||||
},
|
||||
"dependencies": {}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": [
|
||||
"wikimedia/client",
|
||||
"wikimedia/jquery",
|
||||
"wikimedia/mediawiki"
|
||||
],
|
||||
"rules": {
|
||||
"max-len": "off"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
[gerrit]
|
||||
host=gerrit.wikimedia.org
|
||||
port=29418
|
||||
project=mediawiki/extensions/CodeEditor.git
|
||||
track=1
|
||||
defaultrebase=0
|
|
@ -1,3 +0,0 @@
|
|||
<?php
|
||||
|
||||
return require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<ruleset>
|
||||
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki" />
|
||||
<file>.</file>
|
||||
<arg name="extensions" value="php,php5,inc" />
|
||||
<arg name="encoding" value="UTF-8" />
|
||||
</ruleset>
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"extends": "stylelint-config-wikimedia"
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
/*!
|
||||
* Grunt file
|
||||
*
|
||||
* @package CodeEditor
|
||||
*/
|
||||
|
||||
/* eslint-env node, es6 */
|
||||
|
||||
module.exports = function ( grunt ) {
|
||||
var conf = grunt.file.readJSON( 'extension.json' );
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-contrib-clean' );
|
||||
grunt.loadNpmTasks( 'grunt-contrib-copy' );
|
||||
grunt.loadNpmTasks( 'grunt-eslint' );
|
||||
grunt.loadNpmTasks( 'grunt-exec' );
|
||||
grunt.loadNpmTasks( 'grunt-stylelint' );
|
||||
|
||||
grunt.initConfig( {
|
||||
eslint: {
|
||||
options: {
|
||||
cache: true,
|
||||
fix: grunt.option( 'fix' )
|
||||
},
|
||||
all: [
|
||||
'**/*.{js,json}',
|
||||
'!modules/ace/**',
|
||||
'!{vendor,node_modules}/**'
|
||||
]
|
||||
},
|
||||
stylelint: {
|
||||
all: [
|
||||
'**/*.css',
|
||||
'**/*.less',
|
||||
'!node_modules/**',
|
||||
'!modules/ace/**',
|
||||
'!vendor/**'
|
||||
]
|
||||
},
|
||||
banana: {
|
||||
options: {
|
||||
requireLowerCase: false
|
||||
},
|
||||
all: conf.MessagesDirs.CodeEditor
|
||||
},
|
||||
exec: {
|
||||
'npm-update-ace': {
|
||||
cmd: 'npm update ace-builds',
|
||||
callback: function ( error, stdout, stderr ) {
|
||||
grunt.log.write( stdout );
|
||||
if ( stderr ) {
|
||||
grunt.log.write( 'Error: ' + stderr );
|
||||
}
|
||||
|
||||
if ( error !== null ) {
|
||||
grunt.log.error( 'update error: ' + error );
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
clean: {
|
||||
ace: [ 'modules/ace/*' ]
|
||||
},
|
||||
copy: {
|
||||
ace: {
|
||||
expand: true,
|
||||
cwd: 'node_modules/ace-builds/src-noconflict/',
|
||||
src: [ '**' ],
|
||||
dest: 'modules/ace/'
|
||||
},
|
||||
'ace-license': {
|
||||
expand: true,
|
||||
cwd: 'node_modules/ace-builds/',
|
||||
src: [ 'LICENSE' ],
|
||||
dest: 'modules/ace/'
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'update-ace', [ 'exec:npm-update-ace', 'clean:ace', 'copy:ace', 'copy:ace-license' ] );
|
||||
grunt.registerTask( 'test', [ 'eslint', 'stylelint', 'banana' ] );
|
||||
grunt.registerTask( 'default', 'test' );
|
||||
};
|
File diff suppressed because it is too large
Load Diff
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"name": "codeeditor",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"description": "Build tools for the CodeEditor extension.",
|
||||
"scripts": {
|
||||
"test": "grunt test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"ace-builds": "1.4.9",
|
||||
"eslint-config-wikimedia": "0.16.1",
|
||||
"grunt": "1.1.0",
|
||||
"grunt-banana-checker": "0.9.0",
|
||||
"grunt-contrib-clean": "2.0.0",
|
||||
"grunt-contrib-copy": "1.0.0",
|
||||
"grunt-eslint": "23.0.0",
|
||||
"grunt-exec": "3.0.0",
|
||||
"grunt-stylelint": "0.15.0",
|
||||
"postcss-less": "1.1.3",
|
||||
"stylelint-config-wikimedia": "0.10.1"
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"extends": [
|
||||
"wikimedia/qunit"
|
||||
]
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": [
|
||||
"wikimedia/client",
|
||||
"wikimedia/jquery",
|
||||
"wikimedia/mediawiki"
|
||||
]
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
[gerrit]
|
||||
host=gerrit.wikimedia.org
|
||||
port=29418
|
||||
project=mediawiki/extensions/ConfirmEdit.git
|
||||
track=1
|
|
@ -1,54 +0,0 @@
|
|||
Aaron Schulz <aschulz@wikimedia.org>
|
||||
Aaron Schulz <aschulz@wikimedia.org> <aaron@users.mediawiki.org>
|
||||
Alex Monk <krenair@gmail.com> <krenair@wikimedia.org>
|
||||
Antoine Musso <hashar@free.fr>
|
||||
Antoine Musso <hashar@free.fr> <hashar@users.mediawiki.org>
|
||||
Brad Jorsch <anomie.wikipedia@gmail.com>
|
||||
Brad Jorsch <anomie.wikipedia@gmail.com> <bjorsch@wikimedia.org>
|
||||
Brion Vibber <brion@pobox.com>
|
||||
Brion Vibber <brion@pobox.com> <brion@users.mediawiki.org>
|
||||
Brion Vibber <brion@pobox.com> <brion@wikimedia.org>
|
||||
Chad Horohoe <chadh@wikimedia.org>
|
||||
Chad Horohoe <chadh@wikimedia.org> <demon@users.mediawiki.org>
|
||||
CSteipp <csteipp@wikimedia.org>
|
||||
EBernhardson <ebernhardson@wikimedia.org>
|
||||
Federico Leva <federicoleva@tiscali.it>
|
||||
Florian Schmidt <florian.schmidt.stargatewissen@gmail.com>
|
||||
Florian Schmidt <florian.schmidt.stargatewissen@gmail.com> <florian.schmidt.welzow@t-online.de>
|
||||
Gergő Tisza <gtisza@wikimedia.org>
|
||||
Gergő Tisza <gtisza@wikimedia.org> <tgr.huwiki@gmail.com>
|
||||
jdlrobson <jdlrobson@gmail.com>
|
||||
jdlrobson <jdlrobson@gmail.com> <jrobson@wikimedia.org>
|
||||
Kunal Mehta <legoktm@gmail.com>
|
||||
Kunal Mehta <legoktm@gmail.com> <legoktm@member.fsf.org>
|
||||
Kunal Mehta <legoktm@gmail.com> <legoktm.wikipedia@gmail.com>
|
||||
Mark A. Hershberger <mah@everybody.org>
|
||||
Mark A. Hershberger <mah@everybody.org> <mah@users.mediawiki.org>
|
||||
Matthew Flaschen <mflaschen@wikimedia.org>
|
||||
Max Semenik <maxsem.wiki@gmail.com>
|
||||
Max Semenik <maxsem.wiki@gmail.com> <maxsem@users.mediawiki.org>
|
||||
Mukunda Modell <mmodell@wikimedia.org>
|
||||
Mukunda Modell <mmodell@wikimedia.org> <twentyafterfour@mira.deployment-prep.eqiad.wmflabs>
|
||||
Niklas Laxström <niklas.laxstrom@gmail.com>
|
||||
Niklas Laxström <niklas.laxstrom@gmail.com> <nikerabbit@users.mediawiki.org>
|
||||
Ori Livneh <ori@wikimedia.org>
|
||||
Paladox <thomasmulhall410@yahoo.com>
|
||||
Platonides <platonides@gmail.com>
|
||||
Platonides <platonides@gmail.com> <platonides@users.mediawiki.org>
|
||||
Raimond Spekking <raimond.spekking@gmail.com>
|
||||
Raimond Spekking <raimond.spekking@gmail.com> <raymond@users.mediawiki.org>
|
||||
Roan Kattouw <roan.kattouw@gmail.com>
|
||||
Roan Kattouw <roan.kattouw@gmail.com> <catrope@users.mediawiki.org>
|
||||
Siebrand Mazeland <siebrand@kitano.nl>
|
||||
Siebrand Mazeland <siebrand@kitano.nl> <siebrand@users.mediawiki.org>
|
||||
Siebrand Mazeland <siebrand@kitano.nl> <s.mazeland@xs4all.nl>
|
||||
Sam Reed <reedy@wikimedia.org>
|
||||
Sam Reed <reedy@wikimedia.org> <reedy@users.mediawiki.org>
|
||||
Timo Tijhof <krinklemail@gmail.com>
|
||||
Timo Tijhof <krinklemail@gmail.com> <ttijhof@wikimedia.org>
|
||||
Tim Starling <tstarling@wikimedia.org>
|
||||
Tim Starling <tstarling@wikimedia.org> <tstarling@users.mediawiki.org>
|
||||
Tyler Cipriani <tcipriani@wikimedia.org>
|
||||
Umherirrender <umherirrender_de.wp@web.de>
|
||||
Yaron Koren <yaron57@gmail.com>
|
||||
Yaron Koren <yaron57@gmail.com> <yaron@users.mediawiki.org>
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
|
||||
$cfg = require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';
|
||||
|
||||
$cfg['directory_list'] = array_merge(
|
||||
$cfg['directory_list'],
|
||||
[
|
||||
'FancyCaptcha/',
|
||||
'MathCaptcha/',
|
||||
'QuestyCaptcha/',
|
||||
'ReCaptchaNoCaptcha/',
|
||||
'SimpleCaptcha/',
|
||||
'../../extensions/Math',
|
||||
]
|
||||
);
|
||||
|
||||
$cfg['exclude_analysis_directory_list'] = array_merge(
|
||||
$cfg['exclude_analysis_directory_list'],
|
||||
[
|
||||
'../../extensions/Math',
|
||||
]
|
||||
);
|
||||
|
||||
// WikiPage->ConfirmEdit_ActivateCaptcha
|
||||
$cfg['suppress_issue_types'][] = 'PhanUndeclaredProperty';
|
||||
|
||||
return $cfg;
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<ruleset>
|
||||
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki" />
|
||||
<file>.</file>
|
||||
<arg name="extensions" value="php,php5,inc"/>
|
||||
<arg name="encoding" value="UTF-8"/>
|
||||
</ruleset>
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"extends": "stylelint-config-wikimedia"
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
/* eslint-env node */
|
||||
module.exports = function ( grunt ) {
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-eslint' );
|
||||
grunt.loadNpmTasks( 'grunt-stylelint' );
|
||||
|
||||
grunt.initConfig( {
|
||||
eslint: {
|
||||
options: {
|
||||
cache: true,
|
||||
fix: grunt.option( 'fix' )
|
||||
},
|
||||
all: [
|
||||
'**/*.{js,json}',
|
||||
'!{vendor,node_modules}/**'
|
||||
]
|
||||
},
|
||||
stylelint: {
|
||||
all: [
|
||||
'**/*.{css,less}',
|
||||
'!node_modules/**',
|
||||
'!vendor/**'
|
||||
]
|
||||
},
|
||||
banana: {
|
||||
all: [
|
||||
'i18n/',
|
||||
'i18n/api/',
|
||||
'**/i18n/',
|
||||
'**/i18n/api/'
|
||||
]
|
||||
}
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'test', [ 'eslint', 'stylelint', 'banana' ] );
|
||||
grunt.registerTask( 'default', 'test' );
|
||||
};
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"globals": {
|
||||
"ve": false,
|
||||
"OO": false
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"test": "grunt test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint-config-wikimedia": "0.16.2",
|
||||
"grunt": "1.1.0",
|
||||
"grunt-banana-checker": "0.9.0",
|
||||
"grunt-eslint": "23.0.0",
|
||||
"grunt-stylelint": "0.15.0",
|
||||
"stylelint-config-wikimedia": "0.10.1"
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"globals": {
|
||||
"OO": false
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"globals": {
|
||||
"ve": false,
|
||||
"OO": false
|
||||
}
|
||||
}
|
|
@ -1,174 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace MediaWiki\Extensions\FluxBBAuth;
|
||||
|
||||
use MediaWiki\Auth\AbstractPasswordPrimaryAuthenticationProvider;
|
||||
use MediaWiki\Auth\AuthenticationRequest;
|
||||
use MediaWiki\Auth\AuthenticationResponse;
|
||||
use MediaWiki\Auth\PasswordAuthenticationRequest;
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use StatusValue;
|
||||
use User;
|
||||
|
||||
class FluxBBAuthenticationProvider extends AbstractPasswordPrimaryAuthenticationProvider
|
||||
{
|
||||
/**
|
||||
* @param string $password
|
||||
* @return bool
|
||||
*/
|
||||
public static function isValidPassword($password)
|
||||
{
|
||||
return strlen($password) >= 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param User $user
|
||||
*/
|
||||
public static function onUserLoggedIn($user)
|
||||
{
|
||||
$userData = wfGetDB(DB_REPLICA)->selectRow(
|
||||
static::getFluxBBUserTable(),
|
||||
['email', 'realname', 'registered'],
|
||||
['username' => $user->getName()]
|
||||
);
|
||||
|
||||
$userUpdated = false;
|
||||
|
||||
if ($user->getEmail() != $userData->email) {
|
||||
$userUpdated = true;
|
||||
$user->setEmail($userData->email);
|
||||
$user->setEmailAuthenticationTimestamp($userData->registered);
|
||||
}
|
||||
|
||||
if ($user->getRealName() != $userData->realname) {
|
||||
$userUpdated = true;
|
||||
$user->setRealName($userData->realname);
|
||||
}
|
||||
|
||||
if ($userUpdated) {
|
||||
$user->saveSettings();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
private static function getFluxBBUserTable()
|
||||
{
|
||||
return MediaWikiServices::getInstance()
|
||||
->getConfigFactory()
|
||||
->makeConfig('FluxBBAuth')
|
||||
->get("FluxBBDatabase") . '.users';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function beginPrimaryAuthentication(array $reqs)
|
||||
{
|
||||
/** @var PasswordAuthenticationRequest $req */
|
||||
$req = AuthenticationRequest::getRequestByClass($reqs, PasswordAuthenticationRequest::class);
|
||||
if (!$req) {
|
||||
return AuthenticationResponse::newAbstain();
|
||||
}
|
||||
|
||||
if ($req->username === null || $req->password === null) {
|
||||
return AuthenticationResponse::newAbstain();
|
||||
}
|
||||
|
||||
$username = $this->getCanonicalName($req->username);
|
||||
if (!$username) {
|
||||
return AuthenticationResponse::newAbstain();
|
||||
}
|
||||
|
||||
$row = wfGetDB(DB_REPLICA)->selectRow(
|
||||
static::getFluxBBUserTable(),
|
||||
'password',
|
||||
['username' => $username]
|
||||
);
|
||||
if (!$row || $row->password !== sha1($req->password)) {
|
||||
return $this->failResponse($req);
|
||||
}
|
||||
|
||||
return AuthenticationResponse::newPass($username);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $username
|
||||
* @return bool|string
|
||||
*/
|
||||
private function getCanonicalName($username)
|
||||
{
|
||||
$userData = wfGetDB(DB_REPLICA)->selectRow(
|
||||
static::getFluxBBUserTable(),
|
||||
'username',
|
||||
['username' => $username]
|
||||
);
|
||||
|
||||
if (!$userData) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return strtoupper(substr($userData->username, 0, 1)) . substr($userData->username, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function testUserExists($username, $flags = User::READ_NORMAL)
|
||||
{
|
||||
$username = User::getCanonicalName($username, 'usable');
|
||||
if ($username === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
list($db, $options) = \DBAccessObjectUtils::getDBOptions($flags);
|
||||
return (bool)wfGetDB($db)->selectField(
|
||||
static::getFluxBBUserTable(),
|
||||
'id',
|
||||
['username' => $username],
|
||||
__METHOD__,
|
||||
$options
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function providerAllowsAuthenticationDataChange(AuthenticationRequest $req, $checkData = true)
|
||||
{
|
||||
return StatusValue::newFatal('authentication data cannot be changed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function providerChangeAuthenticationData(AuthenticationRequest $req)
|
||||
{
|
||||
throw new \BadMethodCallException(__METHOD__ . ' is not implemented.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function accountCreationType()
|
||||
{
|
||||
return self::TYPE_CREATE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function beginPrimaryAccountCreation($user, $creator, array $reqs)
|
||||
{
|
||||
return AuthenticationResponse::newAbstain();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function providerAllowsPropertyChange($property)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
Enable this extension by adding this to LocalSettings.php:
|
||||
|
||||
wfLoadExtension('FluxBBAuth');
|
||||
$wgGroupPermissions['*']['createaccount'] = false;
|
||||
$wgGroupPermissions['sysop']['createaccount'] = false;
|
||||
$wgGroupPermissions['*']['autocreateaccount'] = true;
|
||||
|
||||
Optionally define the FluxBB database name:
|
||||
|
||||
$wgFluxBBDatabase = 'fluxbb';
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
"name": "FluxBBAuth",
|
||||
"author": [
|
||||
"Pierre Schmitz"
|
||||
],
|
||||
"url": "https://www.archlinux.de/",
|
||||
"description": "Use FluxBB accounts in MediaWiki",
|
||||
"license-name": "GPL-2.0+",
|
||||
"type": "other",
|
||||
"AutoloadClasses": {
|
||||
"MediaWiki\\Extensions\\FluxBBAuth\\FluxBBAuthenticationProvider": "FluxBBAuthenticationProvider.php"
|
||||
},
|
||||
"ConfigRegistry": {
|
||||
"FluxBBAuth": "GlobalVarConfig::newInstance"
|
||||
},
|
||||
"config": {
|
||||
"FluxBBDatabase": {
|
||||
"value": "fluxbb"
|
||||
}
|
||||
},
|
||||
"AuthManagerAutoConfig": {
|
||||
"primaryauth": {
|
||||
"FluxBBAuthenticationProvider": {
|
||||
"class": "MediaWiki\\Extensions\\FluxBBAuth\\FluxBBAuthenticationProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hooks": {
|
||||
"isValidPassword": [
|
||||
"MediaWiki\\Extensions\\FluxBBAuth\\FluxBBAuthenticationProvider::isValidPassword"
|
||||
],
|
||||
"UserLoggedIn": [
|
||||
"MediaWiki\\Extensions\\FluxBBAuth\\FluxBBAuthenticationProvider::onUserLoggedIn"
|
||||
]
|
||||
},
|
||||
"manifest_version": 2
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": "wikimedia"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
[gerrit]
|
||||
host=gerrit.wikimedia.org
|
||||
port=29418
|
||||
project=mediawiki/extensions/Gadgets.git
|
||||
track=1
|
|
@ -1,8 +0,0 @@
|
|||
<?php
|
||||
|
||||
$cfg = require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';
|
||||
|
||||
// Namespace constants
|
||||
$cfg['file_list'][] = 'Gadgets.namespaces.php';
|
||||
|
||||
return $cfg;
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<ruleset>
|
||||
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
|
||||
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate" />
|
||||
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" />
|
||||
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
|
||||
<exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
|
||||
</rule>
|
||||
<file>.</file>
|
||||
<arg name="extensions" value="php,php5,inc" />
|
||||
<arg name="encoding" value="UTF-8" />
|
||||
</ruleset>
|
|
@ -1,23 +0,0 @@
|
|||
/* eslint-env node, es6 */
|
||||
module.exports = function ( grunt ) {
|
||||
var conf = grunt.file.readJSON( 'extension.json' );
|
||||
grunt.loadNpmTasks( 'grunt-eslint' );
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
|
||||
grunt.initConfig( {
|
||||
eslint: {
|
||||
options: {
|
||||
extensions: [ '.js', '.json' ],
|
||||
cache: true
|
||||
},
|
||||
all: [
|
||||
'**/*.js{,on}',
|
||||
'!{vendor,node_modules}/**'
|
||||
]
|
||||
},
|
||||
banana: conf.MessagesDirs
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'test', [ 'eslint', 'banana' ] );
|
||||
grunt.registerTask( 'default', 'test' );
|
||||
};
|
File diff suppressed because it is too large
Load Diff
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"name": "gadgets",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"description": "Build tools for the Gadgets extension.",
|
||||
"scripts": {
|
||||
"test": "grunt test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint-config-wikimedia": "0.15.3",
|
||||
"grunt": "1.1.0",
|
||||
"grunt-banana-checker": "0.9.0",
|
||||
"grunt-eslint": "22.0.0"
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": [
|
||||
"wikimedia/client",
|
||||
"wikimedia/jquery"
|
||||
]
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
[gerrit]
|
||||
host=gerrit.wikimedia.org
|
||||
port=29418
|
||||
project=mediawiki/extensions/ImageMap.git
|
||||
track=1
|
|
@ -1,11 +0,0 @@
|
|||
<?php
|
||||
|
||||
$cfg = require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';
|
||||
|
||||
// Phan gets confused because DOMNode::setAttribute doesn't
|
||||
// exist, it's DOMElement::setAttribute, and some functions
|
||||
// are documented to return DOMNode but they actually return
|
||||
// DOMElement.
|
||||
$cfg['suppress_issue_types'][] = 'PhanUndeclaredMethod';
|
||||
|
||||
return $cfg;
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ruleset>
|
||||
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
|
||||
<exclude name="PSR12.Properties.ConstantVisibility.NotFound" />
|
||||
</rule>
|
||||
|
||||
<file>.</file>
|
||||
<arg name="extensions" value="php,php5,inc"/>
|
||||
<arg name="encoding" value="UTF-8"/>
|
||||
</ruleset>
|
|
@ -1,24 +0,0 @@
|
|||
/* eslint-env node, es6 */
|
||||
module.exports = function ( grunt ) {
|
||||
var conf = grunt.file.readJSON( 'extension.json' );
|
||||
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-eslint' );
|
||||
|
||||
grunt.initConfig( {
|
||||
banana: conf.MessagesDirs,
|
||||
eslint: {
|
||||
options: {
|
||||
extensions: [ '.js', '.json' ],
|
||||
cache: true
|
||||
},
|
||||
all: [
|
||||
'**/*.js{,on}',
|
||||
'!{vendor,node_modules}/**'
|
||||
]
|
||||
}
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'test', [ 'eslint', 'banana' ] );
|
||||
grunt.registerTask( 'default', 'test' );
|
||||
};
|
File diff suppressed because it is too large
Load Diff
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"test": "grunt test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint-config-wikimedia": "0.15.3",
|
||||
"grunt": "1.1.0",
|
||||
"grunt-banana-checker": "0.9.0",
|
||||
"grunt-eslint": "22.0.0"
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": "wikimedia",
|
||||
"env": {
|
||||
"browser": true,
|
||||
"jquery": true
|
||||
},
|
||||
"globals": {
|
||||
"mediaWiki": false
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
[gerrit]
|
||||
host=gerrit.wikimedia.org
|
||||
port=29418
|
||||
project=mediawiki/extensions/InputBox.git
|
||||
track=1
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue