목차
교리 단체에서 특성을 사용합니다
.
특성은 인터페이스와 혼동되어서는 안됩니다. 인터페이스는 객체가 할 수있는 일을 나타내는 계약이지만, 특성은 물체에 할 수있는 능력을 제공합니다.
- .
- PHP 5.4.0 이후 PHP는 "TRACITS"라는 코드를 재사용하는 예쁜 방법을 지원합니다. 이는 자신을 반복하지 않기 위해 다른 클래스에 포함시킬 수있는 일련의 방법입니다. 이전에 게시 된 itepoint 게시물에서 특성에 대한 자세한 내용을 읽을 수 있습니다.
-
오늘, 나는 그들이 Symfony 환경에서 교리 orm과 함께 어떻게 사용할 수 있는지 보여 드리겠습니다. -
우리가 볼 수 있듯이, 기본 메소드 SayHello ()는 A 및 B 클래스에서 사용 명령문으로 구현 된 특성 내부에서 선언됩니다. 쉽지? 이 예는 실제로 짧지 만 특성으로 작업 할 기본 지식을 제공해야합니다. - 많은 사람들이 특성과 인터페이스의 차이를 보지 않는다는 사실에 대해 경고 할 수 있습니다. 실용적인 설명은 다음과 같습니다

주석 엔티티
동일한 속성 $ createat 및 $ updatedat가 두 클래스에 모두 포함됩니다. 이것은 건조하지 않습니다. 특성 이이 코드를 청소하는 데 도움이 될까요?
2 단계 : 특성을 만듭니다
<span><span><?php </span></span><span><span>trait ExampleTrait { </span></span><span> <span>public function sayHello() { </span></span><span> <span>echo "Hello"; </span></span><span> <span>} </span></span><span><span>} </span></span><span> </span><span><span>class A { </span></span><span> <span>use ExampleTrait; </span></span><span><span>} </span></span><span> </span><span><span>class B { </span></span><span> <span>use ExampleTrait; </span></span><span><span>} </span></span><span> </span><span><span>$one = new A(); </span></span><span><span>$one->sayHello(); /* return `Hello` */ </span></span><span> </span><span><span>$two = new B(); </span></span><span><span>$two->sayHello(); /* return `Hello`, too */</span></span>
로그인 후 복사
로그인 후 복사
주석 엔티티
완료! 명령 줄을 사용해 봅시다. 먼저 데이터베이스에서 엔티티를 만들어 봅시다 :
<span><span><?php </span></span><span><span>namespace Blog<span>\AppBundle\Entity</span>; </span></span><span> </span><span><span>use Doctrine<span>\ORM\Mapping</span> as ORM; </span></span><span> </span><span><span>/** </span></span><span><span> * @ORM\Table(name="comment") </span></span><span><span> * @ORM\Entity(repositoryClass="Blog\AppBundle\Entity\CommentRepository") </span></span><span><span> */ </span></span><span><span>class Comment </span></span><span><span>{ </span></span><span> <span>/** </span></span><span><span> * @ORM\Column(name="idComment" type="integer") </span></span><span><span> * @ORM\Id() </span></span><span><span> * @ORM\GeneratedValue(strategy="AUTO") </span></span><span><span> */ </span></span><span> <span>private $id; </span></span><span> </span><span> <span>/* Other properties you need in your entity */ </span></span><span> </span><span> <span>/** @ORM\Column(name="created_at" type="datetime") */ </span></span><span> <span>private $createdAt; </span></span><span> </span><span> <span>/** @ORM\Column(name="updated_at" type="datetime") */ </span></span><span> <span>private $updatedAt; </span></span><span> </span><span> <span>/* Getters & Setters */ </span></span><span><span>}</span></span>
로그인 후 복사
더 나아가
현재, Symfony 구에서 많은 번들과 확장은 이러한 일을하는 방식을 고수하는 경향이 있습니다. Knplabs의 교리 적 비하비어 라이브러리는 엔티티와 리포지토리를위한 훌륭한 특성 모음을 제공합니다. 같은 마음의 상태에서, 나는 당신이 잘 알려진 교리 혁신 번들, 특히 타임 스탬블 동작 확장에 관한 모든 것을 심도있게 보는 것이 좋습니다.
.
최종 생각
특성은 흡수하기가 어렵지 않습니다. 그들은 더 가볍고 유연한 코드를 생산하는 훌륭한 방법입니다. 그들을 남용하지 않도록주의하십시오. 때로는 고유 한 클래스 구현을 구성하는 것이 좋습니다. 앱을 올바르게 디자인하기 위해 충분한 시간을 소비하는 것이 얼마나 중요한지 강조 할 수 없습니다. 그들이 당신을 도울 수 있다고 생각한다면 그들에게 가십시오. 당신의 것을 만들고, 테스트하고 당신이 그들을 어떻게 사용했는지 알려주세요!
<span><span><?php </span></span><span><span>// src/Blog/AppBundle/Entity/Traits/TimestampableTrait.php </span></span><span> </span><span><span>namespace Blog<span>\AppBundle\Entity\Traits</span>; </span></span><span> </span><span><span>use Doctrine<span>\ORM\Mapping</span> as ORM; </span></span><span> </span><span><span>trait TimestampableTrait </span></span><span><span>{ </span></span><span> <span>/** </span></span><span><span> * <span>@var datetime $createdAt </span></span></span><span><span> * </span></span><span><span> * @ORM\Column(name="created_at", type="datetime") </span></span><span><span> */ </span></span><span> <span>private $createdAt; </span></span><span> </span><span> <span>/** </span></span><span><span> * <span>@var datetime $updatedAt </span></span></span><span><span> * </span></span><span><span> * @ORM\Column(name="updated_at", type="datetime") </span></span><span><span> */ </span></span><span> <span>private $updatedAt; </span></span><span> </span><span> </span><span> <span>/** </span></span><span><span> * Get createdAt </span></span><span><span> * </span></span><span><span> * <span>@return datetime </span></span></span><span><span> */ </span></span><span> <span>public function getCreatedAt() </span></span><span> <span>{ </span></span><span> <span>return $this->createdAt; </span></span><span> <span>} </span></span><span> </span><span> <span>/** </span></span><span><span> * Set createdAt </span></span><span><span> * </span></span><span><span> * <span>@param datetime $createdAt </span></span></span><span><span> */ </span></span><span> <span>public function setCreatedAt($createdAt) </span></span><span> <span>{ </span></span><span> <span>$this->createdAt = $createdAt; </span></span><span> </span><span> <span>return $this; </span></span><span> <span>} </span></span><span> </span><span> <span>/** </span></span><span><span> * Get updatedAt </span></span><span><span> * </span></span><span><span> * <span>@return datetime </span></span></span><span><span> */ </span></span><span> <span>public function getUpdatedAt() </span></span><span> <span>{ </span></span><span> <span>return $this->updatedAt; </span></span><span> <span>} </span></span><span> </span><span> <span>/** </span></span><span><span> * Set updatedAt </span></span><span><span> * </span></span><span><span> * <span>@param datetime $updatedAt </span></span></span><span><span> */ </span></span><span> <span>public function setUpdatedAt($updatedAt) </span></span><span> <span>{ </span></span><span> <span>$this->updatedAt = $updatedAt; </span></span><span> </span><span> <span>return $this; </span></span><span> <span>} </span></span><span><span>}</span></span>
로그인 후 복사
교리 단체의 특성은 여러 상속을 지원하지 않는 PHP와 같은 언어로 코드를 재사용하는 방법을 제공합니다. 추가 기능을 제공하기 위해 다른 클래스에 삽입 할 수있는 재사용 가능한 코드 스 니펫을 만들 수 있습니다. 이로 인해 여러 클래스에서 코드를 복제하는 것을 피할 수 있으므로 클리너가 클리너, 유지 관리 가능한 코드로 이어질 수 있습니다. 특성은 또한 사용 된 클래스의 방법을 무시하는 데 사용될 수 있으며, 유연한 방식으로 동작을 수정하기위한 강력한 도구를 제공합니다.
위 내용은 교리 단체에서 특성을 사용합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
Repo : 팀원을 부활시키는 방법
4 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
R.E.P.O. 파일 저장 위치 : 어디에 있고 그것을 보호하는 방법은 무엇입니까?
3 몇 주 전
By DDD

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7315
9


자바 튜토리얼
1625
14


Cakephp 튜토리얼
1348
46


라라벨 튜토리얼
1260
25


PHP 튜토리얼
1207
29



Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법
