我通过 PHP 开发了 Web 应用程序,而没有使用任何框架。我的应用程序主要有两种类型的文件 - 前端和后端。第一种类型可能包含 HTML、PHP、CSS、JavaScript (jQuery) 和后端 - 只有 PHP。我有一个pg_db_connection
与数据库建立连接的类和一个session
创建用户的 Web 会话(php 的函数session_start()
)并维护一些变量,如“用户名”、users
数据库表中的用户 ID 等。
该类pg_db_connection
具有一个属性,该属性$link
是从pg_connect()
. 这个类也有一些函数,比如query($query, $b_result = false, &$affected_rows = null)
, insert($table, $values, $columns = null, &$affected_rows = null)
, begin()
, commit()
,rollback()
等等。在每个前端文件的开头,我创建类型的对象session
并执行:
$db = new pg_db_connection($db_config,$log_mng);
$session = new session($db);
#if the session is not active go to login.php frontend and force the user to login
if(!$session->is_active())
{
header("Location: /html/admin/login.php?url=" . urlencode($_SERVER['REQUEST_URI']));
exit;
}
# If session is active proceed below
# Auto refresh the session
$session->autoReresh();
# Check if the current user have privileges to access this frontend file (second param is file path, third - file name)
if(!($session->passpermit($session->user_id(), $_SERVER['SERVER_ADDR'], dirname(__FILE__)."/", basename(__FILE__))))
{
header("Location: /html/admin/access_denied.html");
exit;
}
会话类存储user_id, username
和更多$_SESSION
。需要连接到数据库,因为 Web 用户有权访问的文件存储在数据库中。如果我想在这个前端文件中加载任何动态数据,我会使用 jQuerypost
或load
函数并调用一个后端文件。这个后端文件在大多数情况下包括pg_db_connection
,执行一些数据库查询,如果还需要的话 - 对数据做更多的工作(用 HTML 标签包装,或者以某种方式格式化数组然后json_encode
它),然后将 HTML 或 JSON 检索到前端文件。然后在 jquery 的 load 或 post 回调方法中,这个 HTML 被写入需要的地方,或者 JSON 以某种方式转换为 HTML 并再次写入 HTML 中的某个位置。
我想知道我是否使用任何已知的架构模式。或者哪种架构模式最接近所描述的方法?