yuav/mogilefs

此包的最新版本(1.2)没有可用的许可信息。

MogileFS PHP 模型

1.2 2013-11-03 09:46 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:41:27 UTC


README

Build Status

此库是存储在 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 调用,以实现兼容性。我建议您使用自动加载器。