【问题标题】:Is there any PHP OO file API?是否有任何 PHP OO 文件 API?
【发布时间】:2011-08-25 11:36:56
【问题描述】:

我知道 PHP 包含很多用于处理文件和目录的内置函数。我可以读取、写入、删除,并且可以通过使用 PHP filesystem functions 获得几乎所有可能的文件信息 这些函数的问题在于它们都是程序化的。

有没有 PHP OO 文件 API ?

我怀疑是否有原生的,至少在

【问题讨论】:

  • 好问题。这对于访问文件系统的单元测试类也非常有用。

标签: php oop filesystems


【解决方案1】:

是的,yes there is,很漂亮。 SplFileInfoSplFileObject(这可能是你真正想要的)都在 5.1.2 中可用。

虽然它们大多只是程序功能的包装,但我发现它们总体上要好得多——如果只是因为它们允许我在使用类型提示时传递东西,而且我不需要担心 fclose。

我猜它类似于 PDO 类。是的,你可以按程序做事,但你为什么要这样做?

【讨论】:

  • 。这两个类都是实验性的,更糟糕的是,SplFileObject 用于文本文件
  • 显然,它们不再是实验类了,但SplFileObject 仍然仅限于文本文件:bugs.php.net/bug.php?id=36289
  • @Christian fpassthru 在大多数情况下就足够了。
  • 如果我想要那样做,为什么还要为 OOP 烦恼呢?不如使用file_get_contents(),不是吗?
【解决方案2】:

在 5.3 中你可以使用SPLFileObject

【讨论】:

    【解决方案3】:

    天哪,不,程序,恐怖!但实际上有SplFileObjectSplFileInfoSplTempFileObject,虽然它们只是部分映射了基函数。

    没有可比较的目录 API,但例如RecursiveDirectoryIterator 可用于阅读。如需遍历 API,请查看 Hordes/PEARs VFS

    【讨论】:

    • 程序 API 存在一些真正的问题。例如,能够针对关键代码编写自动化测试而无需实际让该代码修改磁盘上的内容,这很好。您可以模拟 OOP 文件系统 API,但不能模拟程序 API。仍然 +1 是包含目录的唯一答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 2016-01-25
    • 1970-01-01
    相关资源
    最近更新 更多