Могу ли я требовать функции класса, только если экземпляр класса создан в php? - PullRequest
0 голосов
/ 26 января 2010

Пытаясь улучшить гибкость и время загрузки моего кода, я подумал сделать это, так что функции потребуются только в том случае, если будет создан экземпляр класса.

class User
{
    public function __construct()
    {
       require('all_user_fns.php');
    }
}

Внутри all_user_fns.php будут находиться все функции класса пользователя.

Это возможно (возможно, по-другому)? Есть ли у нее какие-либо преимущества в скорости?

Ответы [ 4 ]

3 голосов
/ 26 января 2010

Честно говоря, это будет медленнее (в конце концов, вам придется сделать дополнительное включение), хотя это бессмысленно.Таким образом, если скорость действительно является проблемой, посмотрите на один из кэшей кода операции, таких как Альтернативный кэш PHP (APC)

Несколько больше о том, что поддержание кода будет болезненным ивполне может вызвать проблемы при попытке использования ключевых слов видимости, таких как private / protected / public, в зависимости от того, какую IDE вы используете.

1 голос
/ 26 января 2010

Если эти функции существуют только для изменения и взаимодействия с объектами пользователя, они должны быть функциями-членами этого класса.В этом смысл объектов, заключать в капсулу и организовывать связанные функции.

0 голосов
/ 26 января 2010

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

0 голосов
/ 26 января 2010

Мое предположение: не окажет заметного влияния на скорость. Кроме того, это усложняет понимание и поддержку вашего кода. Я бы держался подальше и искал другие способы ускорить процесс.

...