/** * Open url/stream * @return void * @throws \RuntimeException */ public function init() { $stream = @fopen($this->config['url'], 'a'); if (!$stream) { throw new \RuntimeException(sprintf("Couldn't open resource '%s'", $this->config['url'])); } $this->stream = $stream; if (!empty($this->config['lock']) && $this->config['lock'] === true && stream_supports_lock($this->stream)) { $this->useLocks = true; } }
/** * @return bool */ public function isLockable() : bool { return stream_supports_lock($this->getHandle()); }
/** * Метод определяет можно ли произвести блокировку стрима при помощи flock. * * @return bool */ public function canLock() { return stream_supports_lock($this->getResource()); }
/** * Checks to see if the stream supports locking. * * @throws LockException If locking is not supported. */ private function checkLockSupport() { if (!stream_supports_lock($this->stream)) { throw new LockException('The file stream does not support locking.'); } }
<?php $fp = fopen(__FILE__, "r"); var_dump($fp); var_dump(stream_supports_lock($fp)); fclose($fp); $fp = fopen("file://" . __FILE__, "r"); var_dump($fp); var_dump(stream_supports_lock($fp)); fclose($fp); $fp = fopen("php://memory", "r"); var_dump($fp); var_dump(stream_supports_lock($fp)); fclose($fp); $fp = fopen('data://text/plain,foobar', 'r'); var_dump($fp); var_dump(stream_supports_lock($fp)); fclose($fp); $sock = stream_context_create(); var_dump($sock); var_dump(stream_supports_lock($sock)); echo "Done\n";
/** * Enter description here ... * * @return bool */ public function supportsLock() { return stream_supports_lock($this->hHandle); }
/** * Alias for stream_supports_lock * @return boolean */ public function isLockable() { if ($this->isOpen()) { return stream_supports_lock($this->pointer); } return false; }
public function canLock() { if (!$this->isOpen()) { throw new Exception('Stream Not Open'); } return stream_supports_lock($this->stream); }
/** * Tells whether the stream supports locking. * * @param resource $stream The stream to check. * * @return bool */ public function supportsLock($stream) : bool { return stream_supports_lock($stream); }