jenkins-bot has submitted this change and it was merged.
Change subject: Introduce includes/utils directory
......................................................................
Introduce includes/utils directory
These are classes that provide facilities for use by any caller, are
independent of user interface, and have a limited set of dependencies on
the rest of MediaWiki. See the README file for a more precise
definition.
These classes cannot go in includes/libs because of a dependency on the
MediaWiki framework, such as wfDebug() or MWException, but they are
otherwise similar. I thought it would be useful to put them in their own
directory, to make them more discoverable, and as part of a general
program of reducing clutter in the base includes/ directory.
I've probably missed a few classes which could be included here, but the
following classes were considered and were rejected for now:
* Fallback: single caller only
* GitInfo: getViewers() has inappropriate dependencies
* HttpFunctions: depends on configuration, $wgTitle
* PoolCounter: depends on configuration
* CacheHelper: depends on IContextSource, wfMemc()
Also moved a couple of classes into libs/ instead, where that seemed to
be more appropriate.
Change-Id: I274cff805b7d694b728a89b764a049cd62d320fe
---
M includes/AutoLoader.php
R includes/libs/ScopedPHPTimeout.php
R includes/libs/XmlTypeCheck.php
R includes/utils/ArrayUtils.php
R includes/utils/Cdb.php
R includes/utils/Cdb_PHP.php
R includes/utils/ConfEditor.php
R includes/utils/HashRing.php
R includes/utils/IP.php
R includes/utils/MWCryptRand.php
R includes/utils/MWFunction.php
R includes/utils/MappedIterator.php
A includes/utils/README
R includes/utils/ScopedCallback.php
R includes/utils/StringUtils.php
R includes/utils/UIDGenerator.php
R includes/utils/ZipDirectoryReader.php
17 files changed, 40 insertions(+), 29 deletions(-)
Approvals:
Aaron Schulz: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php
index da85438..1417c77 100644
--- a/includes/AutoLoader.php
+++ b/includes/AutoLoader.php
@@ -33,7 +33,6 @@
'AjaxDispatcher' => 'includes/AjaxDispatcher.php',
'AjaxResponse' => 'includes/AjaxResponse.php',
'AlphabeticPager' => 'includes/Pager.php',
- 'ArrayUtils' => 'includes/ArrayUtils.php',
'Article' => 'includes/Article.php',
'AtomFeed' => 'includes/Feed.php',
'AuthPlugin' => 'includes/AuthPlugin.php',
@@ -47,28 +46,17 @@
'Categoryfinder' => 'includes/Categoryfinder.php',
'CategoryPage' => 'includes/CategoryPage.php',
'CategoryViewer' => 'includes/CategoryViewer.php',
- 'CdbFunctions' => 'includes/Cdb_PHP.php',
- 'CdbReader' => 'includes/Cdb.php',
- 'CdbReader_DBA' => 'includes/Cdb.php',
- 'CdbReader_PHP' => 'includes/Cdb_PHP.php',
- 'CdbWriter' => 'includes/Cdb.php',
- 'CdbWriter_DBA' => 'includes/Cdb.php',
- 'CdbWriter_PHP' => 'includes/Cdb_PHP.php',
'ChangesFeed' => 'includes/ChangesFeed.php',
'ChangeTags' => 'includes/ChangeTags.php',
'ChannelFeed' => 'includes/Feed.php',
'Collation' => 'includes/Collation.php',
'ConcatenatedGzipHistoryBlob' => 'includes/HistoryBlob.php',
- 'ConfEditor' => 'includes/ConfEditor.php',
- 'ConfEditorParseError' => 'includes/ConfEditor.php',
- 'ConfEditorToken' => 'includes/ConfEditor.php',
'Cookie' => 'includes/Cookie.php',
'CookieJar' => 'includes/Cookie.php',
'CurlHttpRequest' => 'includes/HttpFunctions.php',
'DeprecatedGlobal' => 'includes/DeprecatedGlobal.php',
'DerivativeRequest' => 'includes/WebRequest.php',
'DiffHistoryBlob' => 'includes/HistoryBlob.php',
- 'DoubleReplacer' => 'includes/StringUtils.php',
'DummyLinker' => 'includes/Linker.php',
'Dump7ZipOutput' => 'includes/Export.php',
'DumpBZip2Output' => 'includes/Export.php',
@@ -84,7 +72,6 @@
'EditPage' => 'includes/EditPage.php',
'EmailNotification' => 'includes/UserMailer.php',
'ErrorPageError' => 'includes/Exception.php',
- 'ExplodeIterator' => 'includes/StringUtils.php',
'FakeTitle' => 'includes/FakeTitle.php',
'Fallback' => 'includes/Fallback.php',
'FatalError' => 'includes/Exception.php',
@@ -99,8 +86,6 @@
'FormOptions' => 'includes/FormOptions.php',
'FormSpecialPage' => 'includes/SpecialPage.php',
'GitInfo' => 'includes/GitInfo.php',
- 'HashRing' => 'includes/HashRing.php',
- 'HashtableReplacer' => 'includes/StringUtils.php',
'HistoryBlob' => 'includes/HistoryBlob.php',
'HistoryBlobCurStub' => 'includes/HistoryBlob.php',
'HistoryBlobStub' => 'includes/HistoryBlob.php',
@@ -142,7 +127,6 @@
'IncludableSpecialPage' => 'includes/SpecialPage.php',
'IndexPager' => 'includes/Pager.php',
'Interwiki' => 'includes/interwiki/Interwiki.php',
- 'IP' => 'includes/IP.php',
'LCStore' => 'includes/cache/LocalisationCache.php',
'LCStore_Accel' => 'includes/cache/LocalisationCache.php',
'LCStore_CDB' => 'includes/cache/LocalisationCache.php',
@@ -157,16 +141,13 @@
'MagicWord' => 'includes/MagicWord.php',
'MagicWordArray' => 'includes/MagicWord.php',
'MailAddress' => 'includes/UserMailer.php',
- 'MappedIterator' => 'includes/MappedIterator.php',
'MediaWiki' => 'includes/Wiki.php',
'MediaWiki_I18N' => 'includes/SkinTemplate.php',
'Message' => 'includes/Message.php',
'MessageBlobStore' => 'includes/MessageBlobStore.php',
'MimeMagic' => 'includes/MimeMagic.php',
- 'MWCryptRand' => 'includes/MWCryptRand.php',
'MWException' => 'includes/Exception.php',
'MWExceptionHandler' => 'includes/Exception.php',
- 'MWFunction' => 'includes/MWFunction.php',
'MWHookException' => 'includes/Hooks.php',
'MWHttpRequest' => 'includes/HttpFunctions.php',
'MWInit' => 'includes/Init.php',
@@ -196,9 +177,6 @@
'ReadOnlyError' => 'includes/Exception.php',
'RedirectSpecialArticle' => 'includes/SpecialPage.php',
'RedirectSpecialPage' => 'includes/SpecialPage.php',
- 'RegexlikeReplacer' => 'includes/StringUtils.php',
- 'ReplacementArray' => 'includes/StringUtils.php',
- 'Replacer' => 'includes/StringUtils.php',
'ReverseChronologicalPager' => 'includes/Pager.php',
'RevisionItem' => 'includes/RevisionList.php',
'RevisionItemBase' => 'includes/RevisionList.php',
@@ -207,8 +185,6 @@
'RevisionList' => 'includes/RevisionList.php',
'RSSFeed' => 'includes/Feed.php',
'Sanitizer' => 'includes/Sanitizer.php',
- 'ScopedCallback' => 'includes/ScopedCallback.php',
- 'ScopedPHPTimeout' => 'includes/ScopedPHPTimeout.php',
'SiteConfiguration' => 'includes/SiteConfiguration.php',
'SiteStats' => 'includes/SiteStats.php',
'SiteStatsInit' => 'includes/SiteStats.php',
@@ -230,7 +206,6 @@
'StatCounter' => 'includes/StatCounter.php',
'Status' => 'includes/Status.php',
'StreamFile' => 'includes/StreamFile.php',
- 'StringUtils' => 'includes/StringUtils.php',
'StubContLang' => 'includes/StubObject.php',
'StubObject' => 'includes/StubObject.php',
'StubUserLang' => 'includes/StubObject.php',
@@ -241,7 +216,6 @@
'TitleArray' => 'includes/TitleArray.php',
'TitleArrayFromResult' => 'includes/TitleArray.php',
'ThrottledError' => 'includes/Exception.php',
- 'UIDGenerator' => 'includes/UIDGenerator.php',
'UnlistedSpecialPage' => 'includes/SpecialPage.php',
'UploadSourceAdapter' => 'includes/Import.php',
'UppercaseCollation' => 'includes/Collation.php',
@@ -274,10 +248,7 @@
'XmlJsCode' => 'includes/Xml.php',
'XMLReader2' => 'includes/Import.php',
'XmlSelect' => 'includes/Xml.php',
- 'XmlTypeCheck' => 'includes/XmlTypeCheck.php',
'ZhClient' => 'includes/ZhClient.php',
- 'ZipDirectoryReader' => 'includes/ZipDirectoryReader.php',
- 'ZipDirectoryReaderError' => 'includes/ZipDirectoryReader.php',
# includes/actions
'CachedAction' => 'includes/actions/CachedAction.php',
@@ -711,6 +682,8 @@
'JSParser' => 'includes/libs/jsminplus.php',
'JSToken' => 'includes/libs/jsminplus.php',
'JSTokenizer' => 'includes/libs/jsminplus.php',
+ 'ScopedPHPTimeout' => 'includes/libs/ScopedPHPTimeout.php',
+ 'XmlTypeCheck' => 'includes/libs/XmlTypeCheck.php',
# includes/libs/lessphp
'lessc' => 'includes/libs/lessc.inc.php',
@@ -1069,6 +1042,35 @@
'UploadStashWrongOwnerException' => 'includes/upload/UploadStash.php',
'UploadStashNoSuchKeyException' => 'includes/upload/UploadStash.php',
+ # includes/utils
+ 'ArrayUtils' => 'includes/utils/ArrayUtils.php',
+ 'CdbFunctions' => 'includes/utils/Cdb_PHP.php',
+ 'CdbReader' => 'includes/utils/Cdb.php',
+ 'CdbReader_DBA' => 'includes/utils/Cdb.php',
+ 'CdbReader_PHP' => 'includes/utils/Cdb_PHP.php',
+ 'CdbWriter' => 'includes/utils/Cdb.php',
+ 'CdbWriter_DBA' => 'includes/utils/Cdb.php',
+ 'CdbWriter_PHP' => 'includes/utils/Cdb_PHP.php',
+ 'ConfEditor' => 'includes/utils/ConfEditor.php',
+ 'ConfEditorParseError' => 'includes/utils/ConfEditor.php',
+ 'ConfEditorToken' => 'includes/utils/ConfEditor.php',
+ 'DoubleReplacer' => 'includes/utils/StringUtils.php',
+ 'ExplodeIterator' => 'includes/utils/StringUtils.php',
+ 'HashRing' => 'includes/utils/HashRing.php',
+ 'HashtableReplacer' => 'includes/utils/StringUtils.php',
+ 'IP' => 'includes/utils/IP.php',
+ 'MWCryptRand' => 'includes/utils/MWCryptRand.php',
+ 'MWFunction' => 'includes/utils/MWFunction.php',
+ 'MappedIterator' => 'includes/utils/MappedIterator.php',
+ 'RegexlikeReplacer' => 'includes/utils/StringUtils.php',
+ 'ReplacementArray' => 'includes/utils/StringUtils.php',
+ 'Replacer' => 'includes/utils/StringUtils.php',
+ 'ScopedCallback' => 'includes/utils/ScopedCallback.php',
+ 'StringUtils' => 'includes/utils/StringUtils.php',
+ 'UIDGenerator' => 'includes/utils/UIDGenerator.php',
+ 'ZipDirectoryReader' => 'includes/utils/ZipDirectoryReader.php',
+ 'ZipDirectoryReaderError' => 'includes/utils/ZipDirectoryReader.php',
+
# languages
'ConverterRule' => 'languages/LanguageConverter.php',
'FakeConverter' => 'languages/Language.php',
diff --git a/includes/ScopedPHPTimeout.php b/includes/libs/ScopedPHPTimeout.php
similarity index 100%
rename from includes/ScopedPHPTimeout.php
rename to includes/libs/ScopedPHPTimeout.php
diff --git a/includes/XmlTypeCheck.php b/includes/libs/XmlTypeCheck.php
similarity index 100%
rename from includes/XmlTypeCheck.php
rename to includes/libs/XmlTypeCheck.php
diff --git a/includes/ArrayUtils.php b/includes/utils/ArrayUtils.php
similarity index 100%
rename from includes/ArrayUtils.php
rename to includes/utils/ArrayUtils.php
diff --git a/includes/Cdb.php b/includes/utils/Cdb.php
similarity index 100%
rename from includes/Cdb.php
rename to includes/utils/Cdb.php
diff --git a/includes/Cdb_PHP.php b/includes/utils/Cdb_PHP.php
similarity index 100%
rename from includes/Cdb_PHP.php
rename to includes/utils/Cdb_PHP.php
diff --git a/includes/ConfEditor.php b/includes/utils/ConfEditor.php
similarity index 100%
rename from includes/ConfEditor.php
rename to includes/utils/ConfEditor.php
diff --git a/includes/HashRing.php b/includes/utils/HashRing.php
similarity index 100%
rename from includes/HashRing.php
rename to includes/utils/HashRing.php
diff --git a/includes/IP.php b/includes/utils/IP.php
similarity index 100%
rename from includes/IP.php
rename to includes/utils/IP.php
diff --git a/includes/MWCryptRand.php b/includes/utils/MWCryptRand.php
similarity index 100%
rename from includes/MWCryptRand.php
rename to includes/utils/MWCryptRand.php
diff --git a/includes/MWFunction.php b/includes/utils/MWFunction.php
similarity index 100%
rename from includes/MWFunction.php
rename to includes/utils/MWFunction.php
diff --git a/includes/MappedIterator.php b/includes/utils/MappedIterator.php
similarity index 100%
rename from includes/MappedIterator.php
rename to includes/utils/MappedIterator.php
diff --git a/includes/utils/README b/includes/utils/README
new file mode 100644
index 0000000..b5b8ec8
--- /dev/null
+++ b/includes/utils/README
@@ -0,0 +1,9 @@
+The classes in this directory are general utilities for use by any part of
+MediaWiki. They do not favour any particular user interface and are not
+constrained to serve any particular feature. This is similar to includes/libs,
+except that some dependency on the MediaWiki framework (such as the use of
+MWException, Status or wfDebug()) disqualifies them from use outside of
+MediaWiki without modification.
+
+Utilities should not use global configuration variables, rather they should
rely
+on the caller to configure their behaviour.
diff --git a/includes/ScopedCallback.php b/includes/utils/ScopedCallback.php
similarity index 100%
rename from includes/ScopedCallback.php
rename to includes/utils/ScopedCallback.php
diff --git a/includes/StringUtils.php b/includes/utils/StringUtils.php
similarity index 100%
rename from includes/StringUtils.php
rename to includes/utils/StringUtils.php
diff --git a/includes/UIDGenerator.php b/includes/utils/UIDGenerator.php
similarity index 100%
rename from includes/UIDGenerator.php
rename to includes/utils/UIDGenerator.php
diff --git a/includes/ZipDirectoryReader.php
b/includes/utils/ZipDirectoryReader.php
similarity index 100%
rename from includes/ZipDirectoryReader.php
rename to includes/utils/ZipDirectoryReader.php
--
To view, visit https://gerrit.wikimedia.org/r/93022
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I274cff805b7d694b728a89b764a049cd62d320fe
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Tim Starling <[email protected]>
Gerrit-Reviewer: Aaron Schulz <[email protected]>
Gerrit-Reviewer: Anomie <[email protected]>
Gerrit-Reviewer: Chad <[email protected]>
Gerrit-Reviewer: Tim Starling <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits