Перегрузка свойств и методов в PHP - в чем причина?

Является ли хорошей идеей использовать перегрузку исключительно из соображений симпатичного именования функций? :)

Например:

echo $ store-> product-> getPrice ($ currency);

  • product вызовет __get, затем __getObject ('product'), который выполняет магические действия и возвращает текущий продукт, который рассматривается как объект (экземпляр создается, если это первый вызов)

echo $ store-> product ('dog') -> getPrice ($ currency);

  • здесь product вызовет __call, затем __callObject ('product', ...) ...


Альтернативой без перегрузки будет:
if(!$store->product)
  $store->product = new Product();

 echo $store->product->getPrice($currency);

и

$product = new Product('dog');
echo $product->getPrice($currency);

Мне очень нравится перегрузка, потому что я могу получить хороший API для своих классов. Но недостатком является то, что перегруженный материал в 15 раз медленнее, чем прямой вызов свойств / методов.

Можно ли использовать такую ​​перегрузку?

В моем текущем приложении я не вызываю перегруженные элементы более 1000 раз. И это не должно сильно влиять на производительность. Может быть, дополнительные 0,1 с, что, учитывая, что сайт обычно создается за 0,5 - 1 с, не так уж и много

5
задан Alex 3 January 2012 в 12:15
поделиться