yuav / mogilefs
MogileFS PHP 模型
Requires
- php: >=5.3.3
This package is not auto-updated.
Last update: 2024-09-14 15:41:27 UTC
README
此库是存储在 MogileFS 中的文件的高级抽象模型。目的是有一个明确定义的 API 来用于在 MogileFS 中存储和检索文件。
在查找时,默认只检索路径,而其他属性(如域名和类)在请求时懒加载。
此模型还包括一个 mysql 驱动,作为一种通过一次操作查找多个路径的批量操作技巧。此适配器可能会在未来的 MogileFS 版本中中断,但 MogileFS 目前不支持原生地在一个查询中获取多个路径。
示例用法
使用 composer 添加
{ "require": { "yuav/mogilefs": "dev-master" } }
<?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 的实例,或者是一组 defaultadapter 的适配器选项,该选项应包含要实例化的适配器的类名,如果没有设置适配器。
跟踪器适配器选项
-
域名(必需)
-
跟踪器(必需)
-
请求超时(秒)
-
noverify
-
pathcount
跟踪器 部分应包含 MogileFS 跟踪器数组。
Mysql 适配器选项
-
域名(必需)
-
pdo_options(必需)
-
用户名
-
密码
测试
测试在 Ubuntu 12.04 上进行。
要运行测试,我按照快速入门指南安装了 MogileFS:[https://code.google.com/p/mogilefs/wiki/QuickStartGuide](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 调用,以实现兼容性。我建议您使用自动加载器。