I see that in some classes, like WANObjectCache, most methods are declared
final. Why is this? Is it an attempt to optimize?
The problem is that PHPUnit mocks can't touch final methods. Any ->method()
calls that try to do anything to them silently do nothing. This makes
writing tests harder.
If we really want these methods to be marked final for some reason, the
workaround for PHP is to make an interface that has all the desired
methods, have the class implement the interface, and make type hints all
refer to the interface instead of the class. But if there's no good reason
to declare the methods final to begin with, it's simplest to just drop it.
Hi Community Metrics team,
This is your automatic monthly Phabricator statistics mail.
Accounts created in (2019-08): 325
Active Maniphest users (any activity) in (2019-08): 960
Task authors in (2019-08): 514
Users who have closed tasks in (2019-08): 285
Projects which had at least one task moved from one column to another on
their workboard in (2019-08): 285
Tasks created in (2019-08): 2215
Tasks closed in (2019-08): 1866
Open and stalled tasks in total: 42538
Median age in days of open tasks by priority:
Unbreak now: 0
Needs Triage: 520
(How long tasks have been open, not how long they have had that priority)
Active Differential users (any activity) in (2019-08): 8
To see the names of the most active task authors:
* Go to https://wikimedia.biterg.io/
* Choose "Phabricator > Overview" from the top bar
* Adjust the time frame in the upper right corner to your needs
* See the author names in the "Submitters" panel
TODO: Numbers which refer to closed tasks might not be correct, as
described in https://phabricator.wikimedia.org/T1003 .
Fab Rick Aytor
(via community_metrics.sh on phab1003 at Sun Sep 1 00:00:22 UTC 2019)