포럼
[마감] xeschool 의 모듈 수업을 듣고 모르는 것 질문 받습니다.
2013.08.05 23:23
http://www.xeschool.com/xe/xenote_module_story
여기 들어가 보시면 @우진홈 님의 모듈 강좌가 있습니다.
저도 처음에 여기 보고 공부했구요.
1.4버전 기준의 내용들도 있고 해서 1.7과 완벽히 호환되는건 아닐 수 있으나 아무튼 기본적인것은 거의 호환된다고 보고
제가 사실 라르게덴 님이라던지 세진님 같은 고수는 아닌데 그냥 아는 한도 내에서
기초적인 모듈 개발의 이해를 도울 수 있는 직관적인 부분은 짚어 드릴 수 있지 않을까 해서
..
..
댓글로 xeschool 모듈 강과에 대한 질문 받고 답변 해 드리겠습니다.
아마 @우진홈 님께서도 답변을 해주시리라 믿쑵니다~
무관심도 환영합니다 ㅡ.ㅡ;
댓글 53
-
참치.k
2013.08.05 23:32
-
푸시아
2013.08.05 23:35
xe 공홈 게시판은 너무 심심해서요.. ㅋ
-
똑디
2013.08.06 16:26
푸시아님이 요즘 제2의 송동우님이 되신것 같네요. ^^
-
푸시아
2013.08.06 18:52
저도 질문답변 게시판 끊었어요.
질답 게시판은 세진님이 계십니다.
세진님께서 송동우님의 빈자리를 채워주고 계셔요.
저는 그냥 사람들이 모듈 만들때 기본 설계를 어떻게 해야하는지 감을 잡게 해주려고 그런건데 별로 호응은 없네요~
호응이 없어도 좋습니다~
-
식쵸
2013.10.02 03:16
한때나마 댓글에 짤 넣고 놀았던 적이 있었건만. 요즘은 질문글이 득시글....
-
윈컴이
2013.08.06 20:48
궁금한건 많으나 모바일.. 쿨럭.. -
쿡래빗
2013.08.21 18:30
아음.. 모듈 수업 몇번이나 포기했는지 잘모르겠네요..
모듈수업 듣기전 사전지식이 얼마나 있어야 하는지 궁금합니다!!
-
라르게덴
2013.08.21 21:52
사진지식이 있다면 모듈수업을 들을 필요가 없습니다.
맘편하게 뜯어보시면서 모르는거 찾아보고 비슷한 유형 코딩 보고, 이걸 반복해서 하면 됩니다. ㅎㅎ -
쿡래빗
2013.08.21 22:26
레이아웃제작만 간신히 하는상황에서
곧바로 모듈제작 해보려고 하는데 개념이 잘 이해가 되질 않아서요.
php책도 사고 했는데 영 도움이 되질 않네요...
-
라르게덴
2013.08.21 22:29
@푸시아 님이 자세히 설명해 드릴겁니다. ㅎㅎ
-
장포크
2013.09.18 20:55
저도 동감.
학교에서 들은 기본적인 php개념가지고 구글링하면서 고쳐서 씁니다 ㅎㅎㅎ
제가 아직 무에서 유를 창조하는 모듈을 만들진못하지만 필요한건 다른분의 비슷한 걸 받아서 고쳐쓰지요..
-
푸시아
2013.08.21 23:21
오우~ @라르게덴 님 등장!
어려운거 마음껏 물어 보세요.
저는 제가 아는데까지만 알려 드리고 @라르게덴 님께서 어려운 부분은 추가로 설명해 주실꺼에요.
-
쿡래빗
2013.08.21 23:54
모듈 관리자 화면이 바뀐것으로 알고 있는데 (http://www.xpressengine.com/devForum/22266131)
정확히 어떻게 바뀐건지 알수 있을까요???
-
푸시아
2013.08.22 00:22
부트스트랩이 적용된것 같습니다. css가 바뀌었습니다.
-
쿡래빗
2013.08.22 15:24
book모듈이 1.7에 완벽호환이 되는건가요??
예제그대로 실행해보니
백엔드 부분은 너무 엉성하게 구현되는데 괜찮은건지 궁금합니다.
푸시아 님께서 1.7용 book모듈같은 단순한 모듈 하나
예제로 뿌려주시면 예비 개발자에게 큰 도움 될것 같습니다..!!
-
푸시아
2013.08.22 20:49
book 모듈이 모양은 이상해도 잘 작동합니다 -
쿡래빗
2013.08.25 21:14
instnace의 의미가 무엇인가요??
-
푸시아
2013.08.27 23:08
객체지향 프로그래밍에서 사용되는 단어 입니다.
자세한 내용은 오브젝트, 인스턴스, 프로그래밍, 객체지향 등의 키워드로 구글링 해 보시면 될 것 같습니다.
-
스비라
2013.09.15 22:30
get 방식의 정보를 모듈에서 받아 처리를 하려면 어떻게 해야하는지 어려움이 있어 코멘트 남깁니다.
openid 2.0을 구현하려 하는 중입니다. 로그인 시도하면 openid 제공자 사이트로 이동 후 인증을 하게 되면, return_url에 GET 방식으로 파라메터를 보내줍니다.(eg. /login.php?openid.identity=식별자) 계정 식별자등등.. 모듈으로 만든다면 어떤방식으로 받아야 되는지 궁금합니다.
-
푸시아
2013.09.15 22:34
xeschool 의 모듈 예제에 관한 질문이 아니네요.
xe 가이드의 개발자 문서에 보면 Context 부분에 있습니다.
mixed Context::get(string KEY)
요청(Request)에 전달될 변수나 설정 결과값을 조회합니다.
$user_id = Context::get('user_id');
stdClass Context::gets(string KEY1 [ , string KEY2 ...])
여러 개의 값을 한 번에 조회하고 stdClass에 반환합니다.
stdClass Context::getRequestVars()
요청으로부터 전달되는 변수를 stdClass로 반환합니다.
-
스비라
2013.09.15 22:44
감사합니다. xeschool 모듈예제만 가지곤 xe모듈 제작을 다 파악하기가 힘들고, 문서나 여러 가이드도 많이 부족해서 많이 애먹네요.
-
쿡래빗
2013.09.16 08:31
model 파일이 하는 역할이 정확히 뭔지 잘 이해가 안가는데
어떤역할을 하는 건가요?
-
KANTSOFT
2013.09.16 10:33
xeschool에 모듈제작 강의 잘 읽어보시면 나와있습니다. 예제에서 controller로 처리하지 않고 model로 처리를 하는 부분이 있는데요. 쉽게말해 자주쓰일것 같은 기능(function)을 model에 정의해놓고 필요시에 따라 getModel로 가져와서 씁니다. model이 백엔드나 프론트 등이 없고 오직 모듈이름.model.php만있는것이 그 이유죠..
-
정도의길을걷기싫다
2013.11.13 12:45
감사합니다.
뭐지뭐지 하고 있다가 이제야 봐서 알았네요 ^^ ;
-
푸시아
2013.09.16 10:45
네. 칸트소프트님이 맞습니다. 다시말해 모델을 안써도 상황마다 쿼리 코드 등을 일일이 써줘도 괜찮다는 뜻이기도 합니다. -
또별
2013.09.22 00:00
Context::gets( ~~ 에서 "::" 콜론이 두개 붙여서 사용하는 것보고 뭐라 하나요? 쌍콜론 이라고 불러야 하나요?
정확한 용어와 뭐할때 사용하는건지.좀..알려주실수 있나요? xe 소스에서 많이 있던데, 당체 뭔지 몰라서요.
이 기호는 검색해 봐도..검색도 안되고..그러네요. 푸시아님이 남이 쉽게 하지 못하는 좋은 일을 하시네요. -
스비라
2013.09.22 10:20
더블콜론 이라고 하며 클래스를 참조할 때 쓰이네요. (참조: http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php)
저도 php를 따로 배운적이 없는지라, 좀 찾아봤는데 알게되었네요. 여태 static 클래스는 요런식으로 쓰는건가 하고 생각만 했는데.. 아니였더군요 ㅎㅎ
Context::get(~) 은 Context 클래스의 get 메서드를 사용하는 거에요. xe 설치경로의 classes에 가보시면 xe의 기본 클래스들이 있는걸 보실수 있네요~
-
푸시아
2013.09.22 12:01
와우 스비라님이 답변주셨네요 -
또별
2013.09.23 00:07
감사합니다..클래스 참조라...20% 정도만 이해됨..클래스에 있는것을 끄집어내어 사용하겠다..선언하는것과 같은방식인가 보네요.클래스참조할때 this 방식을 사용안하고..이런식으로도 방법이 있는가 봐요.좀찾아봐야겠어요.댓답 감사합니다.
-
스비라
2013.09.24 03:51
$this는 자신의 클래스의 메서드 또는 함수에 접근할 때 사용하는것이에요.
구조적으로는 조금 다르겠지만,
include Context.php;
Context = new Context();
Context->get(~);
이거랑 비슷하다 생각하면 될 것 같네요.
-
KANTSOFT
2013.09.24 17:09
xml쿼리문에서 limit이 무조건 0에서 시작하는지요? list_count=20 이면.. limit 0, 20; 이라고 찍혀나오네요. 별짓다해도 안됩니다. 조언좀주세요
-
푸시아
2013.09.24 18:22
<list_count var="list_count" default="20" /><page_count var="page_count" default="10" /><page var="page" default="1" />page_count 와 page를 적절히 이용하면 되지 않을까요? -
KANTSOFT
2013.09.24 18:31
일단 그냥 배열로 받아들여서 배열에서 첫번째 배열원소를 잘라서 없애고 두번째 요소부터 새롭게 저장하여 나열하는 방법을 선택했습니다. 단순히 첫번째요소만 자르는거지만, 그 수가 커지면.. 푸시아님께서 가르쳐준 방법으로 한번해봐야겠네요.
-
BonaSera
2013.10.07 16:13
음... 코어도 질문드려도 될까요....
-
푸시아
2013.10.07 16:24
글세요.. 제가 잘 몰라서요.. ㅡ.ㅡ;
-
쿡래빗
2013.11.10 10:00
$args->
애드온이나 모듈이나
위에 저런문구가 많이 나오는데
무엇인가요?
-
푸시아
2013.11.10 10:40
$args-> 의 코드 자체를 말씀하시는건가요?
이해를 위해 전문용어 빼고 설명해 보자면
$args 안에 정보를 담고 있는 것입니다.
$args 자체가 함수들을 담고 있을수도 있고, 직렬화된 변수들을 담고 있을 수도 있습니다. 배열을 담고 있을수도 있습니다.
$args->변수명 요러면 그 안에 담겨 있는 변수의 밸류값을 빼내 올 수 있겠죠.
제가 프로그래머가 아직 못되다 보니 설명이 모자라거나 틀릴 수도 있습니다.
추가 내용은 다음분에게 넘깁니다.
-
쿡래빗
2013.11.10 11:46
좋은답변 감사드립니다. $args 라는 용어(스펠링)는 그럼 암묵적으로 통용이 되는건가요? $arrays->변수명 과같이 다른 용어를 사용해도 관계가 없는건지요?.
-
푸시아
2013.11.10 11:54
args 는 아규먼트의 약자일 겁니다.
아무거나 됩니다.
그러나 프로그래밍 책에 의하면 좋은 변수명 작명법이라는게 있습니다.
XE에서는 보통 $args 아규먼트 라던가 $obj 오브젝트 등을 많이 이용합니다.
또한 모듈에서는 $module_info 라던가 멤버는 $member_info 로그인정보는 $logged_info 같은것도 이용하고
암튼 이런 작명으로 사용합니다.
-
DesignSORI
2013.11.12 13:35
http://www.xpressengine.com/qna/22432193 에 올렸던 질문입니다~
{print_r($xxxxxx)} 로 확인할 수 있는 변수들중,
게시판 모듈의 '추가설정' 변수들은 어떻게 확인할 수 있을까요?
$__Context 로도 확인이 안되는 것 같더라구요~
힌트좀 주셔요ㅠ
-
푸시아
2013.11.12 14:14
저는 잘 모르겠네요 야매라서 ㅠㅠ
-
쿡래빗
2013.11.12 15:12
stdClass가 뭔지 알수 있을까요? 문자열배열?인가 뭔가라고 하는데
xe에서 자주 쓰여서 확실히 알고 있어야 할것 같아서..
-
푸시아
2013.11.12 15:21
저도 똑바로 알고 있는지는 잘 모르겠어요.
그냥 제가 스스로 이해하기로는 일반 배열 값이 아니라 직렬화된 배열값으로 알고 있습니다.
그래서 이 값은 foreach($변수 as $key => $value) 해서 $key 에 해당하는 $value 값을 하나씩 호출하게 됩니다.
일반 배열은 0,1,2,3,... 순서대로 숫자가 key 역할을 하겠지요.
-
쿡래빗
2013.11.12 17:49
항상 감사드립니다 :)
-
銀童
2013.11.13 12:03
stdClass 는 직렬화된 배열은 아닙니다.
stdClass 는 php 의 비어있는 객체입니다.
예를들어서 데이터를 표현하고자 한다면 방법은 크게 배열과, 객체가 있는데
$array['k'] = 'a';
라고 저장하면 되죠. array 는, array 를 초기화시키기 위해서는 $array = []; 등으로 초기화시켜주면 됩니다.
마찬가지로
$object->k = 'a';
라는 식으로 저장하기 위해서 $object = new stdClass(); 를 사용하는 겁니다.
그리고 foreach 는 '배열'에만 사용가능하지 객체에는 사용이 불가능합니다.
그럼 왜 그냥 배열로 안하고 stdClass() 를 써서 익명 객체를 만들어서 데이터를 관리하느냐?
여러가지 장점이 있지만 크게 두가지만 언급해보자면
$array['module']['board']['trigger'] 보다
$obj->module->board->trigger 가 더 직관적입니다. 이해하기도 쉽죠
그리고 또한
$obj->data = 0;
$obj->print = function() { echo $this->data; };
같은 식으로 lambda function 등을 사용해서 확장할수도 있기 때문입니다.
-
푸시아
2013.11.13 12:08
은동님께서 잘 말씀해 주셨네요.
근데 아마 쿡레빗님께서 말씀하시는건 print_r 등을 통해 볼때 array 가 아니라 stdClass Object 를 말씀하시는 것 같아
답변을 그렇게 해버렸네요 :P
다시 말씀드리지만 저는 야매개발자입니다~
은동님 같은 분들이 진짜 고수님이세요~
-
criuce
2013.11.12 22:19
푸시아님 XE 모듈 오프라인 강의 부탁드려요~
-
푸시아
2013.11.13 00:28
어허~ 왜이러셔요. 고수님께서 ㅠㅠ
-
쿡래빗
2013.11.14 00:41
쿼리를 Model을 거쳐서 날리지(?) 않고
View나 Controller 에서 바로 날리면 안좋은점이 어떤것이 있나요?
MVC구조를 유지하기 위해 일부러 Model을 거치는건지..?
-
푸시아
2013.11.14 02:20
안좋은 점은 없습니다.
그냥 코딩 방법이 달라질 뿐입니다.
게시글에 브금 넣는 재미를 붙이셨군요 ㅋㅋㅋ