Должен ли PHP использовать объекты в качестве основных типов данных? - PullRequest
4 голосов
/ 09 июля 2009

Недавно у меня появилась идея создать свой собственный класс String, чтобы упростить использование функций PHP. Вместо strlen($str) я пишу $str->length(). Упрощает запоминание порядка параметров в определенных функциях, таких как substr.

Я запустил несколько сценариев синхронизации и обнаружил, что он примерно в 5 раз медленнее , чем при использовании обычных функций. Я еще не тестировал это в реальном приложении, поэтому не знаю, насколько незначительным это будет (1 мс против 5 мс или 100 мс против 500 мс?).

В любом случае меня поразило, что теперь PHP теперь больше внимания уделяет ООП, разве не имеет смысла для строк, массивов и других базовых типов быть объектно-ориентированными? Затем они могли бы называть функции лучше, и код просто «чувствовал бы себя лучше». И постепенно отказываться от старого способа ведения дел. Есть плюсы / минусы к этому?

Ответы [ 5 ]

4 голосов
/ 09 июля 2009

Вы всегда можете документировать свой код и просто использовать функции, которые предоставляет PHP. Трудно сказать, повлияет ли это на вас в долгосрочной перспективе. Есть много разных факторов, которые могут повлиять на это. Дайте ему шанс, может быть, и если это не сработает, вернитесь к исходному способу.

Лично я бы просто хорошо документировал свой документ, а не стал бы слишком навороченным. Если вы хотите сделать больше в ООП, лучше всего взглянуть на Framework.

Я бы хотел, чтобы PHP с самого начала сделал это так просто. Код выглядел бы так аккуратно.

1 голос
/ 09 июля 2009

Конечно, $somestring->length() это хорошо, но, с другой стороны, вы должны $somestring = new String('asdf...') всякий раз, когда вы делаете строку, а затем постоянно конвертировать строки в строки и наоборот. Вы, вероятно, в конечном итоге усложняете написание и сопровождение вещей в долгосрочной перспективе.

Я действительно не вижу, чтобы язык PHP когда-либо менялся таким образом - он изменил бы слишком много фундаментального языка. Если вам нужен такой язык, вам придется менять язык, а не надеяться на изменение языка.

1 голос
/ 09 июля 2009

Я думаю, это было бы неплохо, но это больше не был бы PHP ...

0 голосов
/ 19 декабря 2014

Взгляните на Stringy . Он дает вам массу полезных методов, которые упрощают работу с особенно UTF-кодированными строками в PHP:

$stringy = S::create('Fòô', 'UTF-8');
count($stringy);  // 3
0 голосов
/ 09 июля 2009

Я понимаю, почему вы это делаете, но библиотеки и абстракции, которые ничего не делают , кроме "облегчают работу программиста", по моему скромному мнению, являются пустой тратой времени. Они редко бывают эффективными, пухлыми и даже претенциозными.

В PHP много ошибок, это наверняка, но вы потратите много времени, которое лучше потратить в другом месте, если вы попытаетесь придумать обходные пути для них везде, куда бы вы ни пошли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...