Because Wordpress is also hosting 1000s of plugins that WP engine users can install.
I’m not sure what the license regarding those things is, WP engine could probably just mirror it -
But they basically got locked out of the default ecosystem infrastructure.
Having to pass in null values seems a bit weird. You can define functions and optional parameters like this:
function myFunction(a = 1, b = 1, c = null, d = null, e = true) { return a * b; }
Then people don’t have to call your function with
myLibrary.myFunction(1, 7, null, null, true);
they just call your library with
myLibrary.myFunction(1, 7);
You could add a default inside the method signature, like:
function myFunction(a = 1, b = 1, c = null, d = null, e = true) { if (c === null) { c = 5; } return a * b * c; }
because if you define it in the method:
function myFunction(a = 1, b = 1, c = 5, d = null, e = true) { return a * b * c; }
then if people still call it with
console.log(myFunction(5, 2, null));
Then the default
c = 5
is overwritten by null, and results in 0.I don’t know if you really need to handle all that though, instead of just doing
c = 5
- if people intentionally call your library with null, and things go wrong…? well yea ok, don’t do that then.But it depends on the use-case. If this is some method deep within a library, and some other calling method might be unintentionally dumping null into it, you could default it inside the method, and handle it