2016-08-29 3 views
0

私はそれが合法ではなく、奇妙に見えることを知っています。しかし、それは私のために必要です。 私は2つのプロジェクトを持っています.1つはカスタムのオープンカートで、もう1つはYiiです。 opencartの私のメインプロジェクト。 My YiiプロジェクトはMainプロジェクトのルートに保存されています。Yii - Yiiの呼び出し元メンバー関数?

私は自分のopencartで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のプロジェクトの外でYiiの機能を使用することができます
+0

あなたのハッシュデータを返すコントローラをYiiのコントローラで作成し、このアクションを指すurlを実行することができます。しかし、このソリューションは明らかに安全である必要があります! – aslawin

答えて

1

// 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' エラー: - 'appFilesUrl' => ROOT_URLファイル/config/main.php '/ appmedia' に。この行 –

+0

どこで 'ROOT_PATH'を定義していますか? Yiiの中か開いたカートの中に? –

+0

ああ、オープンカートで上記を行うときにもう一度定義しなければならないので、 'define( 'ROOT_PATH'、" your/root/path ");を先頭に追加してください。私はあなたがパスを微調整しなければならないと想像します –

関連する問題