정확히 같은 방법으로 여러 라이브러리 클래스를 사용했습니다. 코딩의 두 가지 중요한 측면에 대해 조금 더 배울 것입니다. 형질과 건조.PHP 특성 - 특성에 정의 된 메서드를 사용할 수 없습니다.
나는 다음과 같은 특성을 가지고 :
<?php
namespace App\Berry;
trait Lib
{
public function getIDs()
{
$oClass = new \ReflectionClass(get_called_class());
$aConstants = $oClass->getConstants();
foreach($aConstants as $sKey => $mValue)
{
if(!is_int($mValue))
{
unset($aConstants[$sKey]);
}
}
return array_values($aConstants);
}
}
다음 클래스 :
namespace App\Berry;
use Lib;
class postType
{
const POST_TYPE_BLOG_ID = 1;
const POST_TYPE_BLOG_LABEL = __('blog', 'lib');
const POST_TYPE_PAGE_ID = 2;
const POST_TYPE_PAGE_LABEL = __('page', 'lib');
const POST_TYPE_NEWS_ID = 3;
const POST_TYPE_NEWS_LABEL = __('news', 'lib');
}
이 그리고 내 PicturesController
클래스에서이처럼 호출 오전 :
$cPostTypesLibrary = new postType();
$this->set('aPostTypes', $cPostTypesLibrary->getIDs());
를 이제 나에게, 이것은 정확히 정확히 내가하는 말처럼 보인다. # 4 (사용에 관해서는 docs) 내가 가진 유일한 차이점은 내가 여기 실종 무엇 cannot use class because it is not a trait
을 얻기 때문에 내 클래스의 use
외부를 가지고있다
여러 특성)?
좋아요. 내 게시물에 링크 된 질문을 보았습니다. 클래스가 동일한 네임 스페이스에 있지 않을 때 클래스 정의 내에서 '사용'을 추측하고 있습니까? –
아니요, _trait_ 일 때 클래스 정의 안에 넣고 그 클래스가 그 특성을 사용하게하고 싶습니다. _class_를 사용하려면 _outside_하지만 클래스를 참조 할 때마다 클래스의 정규화 된 네임 스페이스를 입력하고 싶지는 않습니다. –
좋아, 고마워! 지금은 이해. –