코어 포인트 :
PHP의 트랜스 듀서 패키지를 사용하면 이름의 이니셜을 활용하거나 사용자 목록에서 미성년자를 제거하는 등 다양한 방식으로 데이터를 변환 할 수 있습니다. 변환은 재사용을 위해 단일 트랜스 듀서로 결합 될 수 있습니다.
예 진행하기 전에 작곡가를 통해 트랜스 듀서 패키지를 설치해야합니다.
우리는 다음 예제에 간단한 사용자 클래스를 사용합니다.
우리는함수와 유사합니다. 우리는 호출 가능 함수를 전달합니다.이 경우 사용자 이름 초기를 대문자로 변합니다.
reduce
함수는 PHP의
트랜스 듀서를 적용하기 위해 함수를 사용합니다. 데이터를 첫 번째 매개 변수로, 트랜스 듀서를 두 번째 매개 변수로 사용합니다.데이터 매개 변수와 동일한 유형의 값을 반환합니다 (이 경우 배열). 배열을 엄격히 출력 해야하는 경우 도 사용할 수도 있습니다.
를 사용하여 출력을 문자열로 변환하거나
를 사용하여 출력을 특정 유형으로 변환 할 수 있습니다. 자세한 내용은 문서를 참조하십시오.
<code class="language-bash">composer require mtdowling/transducers</code>
<code class="language-php">class User { public $id; public $name; public $age; public function __construct($id, $name, $age) { $this->id = $id; $this->name = $name; $this->age = $age; } public function __toString() { return sprintf("\n%d - %s - %d", $this->id, $this->name, $this->age); } } // 示例数据 $data = [ new User(1, "younes", 24), new User(2, "youssef", 26), new User(3, "hamza", 25), new User(4, "ismail", 17), ];</code>
<code class="language-php">use Transducers as t; $uppercase = t\map(function($user) { return new User($user->id, ucfirst($user->name), $user->age); }); $result = t\xform($data, $uppercase); var_dump($result);</code>함수는 php의
함수와 유사합니다. 함수는 트랜스 듀서 목록에서 트랜스 듀서를 생성합니다. filter
array_filter
이제 우리는이 표준에 따라 데이터를 줄이기 위해 언제든지 재사용 가능한 트랜스 듀서 조합을 가지고 있습니다. 사용 가능한 축소 기능 목록은 문서를 확인하십시오. comp
uppercase
: 트랜스 듀서의 초기 값을 반환하는 함수. 초기 값이 제공되지 않으면 첫 번째 호출에서만 호출됩니다. map
: removeMinors
함수는 통화 스택에서 최종 결과를 빌드하는 데 사용됩니다. filter
<code class="language-php">// 输出 array(4) { [0]=> object(User)#14 (3) { ["id"]=> int(1) ["name"]=> string(6) "Younes" ["age"]=> int(24) } [1]=> object(User)#15 (3) { ["id"]=> int(2) ["name"]=> string(7) "Youssef" ["age"]=> int(26) } [2]=> object(User)#16 (3) { ["id"]=> int(3) ["name"]=> string(5) "Hamza" ["age"]=> int(25) } [3]=> object(User)#17 (3) { ["id"]=> int(4) ["name"]=> string(6) "Ismail" ["age"]=> int(17) } }</code>
init
함수는 result
객체 인스턴스를 반환하여 스톱 포인트를 나타냅니다. result
step
take
결론
이 기사에서는 트랜스 듀서 (Transducers)라는 기능 프로그래밍 세계의 새로운 측면을 이해합니다. 데이터 변환이 쉬운 경우에도 트랜스 듀서의 목적을 검토합니다. 또한 트랜스 듀서의 가치를 더 잘 보여주기 위해 몇 가지 예를 검토했습니다. 이제 개발자 도구 상자에 새로운 도구가 있거나 최소한 트랜스 듀서 개념을 더 잘 이해하고 있습니다.
<code class="language-php">// ... $result = t\to_array($data, $uppercase); // ...</code>
<code class="language-php">use Transducers as t; $uppercase = t\map(function($user) { return new User($user->id, ucfirst($user->name), $user->age); }); $result = t\to_string($data, $uppercase); var_dump($result);</code>의 트랜스 듀서에 대한 FAQ
<code class="language-bash">composer require mtdowling/transducers</code>
예, 트랜스 듀서는 모든 PHP 프레임 워크와 함께 사용할 수 있습니다. 특정 프레임 워크 기능에 의존하지 않는 일반적인 데이터 처리 기술입니다. 그러나 일부 프레임 워크는 트랜스 듀서를 처리하기위한 자체 유틸리티를 제공하여 사용하기 쉽게 할 수 있습니다.
위 내용은 PHP의 트랜스 듀서가 쉽게 만들어졌습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!