저는 여전히 올바르게 구사할 수있는 방법을 찾고 있습니다. (저는 원어민이 아닙니다 ...). 싱글 톤 클래스에서 그 클래스의 메서드를 호출하는 함수를 호출하십시오.
그래서 나는 (분명한 이유) 싱글 패턴을 구현하는이 클래스SQL
을 가지고 있고 또한
SQL
의 방법 중 하나를 사용하여 데이터베이스를 쿼리이 기능
checkUsr()
을 보유하고 있습니다.
SQL
클래스에서 checkUsr()
을 호출하지 않는 한 모든 것이 올바르게 작동합니다. 그렇게하면 스크립트가 종료되고 빈 페이지가 표시됩니다. 오류가 반환되지 않고 예외가 throw되지 않습니다 ... 어떻게됩니까? 그리고이 문제를 해결하려면 어떻게해야합니까?
편집 : 여기
일부 코드 : 나는 SQL 클래스 내에서 checkUsr
를 호출 할 때
class SQL
{
public static function singleton()
{
static $instance;
if(!isset($instance))
$instance = new SQL;
return $instance;
}
public function someOtherFun()
{
checkUsr();
}
public function tryLoginAuthor($login, $sha1)
{
// SQL query
}
}
function checkUsr()
{
if (!isset($_SESSION['login']) || !isset($_SESSION['sha1']))
throw new Exception('Not logged in', 1);
$SQL = SQL::singleton();
$res = $SQL->tryLoginAuthor($_SESSION['login'], $_SESSION['sha1']);
if (!isset($res[0]))
throw new Exception('Not logged in', 1);
}
그래서 문제가 발생합니다. 그러나 다른 클래스에서 호출하면 발생하지 않습니다 ...
일부 코드는 좋을 것입니다. $ this-> checkUsr()를 사용하여 checkUsr()을 호출하고 있습니까? – tplaner