2013-06-24 42 views
9

我用Yii開發一個項目。Yii:需要一個.php文件

我需要一個普通的.php文件(不是組件,不是類,只是PHP函數定義的一個常規序列)。在Yii框架下做到這一點的正確方法是什麼?我應該使用普通的require_once()嗎?

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

對不對?

回答

9

是的,這是正確的。

實施例:

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

需要不是一個函數,無需'()':這是正確的:'require_once的Yii ::應用程序() - >基本路徑。 '/extensions/PearMail/Mail-1.2.0/Mail.php';' – lin

+0

@lin:我知道這是一個聲明而不是函數。你的版本看起來更加令人愉快,但我認爲它並不重要你使用哪一個(除了可讀性,也許)。 –

+0

Yii :: $ app是Yii2應用程序類'yii \ web \ Application'的靜態變量。 我試過了,它對我很有用 require_once Yii :: $ app-> basePath。 '/extensions/PearMail/Mail-1.2.0/Mail.php'; –

6

在你的問題的方法是好的,但強制文件位置總是在同一個文件夾中。

靈活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';