【问题标题】:How to handle files in an OOP way?如何以 OOP 方式处理文件?
【发布时间】:2012-08-21 11:27:25
【问题描述】:

我需要复制、移动和删除文件。

是否有任何组件或类用于此?

我找到了这个,但它只会移动:http://api.symfony.com/master/Symfony/Component/HttpFoundation/File/File.html

或者我应该坚持使用原生功能?

【问题讨论】:

    标签: php oop symfony symfony-2.1


    【解决方案1】:

    关于 Symfony 框架可以看Symfony\Component\Filesystem\Filesystem

    您发布的链接是 HttpFoundation 中的一个类,仅用于上传文件。

    【讨论】:

      【解决方案2】:

      PHP 有很多函数来处理文件系统。

      PHP's documentation 有一整节专用于文件系统操作的功能。


      面向对象的方法将在何时以及如何在代码中实现这些功能时发挥作用。

      【讨论】:

      • @shi - 我同意。大写字母必须放在需要的地方:P 感谢您的编辑;)
      • 当然,但这不是 OOP,我不确定是否应该在 Symfony2 项目中使用它。例如:您可以使用 exec() 执行命令,但随后您意识到在 Symfony 中有更好的方法来执行此操作。
      • 这是任何 PHP 代码(最终)操作文件的方式。正是包装器以及您如何使用它使其面向对象。由你决定! :)
      • 看我并不是要争论,但是如果已经有一个包装器来改进这一切(例如:抛出异常而不是警告/致命错误),我想知道。我知道这只是另一层抽象。
      【解决方案3】:

      您可以创建自己的帮助程序类来包装程序命令吗?或者,您可以查看一些流行的文件系统帮助程序类或类似框架。

      class File {
      
          public static function exists($file) {
              return file_exists($file);
          }
      
          public static function copy($file, $destination) {
              // checks
              return copy($file, $destination);
              // error handling
          }
      
          public static function move($file, $destination) {
              return rename($file, $destination);
          }
      
          public static function delete($file) {
              return unlink($file);
          }
      }
      
      File::copy( 'test.txt', 'copy.txt' );
      

      【讨论】:

        猜你喜欢
        • 2012-10-26
        • 1970-01-01
        • 1970-01-01
        • 2022-01-13
        • 1970-01-01
        • 2021-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多