Page MenuHomePhabricator

Convert stdclass-cast objects to classes wherever possible and use associative arrays elswhere as far as possible
Open, MediumPublic

Description

There are a number of places in the Parsoid/PHP code base where we use standard class objects instead of associative arrays. data-parsoid and data-mw being the two prominent ones currently. There are probably a few others. We should probably create classes and use them everywhere which gives us better documentation and type safety benefits. @Tgr already has work in progress code for data-parsoid uses.

In some cases, for ease of porting, we probably have used stdclasses where associative arrays would make sense. These are usually temporary values as holder of information between functions / passes in the codebase and may not merit a separate class.

Event Timeline

ssastry triaged this task as Medium priority.Jun 24 2019, 4:27 PM
ssastry added a project: Technical-Debt.
ssastry moved this task from Backlog to Post-Port Work on the Parsoid-PHP board.

Change 730674 had a related patch set uploaded (by Tim Starling; author: Tim Starling):

[mediawiki/services/parsoid@master] Add a class for template ranges

https://gerrit.wikimedia.org/r/730674

Change 730674 merged by jenkins-bot:

[mediawiki/services/parsoid@master] Add a class for template ranges

https://gerrit.wikimedia.org/r/730674

Change 731308 had a related patch set uploaded (by Tim Starling; author: Tim Starling):

[mediawiki/services/parsoid@master] DOMRangeBuilder cleanup and data flow improvements

https://gerrit.wikimedia.org/r/731308

Change 731792 had a related patch set uploaded (by Subramanya Sastry; author: Subramanya Sastry):

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.15.0-a4

https://gerrit.wikimedia.org/r/731792

Change 731792 merged by jenkins-bot:

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.15.0-a4

https://gerrit.wikimedia.org/r/731792

Change 731308 merged by jenkins-bot:

[mediawiki/services/parsoid@master] DOMRangeBuilder cleanup and data flow improvements

https://gerrit.wikimedia.org/r/731308

Change 734972 had a related patch set uploaded (by Subramanya Sastry; author: Subramanya Sastry):

[mediawiki/vendor@master] Bump remex-html to 3.0.0 and parsoid to 0.15.0-a6

https://gerrit.wikimedia.org/r/734972

Change 734972 merged by jenkins-bot:

[mediawiki/vendor@master] Bump remex-html to 3.0.0 and parsoid to 0.15.0-a6

https://gerrit.wikimedia.org/r/734972

Change 940418 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/services/parsoid@master] Proper class type for DataMw and DataMwPart

https://gerrit.wikimedia.org/r/940418

Change 963099 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/services/parsoid@master] Proper class type for DataMwPart

https://gerrit.wikimedia.org/r/963099

Change 940418 merged by jenkins-bot:

[mediawiki/services/parsoid@master] Proper class type for DataMw

https://gerrit.wikimedia.org/r/940418

Change 964566 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):

[mediawiki/vendor@master] Bump wikimedia/parsoid to v0.18.0-a28

https://gerrit.wikimedia.org/r/964566

Change 964566 merged by jenkins-bot:

[mediawiki/vendor@master] Bump wikimedia/parsoid to v0.18.0-a28

https://gerrit.wikimedia.org/r/964566

Change #963099 merged by jenkins-bot:

[mediawiki/services/parsoid@master] Proper class type for DataMwPart

https://gerrit.wikimedia.org/r/963099

Change #1048480 had a related patch set uploaded (by Arlolra; author: Arlolra):

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.20.0-a9

https://gerrit.wikimedia.org/r/1048480

Change #1048480 merged by jenkins-bot:

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.20.0-a10

https://gerrit.wikimedia.org/r/1048480