포럼
타 CMS나 등등이 좋지만 가장 근본적인 것..
2015.05.05 07:47
XE는 어떠한 기능을 추가하기위해 코어의 코드를 수정하지 않아도 됩니다.
(물론 프로파일러의 모듈의 제작과정에서 슬로우 로그를 자체적으로 기록하게 하는것은 잇엇지만요.)
왜냐하면 각각의 기능이 너무 구분화 잘되어있다고 생각되니깐요.
생각해보면, G모 보드에 어떠한 기능을 추가하기위해서, 아니면 원하는 기능을 만들기 위해서.. 제가알기로는 모든 코어내용을 뜯어내야한다고 들었습니다.(써보진 않았지만, 사용자들의 이야기를 통틀어서요..)
실제로 그 보드의 코어 업데이트시 공지사항에 코드 수정해야할 부분을 직접 알려주기까지 합니다. 사용자가 직접 코드를 수정해야하죠.
물론, XE가 XE으로만 만드는 실력자는 뚝딱 만들겟지만, php만으로 만들던 사용자는 힘들겟죠. 왜냐하면 XE가 자체적으로 사용하는 메소드나 등등이 다르기 떄문이죠.
$oMemberModel = getModel('member');
이러한 것처럼요.
근데 이러한 부분을 어느정도 이해하고 고치면 쉽죠.
저는 오히려 이러한 구조가 좋다고 생각해요. 저번에 의뢰로 만든 모듈이 2가지 되는데, 하나는 익명_$$$ ('$$$'은 랜덤숫자코드)으로 나타나는 모듈을 의뢰 받고 제작해드렸고, 하나는 스케줄을 만들어 드렸습니다.
근데 둘다 조건은 기본적인 코어를 수정하지 않고 행하라였죠..
둘다 제작 했습니다. 스케줄 의뢰 받은건, 파생적으로 만들어서 나왔던 모듈이 스케줄 모듈이고요. 둘다 코어 수정이 필요 없엇고, 앞으로 나올 패치에도 문제 없었죠.
그리고 또 XE가 아주 잘 사용되고 잇는 모듈이 있잖습니까. 바로 ajaxboard..
이러한 기능을 그누나 다른 것에 사용한다 하면.. 아마 그 곳의 코드를 뜯고 뭔가 파일의 추가를 한다거나 메소드가 들어가야 했다던가 했을 것입니다.
ajaxboard의 구조상 잘 뜯어 보시면, XE에서는 글등록의 트리거 삭제 트리거 등등이 있는데, 이를 잘 활용해서 그 액션시 모든 브라우저 보고 잇는 사람들에게 이벤트를 브라우저에서 실행하도록 하여 최근정보를 실시간으로 바꿔주는 역활을 하도록 되어있죠.
이러한 기능을 타 CMS에서 제작할려면 아마 힘들 것 같아요.
실제로 파일을 받고, 코어 파일을 수정해야 작동되는 것들도 많이 있네요.. (플러그인중에서요..)
그런데 XE는 그럴필요가 없죠.
어떠한 이벤트에 자기가 껴들어서 작업 같이 해주고 빠지는 트리거가 많잖아요.
/트리거는 이번주 모듈 심화편에서 잘 다룰 예정입니다./
그리고 애드온으로 간단하게 제작하는 경우도 있구요..
단순 코드 적용시 잘 안된건, XE의 구조를 잘못이해했다던가, 레이아웃의 경우 레이아웃 수정에 CSS까지해서 캐시파일을 불러오게 했다던가, HTML 파일을 잘못 수정했다던가. 자신의 실수가 있었겠죠..
XE는 CMS이기 때문에 다방면의 기능을 한곳에서 사용하기 위한 커뮤니티형입니다. 그렇기 때문에 이것은 XE의 규칙이 있을 수 밖에 없구요.
그 규칙을 잘 이해하고 자신이 잘 사용해야하죠..
쉽게 하고 쉽게 수정이 가능한 것이 있다면 자신에게 맞는 CMS나 사이트 구동기는 그것이겠죠.
자신이 무엇을 원하는지.. 무엇을 해야하는지 이해를 하시고 사용하시는것이 좋고.. 되도 않는 비교나 차이점은 이야기 거론 안하시는게 좋을듯 해요.
난 아무튼 코어수정없이 원하는 기능을 맘대로 만드는 XE최고입니다.
댓글 4
-
기진곰
2015.05.05 11:35
-
BJ람보
2015.05.05 11:38
XE3 도 XE1의 구조에서 좀더 개선 하는 것이기 때문에 비슷할 것 같아요
-
기진곰
2015.05.05 14:28
그래도 최소한 저렇게 객체지향을 하다 만 듯한 구조는 좀 없어지지 않을까요?
(PHP 4.x에서는 싱글턴, 팩토리 패턴 등을 구현하기 어려워서 저렇게 한 듯...)
-
BJ람보
2015.05.05 14:36
뭐 어떻게 나올지는 모르겟지만.. 일딴 XE3베타가 먼저 나와봐야 알겟죠 ㅎ
네, XE가 좀 복잡하긴 해도 대부분의 기능을 코어 수정 없이 구현할 수 있다는 것이 최고의 매력이죠.
아래에 모 블로그 솔루션을 썼더니 변경사항이 바로바로 적용되더라는 글...
아마 코어에 따라오는 파일을 막 변경하고 계셨겠죠?
그 솔루션 보안업데이트가 잦은 것으로 유명한데, 업데이트할 때 어쩌시려고 ㅠㅠ
물론 XE도 처음에는 PHP 4.x부터 지원하도록 만들어진 프레임워크라서
아직까지 남아있는 지저분한 코드가 너무 많은 것이 사실입니다.
예를 들어 위에서 언급하신
$oMemberModel = getModel('member');
이런 거... PHP 5.x의 autoload 기능을 활용한다면
$oMemberModel = new MemberModel();
이렇게 XE에서 제공하는 특별한 함수에 의존하지 않고도 구현이 가능하겠고,
일반적인 PHP 객체지향 문법만 알아도 코드를 이해하는 데 지장이 없겠죠.
(게다가 헝가리안 표기법이라니! 모델이면 당연히 객체 아닌가?)
이런 것들만 좀 정리해도 처음 접하는 분들께 많은 도움이 될 것 같은데,
아마 이제 XE 1.x는 이대로 두고 XE3을 기다려야 할 것 같네요.