### 3.4?`Psr\Http\Message\StreamInterface`
~~~php
<?php
namespace Psr\Http\Message;
/**
* 描述數據流。
*
* 通常,實例將包裝PHP流; 此接口提供了最常見操作的包裝,包括將整個流序列化為字符串。
*/
interface StreamInterface
{
/**
* 從頭到尾將流中的所有數據讀取到字符串。
*
* 這個方法 **必須** 在開始讀數據前定位到流的開頭,并讀取出所有的數據。
*
* 警告:這可能會嘗試將大量數據加載到內存中。
*
* 這個方法 **不得** 拋出異常以符合 PHP 的字符串轉換操作。
*
* @see http://php.net/manual/en/language.oop5.magic.php#object.tostring
* @return string
*/
public function __toString();
/**
* 關閉流和任何底層資源。
*
* @return void
*/
public function close();
/**
* 從流中分離任何底層資源。
*
* 分離之后,流處于不可用狀態。
*
* @return resource|null 如果存在的話,返回底層 PHP 流。
*/
public function detach();
/**
* 如果可知,獲取流的數據大小。
*
* @return int|null 如果可知,返回以字節為單位的大小,如果未知返回 `null`。
*/
public function getSize();
/**
* 返回當前讀/寫的指針位置。
*
* @return int 指針位置。
* @throws \RuntimeException 產生錯誤時拋出。
*/
public function tell();
/**
* 返回是否位于流的末尾。
*
* @return bool
*/
public function eof();
/**
* 返回流是否可隨機讀取。
*
* @return bool
*/
public function isSeekable();
/**
* 定位流中的指定位置。
*
* @see http://www.php.net/manual/en/function.fseek.php
* @param int $offset 要定位的流的偏移量。
* @param int $whence 指定如何根據偏移量計算光標位置。有效值與 PHP 內置函數 `fseek()` 相同。
* SEEK_SET:設定位置等于 $offset 字節。默認。
* SEEK_CUR:設定位置為當前位置加上 $offset。
* SEEK_END:設定位置為文件末尾加上 $offset (要移動到文件尾之前的位置,offset 必須是一個負值)。
* @throws \RuntimeException 失敗時拋出。
*/
public function seek($offset, $whence = SEEK_SET);
/**
* 定位流的起始位置。
*
* 如果流不可以隨機訪問,此方法將引發異常;否則將執行 seek(0)。
*
* @see seek()
* @see http://www.php.net/manual/en/function.fseek.php
* @throws \RuntimeException 失敗時拋出。
*/
public function rewind();
/**
* 返回流是否可寫。
*
* @return bool
*/
public function isWritable();
/**
* 向流中寫數據。
*
* @param string $string 要寫入流的數據。
* @return int 返回寫入流的字節數。
* @throws \RuntimeException 失敗時拋出。
*/
public function write($string);
/**
* 返回流是否可讀。
*
* @return bool
*/
public function isReadable();
/**
* 從流中讀取數據。
*
* @param int $length 從流中讀取最多 $length 字節的數據并返回。如果數據不足,則可能返回少于
* $length 字節的數據。
* @return string 返回從流中讀取的數據,如果沒有可用的數據則返回空字符串。
* @throws \RuntimeException 失敗時拋出。
*/
public function read($length);
/**
* 返回字符串中的剩余內容。
*
* @return string
* @throws \RuntimeException 如果無法讀取則拋出異常。
* @throws \RuntimeException 如果在讀取時發生錯誤則拋出異常。
*/
public function getContents();
/**
* 獲取流中的元數據作為關聯數組,或者檢索指定的鍵。
*
* 返回的鍵與從 PHP 的 stream_get_meta_data() 函數返回的鍵相同。
*
* @see http://php.net/manual/en/function.stream-get-meta-data.php
* @param string $key 要檢索的特定元數據。
* @return array|mixed|null 如果沒有鍵,則返回關聯數組。如果提供了鍵并且找到值,
* 則返回特定鍵值;如果未找到鍵,則返回 null。
*/
public function getMetadata($key = null);
}
~~~
- 前言
- 捐贈ESD項目
- 使用篇-通用
- 環境
- 安裝
- 規范
- 壓力測試
- 配置
- 如何設置YML配置
- server配置
- 端口配置
- 項目結構
- 事件派發
- 日志
- 注解
- DI容器
- 自定義進程
- 并發及協程池
- Console插件
- Scheduled插件
- Redis插件
- AOP插件
- Saber插件
- Mysql插件
- mysql事務
- Actuator插件
- Whoops插件
- Cache插件
- PHPUnit插件
- Security插件
- Session插件
- EasyRoute插件
- http路由
- ProcessRpc插件
- AutoReload插件
- AnnotationsScan插件
- Tracing-plugin插件
- MQTT插件
- Pack插件
- AMQP插件
- Validate插件
- Uid插件
- Topic插件
- Blade插件
- CsvReader插件
- hashed-wheel-timer-plugin插件
- 使用篇-HTTP
- 路由
- 靜態文件
- 路由定義
- 修飾方法
- 路由分組
- 資源路由
- 端口作用域
- 異常處理
- 跨域請求
- 路由緩存
- 控制器
- 控制器初始化
- 前置操作
- 跳轉和重定向
- 異常處理
- 請求
- 請求對象
- 請求信息
- request消息
- response消息
- stream消息
- url接口
- 驗證器
- 內置驗證器
- 內置過濾器
- 使用篇-WS
- 如何使用
- 路由
- 使用篇-TCP
- 插件篇-PluginSystem
- 微服務篇-ESDCloud
- CircuitBreaker插件
- SaberCloud插件
- 分布式鏈路追蹤系統
- Consul插件