dhtmlxScheduler와 PHP:Slim 3
이 튜토리얼에서는 Slim 3 프레임워크와 백엔드의 REST API를 사용하여 PHP 기반 Scheduler를 구축하는 기본 과 정을 다룹니다.
이 튜토리얼은 구버전 Slim Framework v3.x를 사용합니다. 최신 버전은 Slim Framework v4.x 가이드를 참고하세요.
다른 플랫폼 및 프레임워크와의 통합을 위한 튜토리얼도 제공됩니다:
- "dhtmlxScheduler와 ASP.NET Core"
- "dhtmlxScheduler와 ASP.NET MVC"
- "dhtmlxScheduler와 Node.js"
- "dhtmlxScheduler와 PHP"
- "dhtmlxScheduler와 PHP:Laravel 연동하기"
- "dhtmlxScheduler와 PHP:Slim"
- "dhtmlxScheduler와 SalesForce LWC 통합하기"
- "dhtmlxScheduler와 Ruby on Rails 연동하기"
- "dhtmlxScheduler와 dhtmlxConnector 연동하기"
PHP 애플리케이션을 개발할 때, 모든 것을 처음부터 만드는 대신 검증된 프레임워크를 사용하는 것이 일반적입니다.
이 예제에서는 Slim 3 프레임워크를 REST API와 함께 서버 사이드에서 사용하며, 데이터 저장소로는 MySQL을 사용합니다. CRUD 작업은 PDO를 이용하여 구현되며, 이는 다른 프레임워크와도 유연하게 연동할 수 있도록 설계되었습니다.
GitHub에서 전체 데모를 확인할 수 있습니다. 단계별 안내를 따라 애플리케이션을 구축해 보세요.
전체 소스 코드는 GitHub에서 확인할 수 있습니다.
1단계. 프로젝트 초기화
프로젝트 생성
시작 지점으로는 Slim 3의 스켈레톤 애플리케이션을 사용합니다.
Composer를 이용해 애플리케이션을 생성하세요:
$ composer create-project slim/slim-skeleton scheduler-slim-howto
$ cd scheduler-slim-howto/
$ composer require illuminate/database "~5.1"
2단계. 페이지에 Scheduler 추가
다음으로, 스케줄러를 페이지에 추가합니다. 이 과정은 두 단계로 간단하게 진행됩니다.
뷰 파일 생성
templates 폴더 안에 scheduler.phtml 파일을 생성하세요:
<!doctype html>
<html>
<head>
<title> Getting started with dhtmlxScheduler</title>
<meta charSet="utf-8"/>
<script src="https://cdn.dhtmlx.com/scheduler/edge/dhtmlxscheduler.js"></script>
<link href="https://cdn.dhtmlx.com/scheduler/edge/dhtmlxscheduler.css"
rel="stylesheet" type="text/css" charSet="utf-8">
<style>
html, body{
margin:0px;
padding:0px;
height:100%;
overflow:hidden;
}
</style>
</head>
<body>
<div id="scheduler_here" className="dhx_cal_container">
<div className="dhx_cal_navline">
<div className="dhx_cal_prev_button"> </div>
<div className="dhx_cal_next_button"> </div>
<div className="dhx_cal_today_button"></div>
<div className="dhx_cal_date"></div>
<div className="dhx_cal_tab" name="day_tab"></div>
<div className="dhx_cal_tab" name="week_tab"></div>
<div className="dhx_cal_tab" name="month_tab"></div>
</div>
<div className="dhx_cal_header"></div>
<div className="dhx_cal_data"></div>
</div>
<script>
scheduler.config.xml_date="%Y-%m-%d %H:%i";
scheduler.init('scheduler_here', new Date(2019,0,20), "week");
scheduler.load("/events");
var dp = scheduler.createDataProcessor("/events");
dp.setTransactionMode("REST"); // use to transfer data with REST
dp.init(scheduler);
</script>
</body>
</html>
라우트 설정
새 페이지가 준비되면, src/routes.php에서 라우트를 설정하여 브라우저로 접근할 수 있게 합니다:
$app->get('/', function (Request $request, Response $response, array $args) {
return $this->renderer->render($response, 'scheduler.phtml', $args);
});
이제 앱을 실행하면 스케줄러가 표시됩니다:

3단계. 데이터베이스 준비
현재 스케줄러는 비어 있습니다. 다음 단계는 데이터베이스를 생성하고 애플리케이션과 연결하는 것입니다.