如何在PHP中组织require和require_once以进行类导入

时间:2014-12-03 12:07:47

标签: php require require-once

我已经构建了一个PHP视频上传库,旨在用于不同的框架。 ## HERE ##

但我想让它优化,如我想要包含或制作\

require或require_once 在类中调用,我也希望配置类可以在运行时对所有类使用...而无需显式调用或只需要一次。

我怎么能这样做,大多数php项目使用bootstrap类/文件来做到这一点,有些人帮我。

2 个答案:

答案 0 :(得分:2)

我建议创建一个auto_load.php文件的方法,此文件将包含要包含的文件,然后您可以将此auto_load.php包含到您的入口点文件/类中库,以加载库的所有必要文件。它与composer的工作原理和效率相同。

您可以在加载类时查看psr-4标准。 http://www.php-fig.org/psr/psr-1/

require_oncerequire相同,但PHP会检查文件是否已被包含,如果是,则不再包括(要求),请参阅http://php.net/manual/en/function.require-once.php

答案 1 :(得分:1)

您可以创建autoload function。这样您只需加载所需的库。

基本自动加载功能如下所示:

define('PATH_LIBRARY', '/some/path/lib/');
function myautoload($class_name){
  // you can do string manipulation to build the filename, for example
  $filename = strtolower($class_name);
  $filename = str_replace('_', '/', $filename);
  $filename = ucwords($filename);

  $filepath = PATH_LIBRARY.$filename.'.php';
  if (file_exists($filepath))
  {
    require_once($path);
    return true;
  }
}
spl_autoload_register('myautoload');

修改代码必须在代码的开头添加(通常位于index.php顶部的文件中),以便后面的所有指令都会受益。您可以通过检查不同的目录来改进它(例如,如果类名以“controller”或“model”开头,则将路径更改为相应的目录)