phpwax/mogilefs

MogileFS 组件

dev-master / 1.0.x-dev 2012-11-20 14:22 UTC

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 调用,以保持兼容性。我建议您使用自动加载器。