laravel 아래 trait 의 사용 코드 인 스 턴 스 상세 설명

3230 단어 laraveltrait
머리말
오늘 laravel 의 연습 항목 을 정리 할 때 자신의 코드 구조 에 중복 되 는 코드 가 많다 는 것 을 발견 했다.그래서 laravel 프레임 워 크 의 코드 재 활용 체 제 를 검색 했다.Trait 의 존 재 를 알 고 배 워 서 사 용 했 습 니 다.
Trait 에 대한 이해
Trait 는 PHP 5.4 가 도입 한 신 개념 으로 정의 방식 은 class 의 정의 방식 과 유사 하 다.그러나 클 라 스 의 완전 성 은 갖 추 지 못 했다.Trait 는 class 의 일부분 처럼 보 입 니 다.그것 은 관련 이 없 는 두 클 라 스 로 하여 금 유사 한 행 위 를 할 수 있 게 한다.
Trait 의 간단 한 사용
새로운 Trait
저 는 데이터베이스 작업 에 있어 서 eloquent 모델 을 사 용 했 기 때문에 다 중 표 조회 시 표 관 계 를 지정 해 야 합 니 다.여러 표 에서 hasmany()를 사용 하여 메 인 표 와 연결 되 었 습 니 다.그래서 이 코드 블록 을 따로 꺼 내 HasInvoices 라 는 Trait 에 넣 었 습 니 다.파일 디 렉 터 리 는 App\Traits 에 있 습 니 다.Trait 이름과 파일 이름 이 같 아야 합 니 다.
在这里插入图片描述
Trait 도입
Trait 의 도입 은 매우 간단 합 니 다.코드 블록 이 필요 한 class 에서 use Trait 이름 을 사용 하면 됩 니 다.
在这里插入图片描述
머리 는 use 로 Trait 를 도입 해 야 한 다 는 것 을 기억 하 세 요.
在这里插入图片描述
Trait 에 대한 용법
위 에서 말 한 용법 에서 분명히 사용 하 는 것 은 똑 같은 코드 블록 이다.유사 하지만 완전히 다른 코드 블록 재 활용 에 대해 서 는'차이 점'을 판단 하여 서로 다른 결 과 를 낼 수 있다.초기 코드 가 다음 과 같다 고 가정 하면 인류 A,동물 류 B,기계 인류 C.모두 원 가 를 지불 하고 행 위 를 집행 하 는 능력 을 가지 고 있다.그러나 서로 상속 관 계 를 갖 추 지 못 해 상속 을 사용 하 는 것 은 적절 하지 않다.

<?php
class A{
 public $action = "  ";
 public $money = 200;
 public function action(){
  echo "  ".$this->money.$this->action."
"; } } class B{ public $action = " "; public $time = 2; public function action(){ echo " ".$this->time." ".$this->action."
"; } } class C{ public $action = " "; public $time = 30; public function action(){ echo " ".$this->time." ".$this->action."
"; } } $a = new A; $b = new B; $c = new C; echo $a->action(); echo $b->action(); echo $c->action();
실행 결과
在这里插入图片描述
action 함 수 를 Trait 에 제출 하고 코드 를 수정 합 니 다.

trait D{
 public function action(){
  echo "  ".(property_exists($this,'time')? $this->time."  ":$this->money)
   .$this->action."
"; } } class A{ use D; public $action = " "; public $money = 200; } class B{ use D; public $action = " "; public $time = 2; } class C{ use D; public $action = " "; public $time = 30; } $a = new A; $b = new B; $c = new C; echo $a->action(); echo $b->action(); echo $c->action();
실행 결과
在这里插入图片描述
여기 서 laravel 아래 trait 의 사용 코드 인 스 턴 스 에 대한 상세 한 설명 은 여기까지 입 니 다.더 많은 laravel 아래 trait 의 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기