PHP
42
Вклад в тег
interface FileSystemInterface {
public function write($file, $data);
public function read($file);
}
class OSFileSystem implements FileSystemInterface {
public function write($file, $data) {
// открываем файлик, пишем данные
}
public function read($file) {
// открываем файлик, возвращаем данные
}
}
class CloudFileSystem implements FileSystemInterface {
public function write($file, $data) {
// открываем соединение с облаком, пишем данные
}
public function read($file) {
// открываем соединение с облаком, возвращаем данные
}
}
class FileStorage {
protected $Fs;
public function __construct(FileSystemInterface $Fs) {
$this->Fs = $Fs;
}
public function saveFile() {
$this->Fs->write('file.txt', 'file data');
}
public function getFile() {
return $this->Fs->read('file.txt', 'file data');
}
}
// Хранилище файлов работает с файловой системой ОС:
$FS = new OSFileSystem();
$FileStorage = new FileStorage($Fs);
$FileStorage->getFile();
// Хранилище файлов работает с файловой системой в облаке:
$FS = new CloudFileSystem();
$FileStorage = new FileStorage($Fs);
$FileStorage->getFile();
make kphp
./kphp2cpp ../test-kphp/index.php