2012-03-22 1 views
1

私はphpbbフォーラムを既存のMagentoデータベースに接続することを任されています。Magento APIを使用していますプレーンMySQL

これがうまくいく方法がある:

  1. 新規ユーザーは、(同じかもしれない)Magentoのベースのサイトに登録し、フォーラムのユーザー名だけでなく、ウェブサイトのユーザー名を選択してください。つまり、両方の場所で同じ資格情報を使用できます。
  2. 一部の登録ロジックでは、ユーザー情報に基づいて他のデータベースフィールドを設定する必要があります。
  3. 既存のphpbbユーザーを認証する際、MagentoのDBが使用されます。

MagentoのAPIを使用してテーブルを1に設定し、プレーンなMySQLクエリ/更新を3で使用しました。

2の場合、phpbbがアクセスするフィールドはphpbbフォーラム(フォーラムユーザー名とは別に)でのみ更新され、Magentoサイトでは更新されません。 MagentoのAPIを使用することは、非常に退屈な選択肢のように思えます。

Magento APIまたはプレーンなMySQLインサートを使用する必要があります。その理由は何ですか?

答えて

1

Magento APIを選択します。ハッシュ全体の生成をエミュレートする必要はありません(2文字のsaltを使用してMD5ハッシュに追加するだけでなく、データベーススキーマやハッシングメカニズムを更新することを心配する必要もありません)。

ユーザーパスワードを変更するのは簡単です。

require_once 'app/Mage.php'; 

Mage::init('admin'); 

$customer = Mage::getModel('customer/customer')->load(123); // whatever the user ID is 
$customer->changePassword('whatever_new_password'); 
+0

ありがとうございました。私はMagento dbから認証するためにmd5-saltエミュレーションを実際に行っていました。 – Vish

1

私はmagento APIをまったく使用しないことをお勧めします。つまり、SQLはありません。 は、あなたが使用することができますMagentoの範囲外Magentoのを使用するには:私が正しく理解している場合

Some registration logic needs to populate other database fields based on the user info 

は、追加のフィールドを持つ別のテーブルを作成し、顧客テーブルとのリンクを作るため

require_once('app/Mage.php'); 
Mage::app(); 

また、私はお勧めします。負荷を達成するには、Magentoのモデルを作成し、モデルの適切な使い方を理解するだけです。

  1. スピード:

    基本的に、なぜ私は生-SQLに投票します。 APIモデルの処理よりもはるかに迅速に作業する

  2. シンプルさ。あなたはDBで直接作業するので、非常に簡単です。 MagentoのAPIについては

  1. シンプル。私にとっては、SQLクエリよりもAPIモデルで作業する方がはるかに快適です。だから我々はSQLを全く書いていない。
  2. インテグリティ。あなたはかもしれませんは、非常に物事を感じることはありませんが、SQLと何かを壊す。モデルAPIを使用すると、何も破壊されません。フレームワークはすべてのものを購入します。
  3. 少ないコード。Magento APIには数多くの便利なメソッドがありますので、mag、db、validation、format functionsなど必要なものがすべてあるので、sqlではなくapiを使用するとコードを書く必要はありません。

私の投票はmagentoです。 alomst

+0

ありがとう!それは私が探していたものです。 – Vish

+0

APIを使用しているときに、より良いアップグレード機能を忘れないでください(Varienはあなたが使った機能を廃止しないと仮定します)。 –

+0

sonassi、ありがとうございます。私たちはここでかなりのMagento-phobic人がいて、v1.3から「決して」アップグレードしないことを確認しました:)それで、私は今Magentoプールに飛び込んできました。返信いただきありがとうございます! – Vish

0

すべてのケースの開発者は、データにCRUD機能を実行するために、ネイティブ Magentoのクラスを使用する必要があります。

ネイティブクラス/メソッドは、Magentoのは、元のために、関連オブジェクトにかカスケード業務を取り扱うイベントで構築使用する:あなたは顧客を削除すると、注文エンティティのすべてのcustomer_idフィールドがNULLに設定されます許可使用。

Magento APIを選んだ理由はたくさんありますが、@ Jevgeni Smirnovはそれらのいくつかを投稿しました。

関連する問題