2016-08-29 3 views
0

Я знаю, что это не легально и выглядит странно. Но это необходимо для меня. У меня есть два проекта, один из них является обычным Open-Cart, а второй - Yii. Мой главный проект в opencart. Мой проект Yii хранится в главном проекте проекта.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; 

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

Я хочу, чтобы создать новую функцию вручную мой проект. , пожалуйста, помогите мне создать новый проект для такой же функциональности, как функция Yii (верхняя функция).

+0

Вы можете создать действие в контроллере Yii, который возвращает ваши хешированные данные, а затем запустит URL-адрес, который указывает на это действие. Но это решение, очевидно, должно быть безопасным! – aslawin

ответ

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) необходимо изменить, чтобы соответствовать вашему проекту Структура

+0

Я стараюсь, но это дает ошибку, ошибка: - Использование неопределенной постоянной ROOT_PATH - предполагается, 'ROOT_PATH' ошибка: - /config/main.php файл 'appFilesUrl' => ROOT_URL '/ appmedia' в. this line –

+0

Где вы определяете 'ROOT_PATH'? Внутри Yii или внутри открытой тележки? –

+0

Ах, ну, вам нужно будет определить его снова, когда делаете это в открытой корзине, поэтому просто добавьте 'define ('ROOT_PATH', 'your/root/path');' вверху. Я полагаю, вам нужно будет настроить путь –

Смежные вопросы