我用Yii開發一個項目。Yii:需要一個.php文件
我需要一個普通的.php文件(不是組件,不是類,只是PHP函數定義的一個常規序列)。在Yii框架下做到這一點的正確方法是什麼?我應該使用普通的require_once()嗎?
require_once(Yii::app()->basePath . '/extensions/my-php-file.php');
對不對?
我用Yii開發一個項目。Yii:需要一個.php文件
我需要一個普通的.php文件(不是組件,不是類,只是PHP函數定義的一個常規序列)。在Yii框架下做到這一點的正確方法是什麼?我應該使用普通的require_once()嗎?
require_once(Yii::app()->basePath . '/extensions/my-php-file.php');
對不對?
是的,這是正確的。
實施例:
require_once Yii::app()->basePath . '/extensions/PearMail/Mail-1.2.0/Mail.php';
在你的問題的方法是好的,但強制文件位置總是在同一個文件夾中。
靈活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';
需要不是一個函數,無需'()':這是正確的:'require_once的Yii ::應用程序() - >基本路徑。 '/extensions/PearMail/Mail-1.2.0/Mail.php';' – lin
@lin:我知道這是一個聲明而不是函數。你的版本看起來更加令人愉快,但我認爲它並不重要你使用哪一個(除了可讀性,也許)。 –
Yii :: $ app是Yii2應用程序類'yii \ web \ Application'的靜態變量。 我試過了,它對我很有用 require_once Yii :: $ app-> basePath。 '/extensions/PearMail/Mail-1.2.0/Mail.php'; –