2012-02-08 3 views
14

나는 MyClass라는 클래스가 있습니다. 그것은 app/Lib/MyDir/MyClass에 있습니다. 응용 프로그램 : uses()를 사용하여로드하려고하지만 작동시키지 못합니다.CakePHP 2.X - app/Lib 디렉토리에 커스텀 클래스로드하기

나는 통해로드 할 CakePHP는 1.3 :

App::import('Lib', 'MyDir/MyClass'); //this still works in CakePHP 2.1 

CakePHP는 2.1 내가 할 노력하고있어에서 : 나는 '새'로하려고하면

App::uses('MyClass', 'Lib/MyDir'); 

가 MyClass에까지 내가 클래스 가져 오기 ' MyClass '을 찾을 수 없습니다.

사용자 정의 Lib 클래스에서 App :: uses를 사용할 수 있습니까? 나는 'App :: import ('Lib ','MyDir/MyClass ');'를 사용하면 App :: import()를 계속 사용할 수 없다. 코드 경로에 2 배가 나타납니다. lib/Cake/Core/App.php의 '클래스를 재사용 할 수 없습니다'오류가 발생합니다. 531

무엇이 잘못 되었나요?

편집 : 그렇게하면 App :: uses ('MyClass', 'MyDir'); 그것은 작동합니다. 그게 어떻게 behaive 해야하는지 모르겠지만 버그를보고.

+0

문제를 해결해야하는 다음과 같은 커밋을 발견했습니다 (위의 사용법을 적용 할 것입니다). 일단 릴리스로 만들면이 질문을 업데이트 할 것입니다. https://github.com/cakephp/cakephp/commit/8ed4876830546593f20db6c7e9aed299aa76a80a – rynop

+0

** 누구든지 googles **이 파일에는 동일한 이름의 클래스가 포함되어 있는지 확인하십시오. [이 답변에 대한 자세한 내용] (예 : http://stackoverflow.com/questions/19120409/cakephp-unable-to-load-class-from-app-lib/37231878#37231878) –

답변

20

App::uses('MyClass', 'MyDir'); 

을 시도 했습니까? "Lib"그 자체가 기본 디렉토리로 볼 수 있기 때문에

추신 : 코어와 비슷한 하위 폴더 (패키지)에있는 모든 내용을 Lib 안에 그룹화하기로되어 있습니다.

+0

예. 그러나 그것은 직관적이지 않습니다. http://book.cakephp.org/2.0/ko/core-utility-libraries/app.html#App::uses에는 'Lib'의 예제도 있습니다. 네, 모든 것을 하위 폴더에 넣으려고합니다. 하위 폴더 (그냥 응용 프로그램/Lib/MyClass.php에 있음)에있는 Lib 디렉토리에 클래스가 없다는 것을 말합니다 .-- uses()를 사용하여로드 할 수 없습니까? – rynop

+0

예, 있습니다. 그것은 단지 App :: uses ('MyClass', 'Lib')보다 낫다. 하지만 피해야합니다 :) – mark

+0

나는 cakephp 2.5.4 버전에서 일하고 있습니다. 다른 Lib 클래스에서 하나의 Lib 클래스를 가져와야합니다. 예 : for : Lib 폴더 아래에 Search.php 클래스가 있고 Lib/Google 폴더 아래에 GooglePlus.php 클래스가 있습니다. Search.php에서 GooglePlus.php 파일을 사용해야하지만 작동하지 않습니다. 나는 앱을 시험해 보았다. http://ibm.com/library/tutorial/lib/library/app.html에 설명 된 빌드 기능을 사용하여 Lib 클래스를 등록했다. 하나의 lib 클래스를 다른 클래스에서 어떻게 사용합니까? 아니면 가능하지 않다면 대체 접근 방식은 무엇입니까? – Dashrath

관련 문제