PHP - добавить метод в класс - PullRequest
3 голосов
/ 02 марта 2012

Я ищу способ расширить класс PHP, чтобы добавить пользовательский метод. В частности, я хочу добавить метод формата даты в MongoDate (из драйвера PHP MongoDB).

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

$d = new MongoDate();

some_date_format($d); // the way it works now

$d->format(); // the way it would be cleaner

Есть ли решение?

Ответы [ 3 ]

5 голосов
/ 02 марта 2012

Наследуй от него!

class myClass extends MongoDate{
    public function format(){
    }
}

Тогда просто реализуй это:

$d = new myClass ();

some_date_format($d); // the way it works now

$d->format(); // the way it would be cleaner
2 голосов
/ 02 марта 2012

Расширьте это. Это основной принцип ООП.

class NewClass extends MongoDate {
    public function newFunction(){
        //Stuff here.
    }
}

Это определит новый класс NewClass, который унаследует все открытые и защищенные свойства и методы от старого класса MongoDate, а также включит функцию newFunction().

0 голосов
/ 02 марта 2012

Вы не можете изменить тип драйвера PHP, возвращаемого для дат, поэтому ответ lznogood & Truth - лучшее, что вы можете сделать.

...