laravel 아래 trait 의 사용 코드 인 스 턴 스 상세 설명
오늘 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 의 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.