【问题标题】:How to organize require and require once in PHP for class import如何在 PHP 中组织 require 和 require 一次以进行类导入
【发布时间】:2015-01-31 23:56:29
【问题描述】:

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

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

require 或 require_once 在类中调用,而且我希望配置类可用于我在运行时拥有的所有类...无需显式调用或要求一次。

我该怎么做,大多数 php 项目使用引导类/文件来做到这一点,请一些机构帮助我。

【问题讨论】:

    标签: php require require-once


    【解决方案1】:

    我建议创建一个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

    【讨论】:

      【解决方案2】:

      您可以创建一个 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 顶部的文件中),因此之后的所有指令都将受益。您可以通过检查不同的目录来改进它(例如如果类名以“控制器”或“模型”开头,则将路径更改为相应的目录)

      【讨论】:

      • 谢谢,但我是否必须在我的 uplaod_test.php 文件中包含该文件,该文件曾经是我的初始点……而且我还有 /config、/model 和 /service 类 php 文件夹要加载class ...你能修改一下你的代码吗
      • 您可以自己修改它:) 例如,您可以拥有一个路径数组,然后检查文件是否存在于每个路径中。我个人使用类似于 Kohana 的功能,您可以通过阅读此处的代码找到灵感github.com/kohana/core/blob/3.3/master/classes/Kohana/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      相关资源
      最近更新 更多