2010-05-24 3 views

답변

1

이 그것이 큰 아니라, 내가 생각할 수있는 최초의 예이지만, 그것은 당신에게 아이디어 제공 : 누군가가 PHP에 그 예를 번역 할 수 있다면 그 역시 도움이 될 것입니다이

$db = new Database(); 
$filteredList = $db->select() 
      ->from('my_table') 
      ->where('id', 9) 
      ->run() 
      ->filter(function($record){ 
      // apply some php code to filter records 
     }); 

나 '를 유창한 인터페이스를 사용하여 일부 ORM을 사용하여 데이터베이스를 쿼리 한 다음 얻은 레코드 세트에 일부 필터를 적용합니다.

public function filter ($callback) 
{ 
    return array_filter($this->recordSet, $callback); 
} 

당신이 아이디어를 얻을을 수행하십시오 run() 방법이 같을 수있는 filter() 방법이있는 레코드 집합 개체를 반환 상상?

+0

개체가있는 중첩 폐쇄에 대한 구체적인 예를 제공 할 수도 있습니까? 원래 포스터가 제공 한 링크에서 허용되는 대답은 다음과 같은 예를 보여줍니다. 'Database .ConnectionString (cs => cs.User ("name"); .Pass ("xxx")) . 시간 초과 (100); ' PHP로 어떻게 하시겠습니까? 지금까지 제가 시도한 바에 따르면 PHP에서이 구문을 모방 할 수 없습니다. – qrazi

+0

문제를 이해할 수 있는지 또는 Java에서 어떻게 해결되는지 확실하지 않습니다. 그러나, 나는 PHP에서 그것의 주위에 어떤 방법이 있다고 확신한다. (그것이 자바에서 어떻게 행해지는 것과 다를지라도). –

+0

사실 C#입니다. 나는 Page Object 패턴을 사용하여 Selenium과 PHPUnit의 기능 테스트를하고있다. 페이지 객체를 유창하게 사용하고 싶습니다. 그래서 내가 같은 종류의 팝업 (pageC)을 사용하는 pageA 객체와 pageB 객체가 있다고 가정 해 보겠습니다. 팝업을 닫을 때 반환 할 객체는 무엇입니까? C# 예제에서는 중첩 된 클로저로 인해 걱정할 필요가 없습니다. 위의 예에서는 팝업을 닫을 때 닫음을 종료하고 pageA 또는 pageB를 계속 진행한다는 것을 의미합니다. – qrazi