Возможный дубликат:
цепочка методов PHP?
Иногда я вижу, что некоторые php-приложения используют такие классы:
$Obj = new Obj();
$Obj->selectFile('datafile.ext')->getDATA();
Пример выше получает содержимое выбранного файла, а затем возвращает его (просто пример);
Ну, прежде чем я решил спросить вас, как я могу это сделать, я попробовал это:
class Someclass {
public function selectFile( $filename ) {
$callAclass = new AnotherClass( $filename );
return $callAclass;
}
// Other functions ...
}
class AnotherClass {
protected $file_name;
public function __construct ( $filename ) { $this->file_name = $filename; }
public function getDATA ( ) {
$data = file_get_contents( $this->file_name );
return $data;
}
// funcs , funcs, funcs ....
}
Это правильный способ выполнить эту задачу? И, пожалуйста, скажите мне, как называются эти классы.
method chaining in php
. По сути, вы просто возвращаете$this
в цепочном методе :) Хотя пример просто вводит в заблуждение, выбор файла, вероятно, является простоfactory
для создания другого объекта на основе контекста (в этом имени имя файла). Итак, если метод возвращает объект любого типа, вы можете связать его. - person Bartosz Grzybowski   schedule 21.02.2012