クラスとオブジェクトを利用する初めてのアプリケーションを PHP で作成します。複数のデータベースがあるため、文字列を使用して適切な構成を選択する DB クラスがあります。私はログイン クラスから始めましたが、user->isLoggedIn を実行できるように、ユーザー クラスと引き換えにそのアイデアを削除しました。ユーザー クラスは、ユーザーとログイン情報、および 2 番目のデータベースの資格情報を格納する MySQL を使用します。
$mysql = new db( 'mysql' );
$user = new user( $mysql );
if( !( $user->isLoggedIn() === true ) )
{
goToPage( 'login.php' );
exit();
}
2 番目のデータベースは Sybase で、アカウント情報を格納します。ここからリストとアカウント情報を取得するには、ユーザー クラスからの資格情報が必要です。次はアカウント クラスにすべきだと思いますが、それを行う最善の方法がわかりません。このようなものかもしれません..
$sybase = new db( 'sybase' );
$account = new account( $sybase );
$account_list = $account->getList( $user->info );
$user->info は配列であり、アカウント テーブルに必要な資格情報と情報を推測しますか、それとももっと良い方法がありますか?
db クラスの例を含めるように編集
config.db.php
$config_array = array();
$config_array[ 'mysql' ][ 'dsn' ] = "mysql:host=localhost;dbname=********;charset=UTF-8";
$config_array[ 'mysql' ][ 'user' ] = "********";
$config_array[ 'mysql' ][ 'pass' ] = "**************";
$config_array[ 'sybase' ][ 'dsn' ] = "odbc:DRIVER={Adaptive Server Anywhere 8.0};***************";
$config_array[ 'sybase' ][ 'user' ] = "**********";
$config_array[ 'sybase' ][ 'pass' ] = "*********";
class.db.php
public function __construct( $type )
{
require 'config.db.php';
$this->type = $type;
foreach( $config_array[ $this->type ] AS $key => $value )
{
$this->$key = $value;
}
try
{
$this->connection = new PDO( $this->dsn, $this->user, $this->pass, $this->options );
}
catch( PDOException $ex )
{
log_action( "db->" . $this->type, $ex->getCode() . ": " . $ex->getMessage() );
$this->error = true;
}
return $this->connection;
}
次のようなものは意味がありますか?
class User()
{
public function getAccountList()
{
$this->Account = new Account( new Database( 'sybase' ) );
return $this->Account->list( $this->userid );
}
}
また、アカウントには、ページ上の異なる「タブ」となるさまざまなセクション (つまり、履歴とメモ、金融取引、ドキュメント) があります。それらのそれぞれもクラスにする必要がありますか?