phpwax / mogilefs
MogileFS 组件
Requires
- php: >=5.3.3
This package is auto-updated.
Last update: 2024-09-17 12:21:37 UTC
README
该库是存储在 MogileFS 中的文件的高级抽象模型。目标是拥有一个清晰定义的 API,用于在 MogileFS 中存储和检索文件。
在查找时,默认只检索路径,而其他属性如域和类将在请求时按需加载。
此模型还包括一个 MySQL 适配器,作为一种技巧,可以在一个操作中查找多个路径的批量操作。这个适配器可能会在未来版本的 MogileFS 中损坏,但 MogileFS 目前不支持在单个查询中获取多个路径。
示例用法
<?php // Config example $config = array( 'adapter' => array( 'tracker' => array('127.0.0.1','127.0.0.2:1234'), 'domain' => 'dev' ); ); // Save $mapper = new MogileFS_File_Mapper($config); // see tests/config.php $file = new MogileFS_File(); $file->setKey('motd'); $file->setFile('/etc/motd'); $savedFile = $mapper->save($file); // Find $file = $mapper->find('motd'); var_dump($file->getPaths());
配置选项
应该将选项注入到 MogileFS_File_Mapper 构造函数的关联数组中。
示例请参考:tests/config.php
映射器选项
-
适配器
-
默认适配器
适配器选项可以是 MogileFS_File_Mapper_Adapter_Abstract 的实例,也可以是默认适配器的适配器选项集合,该选项应包含在未设置适配器时实例化的适配器类名。
跟踪器适配器选项
-
域(必需)
-
跟踪器(必需)
-
请求超时(秒)
-
noverify
-
pathcount
跟踪器部分应包含 MogileFS 跟踪器的数组。
MySQL 适配器选项
-
域(必需)
-
pdo_options(必需)
-
用户名
-
密码
测试
测试在 Ubuntu 12.04 上进行。
要运行测试,我按照快速入门指南安装了 MogileFS:[快速入门指南](https://code.google.com/p/mogilefs/wiki/QuickStartGuide)
我还执行了一个额外的命令
mogadm class add toast dev --mindevcount=3
tests/config.php 已根据上述设置进行配置
设计
除了键和路径之外的所有属性都将在请求时按需加载。这意味着直到在 MogileFS_File 模型中调用 getClass() 或类似函数之前,不会向后端服务器发送文件信息请求。
MogileFS::getFile() 将文件下载到临时本地文件,应用程序应在使用后删除该文件。
适配器与数据源交互,而映射器则从适配器输出中填充 File 模型。所有适配器都必须产生映射器可以正确解析的相同输出。
实现了一个测试适配器,以便在没有运行实际的 MogileFS 的情况下进行应用程序测试。
命名约定和设计试图遵循 Zend Framework 1.x 的规范。这也包括不理想的 require_once 调用,以保持兼容性。我建议您使用自动加载器。