用 PHP 编写我的第一个使用类和对象的应用程序。我有一个 DB 类,它需要一个字符串来选择适当的配置,因为有多个数据库。我从一个登录类开始,但为了换取一个用户类而放弃了这个想法,所以我可以做 user->isLoggedIn 的东西。用户类使用 MySQL,它存储用户和登录信息,以及第二个数据库的凭据。
$mysql = new db( 'mysql' );
$user = new user( $mysql );
if( !( $user->isLoggedIn() === true ) )
{
goToPage( 'login.php' );
exit();
}
第二个数据库是 Sybase,用于存储帐户信息。我需要来自用户类的凭据才能从此处获取列表和帐户信息。我认为应该是下一个帐户课程,但不确定最好的方法。像这样的东西也许..
$sybase = new db( 'sybase' );
$account = new account( $sybase );
$account_list = $account->getList( $user->info );
$user->info 是一个数组,我猜测帐户表所需的凭据和信息,还是有更好的方法来解决这个问题?
编辑以包含 db 类示例
配置.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' ] = "*********";
类.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 );
}
}
此外,账户有不同的部分(即历史和注释、财务交易、文档),它们将在页面上成为不同的“标签”。每一个都应该是一个类吗?