2011-12-11 2 views
-2

지금 당장 페이스 플로우 그래프 API에서 데이터를 다루는 문제를 해결하기 위해 노력하고 있습니다. 또는 양식 제출을 통해 수동으로 사용자가 제공 한 문제를 해결하려고합니다. 나는 현재는 수동으로 제출 차지하지 클래스를 설정하고있어 방법이 있습니다, 간단하게하려면 여기두 소스 중 하나에서 객체의 값을 설정하는 방법

class user { 

public $collegemajor; 

public function __construct($collegemajor) 

$this->collegemajor = $collegemajor; 

$collegemajor = isset($user_profile['education'][0]['concentration'][0]['name']) ? $user_profile['education'][0]['concentration'][0]['name'] : null ; 
$objUser = new user ($collegemajor); 

} 

을 그리고 것은 내가 할 노력하고있어 대략이다. 명심하십시오 나는 아직 앱에서 getter 나 setter 메소드를 사용하지 않았습니다. 목표는 $ collegemajor를 그래프 API 값으로 사용할 수 있거나 API 데이터를 사용할 수없는 경우 게시 된 양식 제출으로 설정하는 것입니다. API에서 데이터를 사용할 수 없다고 가정하면 사용자는 이미 양식을 통해 메이저를 제출했습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 그것은 getter 및 setter 메서드가 있습니까? 그렇다면 나는 그것을 어떻게 만들지에 대해 분실했다. 이 라인에 추가하는 방법에 대한 방법 :

$collegemajor = isset($user_profile['education'][0]['concentration'][0]['name']) ? $user_profile['education'][0]['concentration'][0]['name'] : null ; 

양식 제출의 값이 존재하는 경우,이 같은 것입니다 :

$_POST['major']; 

여기 아래에있는 내 실패 시도입니다. 제출 된 양식을 계획대로 제출하지 않았습니다. 어떤 도움이라도 대단히 감사하겠습니다 :

class user { 

public $collegemajor; 

public function __set($collegemajor, $value) { 
     if (isset($this->collegemajor)) { 
      return $this->collegemajor; 
     } else { 
      return $_POST['major']; 
     } 
    } 

public function __construct($collegemajor) { 

$this->collegemajor = $collegemajor; 

} 

public function echos() { 
    echo "$this->collegemajor"; 
    } 
} 

?> 

답변

0

당신의 물건은 더 많은 책임을 져야합니다. 사용자 개체는 주어진 사용자와 관련된 데이터 만 관리해야하며 데이터를 가져 오는 다양한 방법을 구현해서는 안됩니다.

올바른 방법은 소스에서 데이터를 가져 와서 사용자 클래스가 사용할 표준 형식으로 제공하는 클래스를 만드는 것입니다. 이렇게하면 사용자 관리 작업이 사용자 클래스로 데이터를 가져 오는 작업에서 분리되어 더 나은 OOP 연습으로 간주됩니다.

관련 문제