我把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.*',
),
...
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';