>  기사  >  백엔드 개발  >  Laravel 5.5의 해당 인터페이스를 사용하는 방법은 무엇입니까?

Laravel 5.5의 해당 인터페이스를 사용하는 방법은 무엇입니까?

php中世界最好的语言
php中世界最好的语言원래의
2017-12-20 14:18:561860검색

우리는 Laravel 5.5가 매우 중요한 버전이라는 것을 알고 있습니다. Laravel 5.5의 라우팅에 Responsable 인터페이스라는 새로운 반환 유형이 추가되었습니다. 오늘은 자세하게 소개할 수 있는 사례를 들고 오겠습니다.

예제를 보세요:

use Illuminate\Contracts\Support\Responsable;
 
class ExampleObject implements Responsable
{
 public function construct($name = null)
 {
  $this->name = $name ?? 'Teapot';
 }
 
 public function status()
 {
  switch(strtolower($this->name)) {
   case 'teapot':
    return 418;
   default:
    return 200;
  }
 }
 
 public function toResponse()
 {
  return response(
   "Hello {$this->name}",
   $this->status(),
   ['X-Person' => $this->name]
  );
 }
}


라우트에서 이 예제 객체를 사용할 때 다음을 수행할 수 있습니다:

Route::get('/hello', function() {
 return new ExampleObject(request('name'));
});


Laravel Framework에서 Route 클래스는 이제 다음을 준비할 때 이를 확인할 수 있습니다. 응답 콘텐츠(책임 인터페이스 구현) 유형:

if ($response instanceof Responsable) {
 $response = $response->toResponse();
}


여러 응답 유형을 사용하여 AppHttpResponses 네임스페이스 에서 응답 콘텐츠를 구성하는 경우 다음 예를 참조할 수 있습니다. 이 예는 게시물(여러 인스턴스의 컬렉션)을 지원하는 방법을 보여줍니다.

posts = $posts;
 }
 
 public function toResponse()
 {
  return response()->json($this->transformPosts());
 }
 
 protected function transformPosts()
 {
  return $this->posts->map(function ($post) {
   return [
    'title' => $post->title,
    'description' => $post->description,
    'body' => $post->body,
    'published_date' => $post->published_at->toIso8601String(),
    'created' => $post->created_at->toIso8601String(),
   ];
  });
 }
}

위는 간단한 애플리케이션 시나리오를 시뮬레이션하기 위한 기본 예일 뿐입니다. JSON 응답을 반환하지만 응답 레이어가 단순히 내장된 응답을 사용하지 않기를 바랍니다. 객체를 JSONize하기 위한 구현에서 일부 콘텐츠 처리를 수행합니다. 위의 예에서는 AppHttpResponsesResponse 클래스가 몇 가지 기본 기능을 제공할 수 있다고 가정합니다. 물론 응답 레이어에는 컨트롤러에서 직접 변환을 수행하는 대신 일부 변환 코드(Fractal과 유사)가 포함될 수도 있습니다.

위 예제에서 PostIndexResponse 클래스와 협력하는 컨트롤러 코드는 다음과 유사합니다.


이 사례를 읽으신 후 메서드를 마스터하신 것으로 생각됩니다. 더 흥미로운 내용을 보려면 다른 관련 기사를 주목하시기 바랍니다. PHP 중국어 웹사이트에서!

관련 읽기:

이진 검색에 대한 자세한 설명과 Python의 빠른 정렬 예제

php 재귀 및 비재귀 구현을 위한 이진 검색 예제 코드

php의 이진 검색에 대한 자세한 설명

위 내용은 Laravel 5.5의 해당 인터페이스를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.