【问题标题】:call member function out of Yii?从 Yii 中调用成员函数?
【发布时间】:2016-08-29 09:33:01
【问题描述】:

我知道这是不合法的,而且看起来很奇怪。但这对我来说是必要的。 我有两个项目,一个是自定义 Open-Cart,第二个是 Yii。我的主要项目是opencart。我的 Yii 项目保存在主项目根目录中。

现在我想在我打开的购物车中调用一个 Yii 函数。 请任何人帮助我并告诉我如何在我的主项目中调用 Yii 函数?

这是我的 Yii 函数:-

   $sm=Yii::app()->getSecurityManager();

    if ($salt === null)
        $salt = Yii::app()->params['password_security_salt'];
    if($salt==null)
        $salt=md5 (mt_rand ().mt_rand ().mt_rand ().mt_rand ());
    $pass=sha1($salt.$pass.$salt);
    return $sm->hashData($pass,$key).':'.$salt;

.....................

我想为我的 opencart 项目手动创建一个新函数。 请帮我创建一个与 Yii(上层函数)功能相同的新项目。

【问题讨论】:

  • 你可以在 Yii 的一些控制器中创建动作,返回你的散列数据,然后运行指向这个动作的 url。但是这个解决方案显然需要安全!

标签: php yii opencart


【解决方案1】:

您可以通过像这样初始化应用程序来在 Yii 项目之外使用 Yii 功能:

// this is in someotherfile.php outside of the yii project
require_once('framework/yii.php');
$config = require_once('protected/config/main.php');
Yii::createWebApplication($config);


// call your function
Yii::app()->getSecurityManager();

显然,yii.php 文件和应用程序配置 (main.php) 的路径需要更改以适应您的项目结构

【讨论】:

  • 我尝试了,但它给出了错误,错误是:- 使用未定义的常量 ROOT_PATH - 假定“ROOT_PATH”错误:- /config/main.php 文件 'appFilesUrl'=>ROOT_URL.'/appmedia ',在这一行
  • 你在哪里定义ROOT_PATH?在 Yii 里面还是在打开的推车里面?
  • 啊,好吧,在打开的购物车中执行上述操作时,您必须再次定义它,所以只需在顶部添加define('ROOT_PATH',"your/root/path");。我想你必须调整路径
  • 先生 非常感谢您的帮助。但现在它给出了类似的警告:=>警告[2]:include(CWebApplication.php):无法打开流:没有这样的文件或目录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-17
相关资源
最近更新 更多