IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  오픈 소스  >

PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기, Part 2: 기본 위키 코드 개발하기 (한글)

크리키에 사용자 등록, 엔트리 스토리지, 맞춤 마크업 렌더링 추가하기

developerWorks
14 페이지 중 1 페이지Go to the next page

문서 옵션

샘플 코드


제안 및 의견
피드백

튜토리얼 평가

이 컨텐츠를 개선하기 위한 도움을 주십시오.


난이도 : 중급

Duane O'Brien, PHP developer, Freelance

2007 년 6 월 05 일

"PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기" 튜토리얼 연재에서는 제작 과정 추적에 유용한 각종 기능이 있는 위키를 PHP를 사용해 처음부터 만듭니다. 위키는 개발 속도를 높이고 생산성을 향상시키며 다른 이들을 교육하는 데 유용한 도구로 널리 사용되고 있습니다. 본 연재의 각 부에서는 위키가 완성될 때까지 파일 업로딩, 캘린더링 "마일스톤" 시스템, 오픈 블로그 기능과 함께 위키의 핵심적인 부분에 대한 개발 과정을 보여줍니다. 위키에는 또한 특정 사용자에 대한 권한을 맞춤화할 수 있는 프로젝트도 포함됩니다.

시작하기에 앞서

"PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기" 연재는 자신만의 맞춤 위키를 만들고자 하는 PHP 애플리케이션 개발자들을 위해 쓰여졌다. 데이터베이스에서부터 자신이 사용하고자 하는 위키 마크업에 이르기까지 애플리케이션의 모든 것을 정의할 것이다. 최종 제품에서는 누가 페이지를 편집할 수 있는지부터 블로그가 실제로 어떻게 열리는지까지 애플리케이션의 많은 부분을 대략 설정할 수 있다.

5부 중 두 번째인 본 튜토리얼을 마치면 사용자 등록, 페이지 생성과 편집, 히스토리 추적, 파일 업로드와 같은 위키의 기본 기능에 익숙해질 것이다. 굉장히 많은 것을 다루는 것처럼 느껴지겠지만 Part 1을 끝냈다면 이미 반 이상 한 것이나 다름 없다.

본 연재에 대해

본 연재의 Part 1에서는 전반적인 소개를 한다. 애플리케이션의 외양, 흐름, 작동, 기능을 정의한다. 데이터베이스를 설계하고 스캐폴딩의 대략적인 윤곽을 그린다. Part 2는 마크업 정의, 변경 추적, 파일 업로드를 포함하는 기본적인 위키 개발에 초점을 맞춘다. Part 3에서는 일부 사용자와 그룹을 정의하고 개별 위키 페이지와 업로드한 파일의 특정 부분에 대한 접근 제어 방법을 정의한다. Part 4에서는 작업, 해야 할 일, 설정한 목표에 대한 진행 상황을 추적하는 캘린더링과 마일스톤 기능에 대해 다룬다. Part 5에서는 제작 주제와 관심사를 토론할 수 있는 오픈 블로그를 만든다.




위로


본 튜토리얼에 대해

본 튜토리얼은 위키 엔진의 핵심 코드 작성에 초점을 맞춘다. 데이터베이스가 있는 상태에서 다음에 할 일은 사용자 생성, 등록, 마크업 렌더링, 페이지 생성, 파일 업로드 등을 포함하는 위키 엔진의 모든 것을 다루는 것이다. 이 일를 다 하면 애플리케이션("크리키")은 완벽한 모습을 갖추게 된다. 여기서 다룰 주제는 다음과 같다.

  • 사용자 등록
  • 페이지 생성
  • 렌더링 마크업
  • 파일 업로드



위로


필요한 사전지식

본 튜토리얼은 독자들이 PHP와 MySQL 사용 경험이 있다고 가정하고 쓰여졌다. 데이터베이스를 깊이 있게 튜닝하지 않을 것이므로 기본적인 사항만 알고 있다면 문제 없을 것이다. MySQL 데이터베이스를 위해 브라우저 기반 관리 콘솔인 phpMyAdmin을 다운로드하여 설치하면 도움이 된다.

시스템 요구사항

시작하기 전에 작업할 수 있는 환경을 갖춰야 한다. 일반적인 요구사항은 간단하다.

  • 세션을 지원하는(mod_rewrite가 더 선호됨) HTTP 서버. 본 튜토리얼은 mod_rewrite 가능한 아파치 V1.3을 사용하여 작성했다.
  • PHP V4.3.2 또는 그 이상(PHP V5 포함). 본 튜토리얼은 PHP V5.0.4를 사용하여 작성했다.
  • MySQL 버전은 최근 몇 년 사이에 출시된 것이면 된다. 본 튜토리얼은 MySQL V4.1.15를 사용하여 작성했다.

또한 애플리케이션에서 사용할 수 있는 데이터베이스와 데이터베이스 사용자가 필요하다. 본 튜토리얼은 MySQL에 필요한 테이블을 만들기 위해 구문을 제공할 것이다.

그 외에도 시간 절약을 위해 CakePHP라 불리는 PHP 프레임워크를 사용하여 크리키를 개발할 것이다. CakePHP는 CakeForge.org를 방문해 최신 버전을 다운로드하기 바란다. 본 튜토리얼은 V1.1.13을 사용하여 작성했다. CakePHP 설치와 설정에 대한 정보는 "Cook up Web sites fast with CakePHP"(참고자료 참조)라는 튜토리얼 연재를 확인하기 바란다.

크리키 소개

Part 1 마지막에 기본 레이아웃을 자기에게 맞는 방향으로 재디자인할 기회가 있었다. 독자들은 어떻게 했는가? 그 작업은 하지 않았어도 상관 없다. 본 튜토리얼을 위한 소스코드는 다양한 컨트롤러에 연결된 기본 레이아웃을 가지고 있다. 본 연재를 읽어가며 편집을 해 나가면 된다. 일단, 코드 아카이브에서 app/views/layouts/default.thtml 파일을 자신의 app/views/layouts/ 디렉터리에 복사한다. 그림 1처럼 보일 것이다.


그림 1. 크리키 소개
크리키 소개

만약 레이아웃을 작업하지도, 다양한 컨트롤러에 연결하지 못했더라도 아래 코드를 원하는 레이아웃에 입력할 수 있다. Listing 1에 있는 코드는 가로 메뉴를 위한 코드다. 자신의 디자인에 맞게 마음대로 사용하기 바란다.


Listing 1. 가로 메뉴
                     
[
<?php echo $html->link('home','/') ?>
|
<?php echo $html->link('users','/users') ?>
|
<?php echo $html->link('entries', '/entries') ?>
|
<?php echo $html->link('entry revisions', '/entry_revisions') ?>
|
<?php echo $html->link('uploads', '/uploads') ?>
|
<?php echo $html->link('upload revisions', '/upload_revisions') ?>
|
<?php echo $html->link('settings', '/settings') ?>
]

이제 기본 레이아웃을 다룰 수 있게 되었으니 크리키의 핵심 코드를 작업할 수 있다. 사용자 등록 코드부터 시작해 보자.




위로



14 페이지 중 1 페이지Go to the next page
    IBM 소개 개인정보 보호정책 문의