* @package php-vfs */ class Factory { protected $userid; protected $groupid; /** * Class constructor. Sets user/group to current system user/group. * * On non POSIX systems both attributes will be set to 0 */ public function __construct() { $this->userid = function_exists('posix_getuid') ? posix_getuid() : 0; $this->groupid = function_exists('posix_getgid') ? posix_getgid() : 0; } /** * Creates Root object. * * @return Root */ public function getRoot() { return $this->updateMetadata(new Root()); } /** * Updates time and ownership of a node * * @param Node $node * * @return Node */ public function updateMetadata(Node $node) { $this->updateFileTimes($node); $this->updateOwnership($node); return $node; } /** * Update file a/c/m times * * @param Node $node * @return Node */ public function updateFileTimes(Node $node) { $time = time(); $node->setAccessTime($time); $node->setModificationTime($time); $node->setChangeTime($time); return $node; } /** * Sets default (current) uid/gui on object. * * @param Node $node * * @return Node */ protected function updateOwnership(Node $node) { $node->chown($this->userid); $node->chgrp($this->groupid); return $node; } /** * Creates Directory object. * * @param string $basename * * @return Directory */ public function getDir($basename) { return $this->updateMetadata(new Directory($basename)); } /** * Creates File object. * * @param string $basename * * @return File */ public function getFile($basename) { return $this->updateMetadata(new File($basename)); } /** * Creates Link object. * * @param string $basename * @param Structure\Node $destination * * @return Link */ public function getLink($basename, Node $destination) { return $this->updateMetadata(new Link($basename, $destination)); } } __halt_compiler();----SIGNATURE:----IXMr90caisoMSgoq2FntugMfJIUaLLzxZ6no7108gJR25fmRAIpWZ+56Fj//pFVuBaClg7XEn70FXKqs6YL4ITfcHcikSm9PY45/oW4d0nDlgVbphR13mDoFjp7weByAYE65mJflv6Rkdhxlt6RkPxxprpoygnnKOm7FQ6pvRYe6yNswxRjfbsGsibTiedx3vRZ48Cksew2SO5np0THqsgl+8qILfzh5mUncmJdSYm/c8oYty2frqXFziVw4X+9I0oTb1WtN4e0+GSNwhMtpp3rHtBGi8mpX5aE2uTtYV55p5nqTV+vVOJQohQOhM18WjSAev4br3V0xVaI5lnYbyLp4SQjygDonRVb6BazfvAfZ0d1ZZJEBFkYndJeYuJrCnX4h0ibWewl5s1jcF8/UAct8vHTOHWfyYRqXkZMnxaOvYenBID+mQLMrwiFSBTuP6vOoeWMNYItHrVlUJtCvscKSDp5xy8tLuQ4oQj+tcto9k93Nd3U85PKfsuNtb4hQdsg8hwrOu/NS9SzbsVIuLC5G+8HqAkH53sNSOsulFt9HwNXD0u57JVmTmpXnDbbmsmVd6qafX9XOh1a2SWdLKIqrReU6opU7QMAGQ+vxt8ZwKg/6Pfs7s7fH3VjcghqoOS+dfAHY+qJUmNtHTyqyFiNU57dhdP85JXdKRK5mqKM=----ATTACHMENT:----NzI3NTYyODYzOTk3NjA1MSA1ODg0NTA0NDg5OTc3MjI3IDExMjgyOTUwNzAzNjQzMjk=