| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
In change I625a48a6ecd3fad5c2ed76b23343a0fef91e1b83 I am planning to
make Wikimedia\Message\MessageValue use it, and we try to pretend that
it is a library separate from MediaWiki, so it makes sense to move
MessageSpecifier to the same namespace under Wikimedia\.
Bug: T353458
Change-Id: I9ff4ff7beb098b60c92f564591937c7d789c6684
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We have some code that expects that if you disassemble a
MessageSpecifier using its getKey() and getParams() methods,
then assemble a new MessageSpecifier using the return values,
you will get (at least approximately) the same message.
This was not the case with RawMessage, even though it implements
the MessageSpecifier interface, because its "keys" are not real
message keys, and this operation would mess it up.
Override the MessageSpecifier methods on RawMessage so that they're
compatible with how everyone expects a MessageSpecifier to work.
Add some tests for OutputPage, Message\Converter and Status
to verify some scenarios that would previously have failed.
Depends-On: I41991989515b4791bc1746f26bd404bf4f17dbdb
Depends-On: I612361dd20ff8aad4c0069f1c5af78e3e13b9692
Change-Id: Iddd14efa8b9536277c372257d5a7be135f26a540
|
|
|
|
|
|
| |
Weird. https://phabricator.wikimedia.org/F55883982
Change-Id: I16a60c2240f6cfeb8419d42e7f512d84803036ca
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some syntax highlighters, in particular Gerrit's, incorrectly handle
code that uses a property named 'interface' (which is a PHP keyword).
https://phabricator.wikimedia.org/F55884039
Rename it to avoid problems.
Message isn't '@stable to extend', so this is not a breaking change.
I couldn't find any extensions that refer to it anyway.
Change-Id: I6676421222921b7bb1aeeefef79dd06072c1c2ac
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When using MediaWikiTestCaseTrait::getMockMessage(), if the mock
message was passed as a parameter to another non-mock message, its
format() method was called, which is private and can't be mocked,
and causes "LogicException: Premature access to service container"
in unit tests. Call the public toString() instead.
Change-Id: I8718cf7890f05c09a6e5712ee3dc4d171a6637cf
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
In PHP 8, but not in PHP 7.4, every class with a __toString() function
implicitly implements the Stringable interface. Therefore, the
behavior of checks like "instanceof Stringable" differs between these
PHP versions when such classes are involved. Make every such class
implement the interface so that the behavior will be consistent.
The PHP 7.4 fallback for the Stringable interface is provided by
symfony/polyfill-php80.
Change-Id: I3f0330c2555c7d3bf99b654ed3c0b0303e257ea1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This functionality was introduced in 2021 (commit 349819dc5a)
to support the addition of UserGroupMembershipParam, which was
never used, and no other use case appeared.
Its existence is now preventing us from allowing serializing
of MessageValue objects as JSON (since the parameters can't be
guaranteed to be serializable).
Deprecate:
* method: MessageValue::objectParams()
* method: Message::objectParams()
* method: Message::objectParam()
* class: UserGroupMembershipParam
* constant: ParamType::OBJECT
* Passing Stringable objects to ScalarParam
Change-Id: I492edabb7ea1d75774b45eb9fd18261b39963f9f
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When displaying messages, the requested message key can be overridden
by hooks such as 'MessageCacheFetchOverrides'. If this happened,
display the overridden key when using &uselang=qqx, to help users and
developers track down where a message is coming from.
Bug: T363729
Change-Id: I81d814278ca810035066ce4632f617f30536f1ab
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the Message::getTitle() function to not use the
wiki's content language when generating links to pages in the
MediaWiki namespace.
Message::getTitle() returns the uppercased version of the message
name as a title object. For some languages, such as Azeri and Turkish,
this can lead to some transformations we don't want. For instance,
when you uppercase "i" in Azerbaijani, it becomes "İ" (dotted I),
leading to links to "MediaWiki:İpbreason-dropdown" on Special:Block.
Bug: T362654
Change-Id: Id37c226270c53352760790ddd461ca98920b5910
|
|
|
|
| |
Change-Id: Idbb28719cc6561b236d47ca99ea2d217021981a8
|
|
|
|
|
|
|
| |
Bug: T327379
Followup-To: I982e0df706a633b05dcc02b5220b737c19adc401
Followup-To: I24932449b8c40e3a5072748d87667184f4befa67
Change-Id: Id99e5695bcfd347170cb4f2f80a557d189df6d44
|
|
|
|
| |
Change-Id: I7f85d931d3b79da23e87b4e5692b2e14be8fcaa0
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
The new trait provides conveniance methods for logging and throwing
errors based on StatusValue instances.
Change-Id: Id7cbacb744bee79cd8a6f61291a26b36e6243053
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Message::setContext() called $context->getLanguage(), loading the user
options from the database, which is unnecessary if
Message::inLanguage() is called immediately afterwards.
In a ResourceLoader module, RequestContext::getLanguage() throws an
exception due to MW_NO_SESSION being defined. For example, an exception
was thrown if any HTTP client error was encountered, since log message
formatting includes a call to Message::setContext().
So defer the call to RequestContext::getLanguage() by having
Message::setContext() make a closure which later fetches the language if
necessary.
Add an integration test which previously failed.
Change-Id: I326c7e3a9492952d721fb52f1868ab9c1033e683
|
|
|
|
|
|
|
|
| |
Bug: T166010
Co-Authored-By: Daimona Eaytoy <daimona.wiki@gmail.com>
Co-Authored-By: James Forrester <jforrester@wikimedia.org>
Co-Authored-By: Subramanya Sastry <ssastry@wikimedia.org>
Change-Id: I79b4e732c45095eedbaa80afa5eb7479b387ed8a
|
|
|
|
|
| |
Bug: T353458
Change-Id: I088cbc53fbcdb974e5b05b45a62e91709dacc024
|
|
|
|
|
|
|
|
|
|
| |
Add @since to the replacement code (349819d)
Also notice UserGroupMembership::getGroupName in release notes, there
was no entry in the deprecation commit fb4e7a8
Bug: T325673
Follow-Up: Ib4990f87d4ad70b7525d7aa05c8b97e90c121674
Change-Id: Iae3a26dbc0b95b0d4edb59f03126295fc67c856e
|
|
|
|
|
|
|
| |
* Added ParamType::OBJECT, which allows Stringable objects to be passed into MessageValue
Bug: T278482
Change-Id: Ib4990f87d4ad70b7525d7aa05c8b97e90c121674
|
|
|
|
|
| |
Bug: T249045
Change-Id: Ica1e1e4788d4b9f9dfcf9f8c8b4136147d92b32e
|
|
|
|
| |
Change-Id: I94a0ae83c65e8ee419bbd1ae1e86ab21ed4d8210
|
|
|
|
| |
Change-Id: Ia1b9b527f177d96c8b4a2dd658921b8557076f4a
|
|
|
|
|
|
|
|
|
|
| |
The Action API is going to need to convert between the two at various
boundaries where it receives a Status from business logic.
Also when we make HtmlFormatter and the like, that'll initially need the
same conversion logic too.
Change-Id: Id5b216b033718f3ef38bfd4be1715218ee07bb93
|
|
|
|
| |
Change-Id: Ibc5849cc8ea7e7c4eb30ded9c1cfa5f52187c377
|
|
|
|
|
|
|
| |
The function signature guarantees that this parameter can't be
of any other type.
Change-Id: I08f80e3ae7515f21f88b7f1f4f395ddbbb7b70ab
|
|
|
|
|
|
|
| |
Fixes an overstrict test in ListParam, and has TextFormatter convert
to Message recursively where necessary.
Change-Id: I387754b6857fbdeedea6afd222a2fdba1ebe1a9c
|
|
An injectable service interface for message formatting, somewhat
narrowed compared to Message.
Only the text format is implemented in this framework so far, with
getTextFormatter() returning a formatter that converts to the text
format. Other formatters could be added to MessageFormatterFactory.
Bug: T226598
Change-Id: Id053074c1dbcb692e8309fdca602f94a385bca0c
|