1

나는 CMSes의 확장성에 대한 팬입니다. 일부 코드 (일반적으로 PHP)를 업로드하고 CMS 관리 패널에서 권한을 부여하면 실행됩니다.Google App Engine에 확장 가능한 CMS를 설계하는 방법은 무엇입니까?

Google App Engine에서 가능한지 궁금합니다. Google App Engine에 대한 기존 CMSes의 확장 성을 검사하지는 않았지만 플러그인을 지원하는 플러그인이 있다면 그 플러그인이 어떻게 실행되었는지, JS 플러그인인지 또는 Python/Java를 지원하는지 알고 싶습니다. 플러그인도.

답변

1

사실 App Engine 응용 프로그램에서 플러그인을 지원할 때 개념적인 문제가 없습니다. 예를 들어 Java에서는 데이터 저장소 나 memcache (애플리케이션 초기화 단계)에서 플러그인 jar를 메모리로 가져온 다음 필요에 따라 사용자 정의 클래스 로더를 사용하여 플러그인 클래스를로드 할 수 있습니다. 실제로 요청 데이터에서 클래스를로드하고 필요한 경우 즉석에서 평가할 수도 있습니다 (Java 콘솔 AppWrench에서 수행하는 방법).

감사합니다. Pavel.

+0

파이썬에서 동일한 기능을 사용할 수 있는지 알고 계십니까? –

+1

Python은 스크립트 언어이며 eval() 함수를 가지고 있기 때문에 이것이 가능해야합니다. –

2

Google의 Nick Johnson은 blog system for app engine을 작성하는 방법에 대한 전체 블로그 게시물 시리즈를 작성했습니다. 그것이 당신이 원하는 것을하지 않는다면, 나는 당신이 그것을 확장 할 수 있다고 확신하지만, 보통 블로깅 시스템은 대부분의 사람들을위한 CMS를 위해 충분합니다.

+0

멋진 링크! 감사! –

+0

Nick Johnson은 아직 "확장 성"부분에 도달하지 못했지만 그가 추가 할 것이라고 말한 기능 중 하나입니다 –

2

(미안)를 가리키는 공용 예제가 없지만 App Engine 프로젝트 용 Python 플러그인을 만들 수 있음을 확인했습니다. 나는 몇 달 전에 이런 일을하는 프로젝트를 완료했다. .

는 는
exec plugincode in someDict 

는 위 'plugincode은'실행하는 일부 파이썬 코드를 포함하는 문자열이며, someDict이 그것을 실행 전역의 사전입니다 이것은 틀림없이 : 물건의 요점은 파이썬의 한 줄에 온다 eval()을 사용하는 것보다 깔끔합니다. 이 경우 전역 사전에는 plugincode가 시스템과 통신하는 데 사용한 객체의 인스턴스가 포함되어 있습니다. 나는이 (또는 유사한) 접근법에 대한 어떠한 큰 한계도 생각할 수 없다. 예 : plugincode는 클래스를 선언하고 그 클래스의 인스턴스를 콜백 핸들러 등으로 등록 할 수 있습니다.

우리의 경우 우리는 데이터 저장소에 플러그인 코드를 저장하고 적절한 시간에로드했습니다 (예 : 앱이 시작됨).