我将password.php
文件放在components
文件夹中。在 phpStorm password.php
中的现有函数显示良好(自动完成),但运行时遇到此问题:
Fatal error: Call to undefined function password_hash() in . . .\protected\controllers\SiteController.php on line 129
是什么原因?
main.php
...
'import'=>array(
'application.models.*',
'application.components.*',
),
...
答案 0 :(得分:2)
如果文件名与类名相同且且类定义文件在导入路径中,则Yii仅自动加载类。对于包含功能包的文件,您必须手动include
(或require
)
要包含您可以使用dirname(__FILE__)
(php 5.2)或__DIR__
(php 5.3+)获取当前文件的路径,然后将相对路径追加到您的文件和文件名。你可以把它放在index.php
中,类似的东西:
require_once dirname(__FILE__) . '/../protected/components/password.php';
或更简单,如果你有php 5.3 +:
require_once __DIR__ . '/../protected/components/password.php';