【问题标题】:Yii: requiring a .php fileYii:需要一个 .php 文件
【发布时间】:2013-06-24 18:12:02
【问题描述】:

我用 Yii 开发了一个项目。

我需要一个普通的 .php 文件(不是组件,不是类,只是 PHP 函数定义的常规序列)。在 Yii 框架下执行此操作的正确方法是什么?我应该使用普通的 require_once() 吗?

require_once(Yii::app()->basePath . '/extensions/my-php-file.php');

对吗?

【问题讨论】:

    标签: php yii


    【解决方案1】:

    是的,没错。

    例子:

    require_once Yii::app()->basePath . '/extensions/PearMail/Mail-1.2.0/Mail.php';
    

    【讨论】:

    • Require 不是函数,不需要():这是对的:require_once Yii::app()->basePath . '/extensions/PearMail/Mail-1.2.0/Mail.php';
    • @lin:我知道这是一个语句而不是一个函数。您的版本当然看起来更令人愉悦,但我认为您使用哪一个并不重要(也许除了可读性)。
    • Yii::$app 是 Yii2 应用程序类 'yii\web\Application' 的静态变量。我试过这个,它对我有用 require_once Yii::$app->basePath 。 '/extensions/PearMail/Mail-1.2.0/Mail.php';
    【解决方案2】:

    您问题中的方法很好,但强制文件位置始终位于同一文件夹中。

    灵活的Yii::import 仅用于加载类,并且仅用于加载名称与文件名相同的类。

    但是,如果您想使用别名来获取文件路径,您仍然可以通过使用 getPathOfAlias 来从别名中受益,如下所示:

    require_once Yii::getPathOfAlias('application.extensions.my-php-file') . '.php';
    

    要包含相对于当前文件的文件,最好使用dirname(__FILE__)__DIR__ (php 5.3+)

    require_once __DIR__ . '/some-file.php';
    

    【讨论】:

      猜你喜欢
      • 2012-10-16
      • 2017-04-25
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多