나는 프로 시저 방식으로 PHP를 프로그래밍하는 데 사용. OOP에 대해 더 많이 배우고 싶기 때문에 새로운 프로젝트를 위해 OOP 방식으로 PHP를 프로그래밍하기로 결정했습니다.PHP 클래스를 시작할 때 로그인 세션을 확인해야합니까?
어쨌든 사용자가 로그인해야하는 프로젝트가 있다고 가정 해 봅니다. login.php에서 사용자가 올바른 사용자 이름과 암호를 입력하면 index.php로 리디렉션되고 product 테이블에서 모든 제품을로드하고 index.php에 멋지게 표시합니다.
login.php
session_start();
...
if (loggedCorrect($user, $password)) {
$_SESSION['loggedinuser'] = $user;
//redirect to index.php
}
index.php를
session_start();
if (isset($_SESSION['loggedinuser']) {
//select fields from products table and display them
...
}
:
전에이이었다 내가 어떻게했는지, login.php에서 나는 다음과 같은 코드가 있습니다
그래서 OOP에서는 다음과 같이됩니다 :
login.php
session_start();
$user = new User($user, $password);
if ($user->hasCorrectLogin()) {
$_SESSION['loggedinuser'] = $user->getUsername();
//redirect to index.php
}
index.php를
session_start();
if (isset($_SESSION['loggedinuser']) {
$products = new Products();
//display all products
}
제품 클래스
class Products {
private $productArray;
...
__construct() {
//select all products from mySQL table then put every product in productArray
}
...
}
내 질문은 다음과 같습니다
개체를 시작할 때 (내 경우 제품). 로그인 세션을 확인해야합니까? 그렇다면 __contruct 내부에서해야합니까? 또는 "클래스 제품"라인 이전에해야합니까?
나는 또한 x 분마다 실행될 cronjob.php가 있습니다. 실행 중에는 제품과 같은 일부 개체가 만들어지고 분석됩니다. 그래서 로그인 세션 확인이 필요하다면 cronjob이 세션을 지원하지 않기 때문에이 방법을 만드는 방법을 모르겠습니다.
어떻게 'loggedCorrect'를 호출합니까? 나는 당신이'if ($ user-> hasCorrectLogin()) {'이 그들과 관련이 있다는 것을 알았습니까? –
객체 지향 프로그래밍에서는 Separation of Concerns라는 원리를 알고 있어야합니다. 제품에 대한 클래스 모델이 사용자가 로그인했는지 여부를 신경 써야하는 이유는 무엇입니까 ?? 응용 프로그램에서 이미 로그인 한 세션을 확인한 다음 제품을 표시해야합니다. – Rottingham
@ Fred-ii- loggedCorrect는 함수이며 기능은 $ user-> hasCorrectLogin()과 같습니다. 단지 하나는 절차 적 방법이고 다른 하나는 OOP입니다. – Josh