3

Perl の Class::DBI を使用してリレーショナル データベースをラップする、ここ数年かけて開発したクラス ライブラリがあります (Prestashop の DB スキームは重要ではありません)。

単一の perl スクリプトで、このクラスの複数の「インスタンス」を作成し、異なるデータベースを指すことを知っている人はいますか? たとえば、今私は次のようなことをします:

use MyClassLib;
MyClassLib->connection('dbi:mysql:mydatabase', 'username', 'password');
MyClassLib->some_method()

すべてがうまく機能します。

私がやろうとしているのは、基本的MyClassLibに、別のデータベースを指す別の「インスタンス」を使用できるようにするエイリアスです。Class::DBIデータベース接続を静的状態として保存するのは面倒です。

擬似コードでこのようなもの

use MyClassLib;
use MyClassLib as MyClassLibAlias;
MyClassLib->connection('dbi:mysql:mydatabase', 'username', 'password');
MyClassLibAlias->connection('dbi:mysql:mynewdatabase', 'username', 'password');
MyClassLib->some_method()

そして、コードアクセスMyClassLibからMyClassLibAlias. Class::DBI私はレガシーであることを認識しており、DBIx::Class存在しない場合は使用するソリューションも高く評価されますClass::DBI

ありがとう

4

1 に答える 1