PHP를 통해 프레임 워크를 사용하지 않고 웹 응용 프로그램을 개발했습니다. 내 응용 프로그램에는 주로 두 가지 유형의 파일이 있습니다 - 프론트 엔드와 백엔드. 첫 번째 유형은 HTML, PHP, CSS, JavaScript (jQuery) 및 백엔드 - PHP 만 포함 할 수 있습니다. 나는 데이터베이스와의 연결과 하나의 클래스 사용자의 웹 세션 (PHP의 기능 session_start()
)를 생성 session
하게 pg_db_connection
을 하나 개의 클래스를 불러 "사용자 이름"과 같은 몇 가지 변수를 유지 한의 users
데이터베이스 테이블 등어떤 아키텍처 패턴을 사용하고 있습니까?
pg_db_connection
에서 사용자의 ID 클래스는 에서 얻은 데이터베이스 자원 인 $link
속성을가집니다. 이 클래스에는 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
에서 더 많은. 웹 사용자가 액세스 할 수있는 권한이있는 파일은 데이터베이스에 저장되므로 데이터베이스에 연결해야합니다. 이 프론트 엔드 파일에 동적 데이터를로드하려면 jQuery의 post
또는 load
함수를 사용하고 하나의 백엔드 파일을 호출하십시오. 이 백엔드 파일에는 대부분 pg_db_connection
이 포함되어 있습니다. 필요한 경우 일부 데이터베이스 쿼리를 실행합니다. HTML 태그로 래핑하거나 배열을 어떻게 든 포맷 한 다음 json_encode
으로 포맷 한 다음 HTML 또는 JSON을 검색합니다. 프론트 엔드 파일. 그런 다음 jquery의로드 또는 포스트 콜백 메소드에서이 HTML이 필요한 곳에 쓰여지거나 JSON이 어떻게 든 HTML로 변형되고 HTML의 어딘가에 다시 작성됩니다.
알려진 아키텍처 패턴을 사용하고 있는지 궁금합니다. 또는 어떤 아키텍처 패턴이 설명 된 접근법에 가장 가깝습니까?
정상적인 OOP처럼 보입니다. 특정 아키텍처 패턴을 볼 수 없습니다. StackOverflow에 대한 주제를 벗어나기 때문에 질문이 왜 떨어지고 있는지 궁금해하는 경우. 이러한 종류의 질문에는 [CodeReview] (http://codereview.stackexchange.com/)가 있습니다. – apokryfos
@apokryfos 안녕하세요! 이 질문은 코드 검토에 대한 주제와 관련이 없으므로 코드 자체에 대한 속성 ("아키텍처 패턴")이 아닌 검토/개선을 요구하지 않기 때문입니다. 사용자를 가리 키기 전에 SE 사이트의 주제가 무엇인지 알아야합니다! – syb0rg