科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网CIO与应用频道在对象语境外创建载入程序

在对象语境外创建载入程序

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

我们将在本文中解释如何创建一个小型,高效的文件加载类,这其中有些与众不同的地方在于,由于实施了静态递归载入方法,我们不再需要产生大量实例来包括锁定文件。通过php在服务器上写入文件  为了避免加载类的最终示例,我们可以声明所提及的"load()"方法的静态特性。

来源:IT专家网 2010年8月18日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

  我们将在本文中解释如何创建一个小型,高效的文件加载类,这其中有些与众不同的地方在于,由于实施了静态递归载入方法,我们不再需要产生大量实例来包括锁定文件。

  用PHP创建能够加载指定文件的小型文件或资源对于许多程序员来说都是很容易的一件事情。但是,当你尝试向这些项目中添加有用特性时事情会变得更复杂,如递归文件搜索功能和异常处理功能等。这些都要求更多对象范例的相关知识以及掌握目前仅出现在PHP5中的性能。

  文件加载类具备"load()"方法可以直接执行递归功能。然而,需要在此强调的是有必要创建给类的示例以便包含确定的文件,除非,在这些例子中,加载方法是被静态调用。通过php在服务器上写入文件

  为了避免加载类的最终示例,我们可以声明所提及的"load()"方法的静态特性。因此,考虑到这一点,我们将"Loader"类的特性进行改进。想了解这些是如何在简单几个步骤里实现的吗?请看下文。

  观察下列代码,注意它的定义:

  < ?php

  // define a recursive loader class

  class Loader

  {

  private $file = '';

  private $path = '';

  // constructor (not implemented)

  public function __construct(){}

  // set file to load

  public function set_file($file)

  {

  $this->file = $file;

  }

  // get file to load

  public function get_file()

  {

  return $this->file;

  }

  // set path to load file

  public function set_path($path)

  {

  $this->path = $path;

  }

  // get path to load file

  public function get_path()

  {

  return $this->path;

  }

  // load recursively specified file

  public function load($file, $path)

  {

  if (file_exists($file))

  {

  require_once($file);

  return;

  }

  else

  {

  if (is_dir($path))

  {

  if (FALSE !== ($handle = opendir($path)))

  {

  // search recursively the specified file

  while (FAlSE !== ($dir = readdir($handle)))

  {

  if (strpos($dir, '.') === FALSE)

  {

  $path .= '/' . $dir;

  $file = $path . '/' . $this->file;

  $this->load($file, $path);

  }

  }

  }

  closedir($handle);

  }

  }

  }

  }

  

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章