2016-07-28 6 views
1

자동로드를 사용하여 클래스를 내 확장 프로그램에 호출하는 방법. 나는 typo3 7.6을 사용하고 있습니다. 튜토리얼에서 필자는 typo3 7.6에서 ext_emconf.php 파일에서이 작업을 수행 할 수 있음을 알았습니다. ext_emconf.php에서 같은 것을 쓰는 방법 ?? 내 클래스 파일은 Classes/class.x.php에 있습니다. https://docs.typo3.org/typo3cms/ExtbaseFluidBook/a-CodingGuidelines/Index.html자동로드 기능 typo3 7.6

class.x.php가 Extbase의 클래스에 대한 유효한 파일 이름되지 않습니다 :

답변

4

모든 클래스는 자동으로 당신이 코드 규칙을 따르는 등의 자동로드 기능에 등록되어 있습니다. 당신이 ClassX을 만들려면 다음 파일 이름이어야합니다 :

/your_extension/Classes/ClassX.php에게 확장자 이름도 UpperCamelCase에 켜지는지

<?php 

namespace YourName\YourExtension; 

class ClassX { 

} 

참고. 벤더 부분 (예제에서 YourName)에 대해 PHP에서 유효한 모든 것을 선택할 수 있습니다.

지금 당신은

$test = new \YourName\YourExtension\ClassX(); 

귀하의 확장은 분명히 일을 설치해야합니다 당신 클래스에 액세스 할 수 있습니다.

!!! Typo3는 확장 기능을 설치/제거 할 때만 자동로드 캐시를 생성합니다. 당신이 이미 설치된 확장에 새 파일을 추가 할 경우 수동

/typo3temp/autoload/autoload_classmap.php 

가 일치에게 당신의 확장에 ext_autoload.php을 만들 수있는 기본 명명을하지 않는다 클래스의 자동 로딩을 configurate하기 위해이 캐시 파일을 삭제해야합니다. 코드처럼 보이는 내부의

<?php 

return array(
    'Tx_SomeExtension_Someclass' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('some_extension') . 'pi1/someclass.php', 
); 

당신이 TYPO3 7.x의에 대한 개발하는 경우, 오래된 만 성능이 단점을 많이 제공 호환성 확장 지원됩니다 pibased 명심하십시오. 더 이상 pibased 확장을 사용하지 않는 것이 좋습니다.

+0

정말 도움이되었습니다. 하지만 약간 혼란 스럽다. 오토로드 기능을 내 확장 기능의 ext_emconf.php 파일에 쓰는 방법에 대해 혼란 스럽다. 튜토리얼에서 'autoload'=> 배열 ( 'classmap'=> 배열 ('Classes') )을 사용하면 자동로드 기능이이 형식으로 작성되어야합니다.하지만이 클래스 맵은 무엇입니까? 그것은 내 classname, ClassX입니까 ?? – Ques

+0

내 확장 프로그램은 pibase에있는 세 개의 다른 확장 프로그램에 종속되어 있습니다. 그래서 내 임무는 이것들에 새로운 클래스를 개발하고 이러한 클래스를 extbase에있는 내 확장으로 호출해야합니다. 저 좀 도와 주 시겠어요 ? – Ques

+1

autoload 파일의 예제로 내 게시물을 업데이트했습니다. –