【问题标题】:automatic include mechanism in PHPPHP中的自动包含机制
【发布时间】:2017-11-13 16:22:56
【问题描述】:

有没有办法可以将文件包含在同一文件夹中 自动

我在我正在处理的应用程序中看到很多具有这种代码的代码。具体示例是 swift mailer(如果有人知道的话)。但这也可以用作一般示例:

 Folder: vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport

 |
 --- File MailInvoker.php
                 |
                 --- interface Swift_Transport_MailInvoker
 |
 --- File SimpleMailInvoker.php
                 |
                 --- class Swift_Transport_SimpleMailInvoker implements Swift_Transport_MailInvoker

如果没有任何特定的包含语句或在任何自动加载文件中没有任何提及,我无法弄清楚类如何使用接口。

提前感谢您的帮助!

【问题讨论】:

  • 这是在框架项目中吗?使用该文件夹结构,我认为它可能正在使用 composer 自动加载器。

标签: php


【解决方案1】:

您可以自动加载类。有关官方文档,请参阅 http://php.net/manual/en/language.oop5.autoload.php

基本上,您创建一个函数来加载类并将其注册到spl_autoload_register('autoloader_function_name'); 该函数将在尚未包含该类时执行。

您可以在文件 swiftmailer/lib/classes/Swift.php 中找到 swift 自动加载器 public static function autoload($class)

在stackoverflow上,也有很多例子:Best Way To Autoload Classes In PHP

【讨论】:

    【解决方案2】:

    Composer 是自动加载文件的最佳工具,所有现代框架都使用 Composer。要自动加载文件夹文件,您应该初始化自动加载系统,然后遵循一些文件命名标准。你可以阅读this tutorial 了解更多关于作曲家的信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-24
      • 2018-05-25
      • 2011-08-15
      • 2014-09-06
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 2013-10-18
      相关资源
      最近更新 更多