ONK
Ну ка покажи мне как можно извне, не выдрачиваясь, переписать статическую переменную метода. Прежде чем умничать, вникнись в суть написанного.
> Как только ты меняешь массив на объект и используешь для получения данных методы, ты получаешь 15 кратное замедление выполнения этой операции.
Любимый аргумент тех, кому уже нечего сказать против подхода. Если я работаю с PHP, я выбираю удобство. И если вместо 1 наносекунды я получу 15 (откуда цифра 15? Тесты в студию), я этого даже не замечу. Зато я сделаю меньше ошибок и мне приятнее будет работать с кодом. Внимание, вопрос: не составляет ли у тебя 90% кода -- расширения на C? Нет? А почему? Оно ведь быстрее.
> Если кто-то хочет что-то интегрировать для работы в твой продукт, ему придётся прочитать соответствующую документацию по работе с API. А знать внутренние алгоритмы работы API с глобальными переменными для подобного пользователям совершенно ненужно.
Ну конечно. Про классы читать надо, а о существовании глобальных переменных разработчики сами догадаются. Телепатия-с? Да и сделать Foo::getInstance, разумеется, неимоверно труднее чем сделать global $foo. Это при том, что Foo::$Instance не перезапишется никак, хоть ты тресни, а $foo вполне можно переписать по ошибке (и дальше смотри аргументы Crazy). Больше того, Foo::getInstance полностью удовлетворяет идее инкапсуляции. Вообще, следуя твоей логике, можно сказать, что модификаторы доступа к элементам -- тоже лажа. Полюбому будут тормозить.
И вообще, что за однобокий взгляд на проблему? Одна система, одни пользователи, один API. Меня не покидает ощущение, что ты всё это говоришь в рамках одного, возможно крупного, проекта, разработкой которого ты занимаешься.