초보자를 위한 CakePHP 튜토리얼: CakePHP 프레임워크란 무엇인가요?
⚡ 스마트 요약
CakePHP 튜토리얼은 빠르고 효율적인 MVC 기반 웹 애플리케이션 개발을 위한 오픈 소스 PHP 프레임워크를 다룹니다. 이 튜토리얼에서는 CakePHP가 무엇인지, 왜 많은 팀들이 이를 선택하는지, 설치 방법, 폴더 구조 및 구성, 명명 규칙, 그리고 MVC 패턴이 CakePHP 애플리케이션을 어떻게 구동하는지 설명합니다.

CakePHP란 무엇인가요?
CakePHP CakePHP는 PHP로 구축된 웹 애플리케이션의 신속한 개발 및 유지 관리를 위한 오픈 소스 프레임워크입니다. MVC 아키텍처 개념을 기반으로 하여 PHP 웹 애플리케이션을 쉽고 간단하게, 적은 코드로 구축할 수 있도록 도와줍니다. 또한 CakePHP는 비즈니스 로직을 데이터 계층 및 프레젠테이션 계층과 분리하는 데 유용합니다.
CakePHP 프레임워크를 사용하는 이유는 무엇입니까?
CakePHP 프레임워크 사용의 주요 이점은 다음과 같습니다.
- CakePHP는 단연코 가장 빠른 웹 개발 플랫폼 중 하나입니다.
- CakePHP를 사용하면 개발자는 데이터베이스 및 SQL 쿼리에 대한 향상된 제어권을 얻을 수 있습니다.
- 이 기능을 통해 사용자는 환경 유연성을 유지하면서도 견고한 웹 애플리케이션을 신속하게 개발할 수 있습니다.
- 지원 PostgreSQL, SQLite, MySQL그리고 ADODB용 PEAR-DB는 데이터베이스 추상화 도구입니다.trac라이브러리.
- 검색 엔진 친화적인 환경을 조성합니다. URLs.
- 입력 유효성 검사 및 데이터 정제 도구와 같은 기능을 제공하여 앱의 보안을 강화합니다.
- 익숙한 PHP 구문을 사용한 템플릿.
CakePHP 설치 방법
CakePHP를 설치하는 가장 권장되는 방법은 PHP 의존성 관리자인 Composer를 사용하는 것입니다. Composer가 설치되면 아래 명령어를 실행하여 새 프로젝트 골격을 생성하세요.
composer create-project --prefer-dist cakephp/app:~5.0 my_app
이 명령어는 CakePHP와 그 종속 파일들을 my_app이라는 폴더에 다운로드합니다. 그런 다음 다음 명령어를 사용하여 내장 서버를 시작할 수 있습니다. bin/cake server 브라우저에서 http://localhost:8765를 여세요. CakePHP 5는 PHP 8.1 이상 버전을 필요로 합니다.
CakePHP의 역사
이번 CakePHP 튜토리얼에서는 CakePHP 프레임워크의 역사에 대해 알아보겠습니다.
| 출간연도 | 연혁 |
|---|---|
| 2005 | CakePHP는 2005년 4월 15일 Michal Tatarynowicz에 의해 개발되었습니다. |
| 2005 | CakePHP는 MIT 라이선스 하에 배포하여 커뮤니티 개발자들이 사용할 수 있도록 개방했습니다. |
| 2005 | Larry E Masters가 수석 개발자를 맡았습니다. |
| 2006 | 버전 1.0가 출시되었습니다. |
| 2011 | 버전 2가 출시되었습니다. |
| 2014 | 버전 3이 출시되었으며, 이전 버전들은 완전히 새롭게 작성되었습니다. |
| 2016 | CakePHP 3.3 버전이 다양한 고급 기능과 함께 출시되었습니다. |
| 2019 | 프레임워크를 현대화한 버전 4.0이 출시되었습니다. |
| 2023 | CakePHP 5.0이 출시되었으며, PHP 8.1 이상이 필요합니다. 2026년 현재 최신 버전은 CakePHP 5.3.x입니다. |
CakePHP의 특징
CakePHP의 중요한 기능은 다음과 같습니다.
- 활동적이고 친근한 커뮤니티
- MVC 아키텍처
- 기본 제공 유효성 검사
- 어떤 웹사이트 디렉토리에서든 작동하며, 아파치 설정이 일부 또는 전혀 필요하지 않습니다.
- 템플릿 엔진
- 캐싱 작업
- 간편한 CRUD 데이터베이스 상호 작용
- 이메일, 쿠키, 보안, 세션 및 요청과 같은 구성 요소를 처리합니다.
- 보기 도우미 JavaScript, 아약스HTML 폼 등
CakePHP- 폴더 구조
이제 이번 CakePHP 프레임워크 튜토리얼에서는 CakePHP 폴더 구조에 대해 알아 보겠습니다.
아래는 CakePHP의 폴더 구조입니다:
| 폴더 | 기술설명 |
|---|---|
| 테스트 | 이 폴더에는 애플리케이션에 대한 테스트 사례가 포함되어 있습니다. |
| TMP | tmp 폴더에는 임시 데이터가 저장됩니다. |
| 공급 업체 | 이 폴더는 CakePHP 및 기타 애플리케이션 종속성이 설치되는 위치입니다. |
| Webroot | 웹 루트에는 공개적으로 접근 가능하게 하고 싶은 모든 파일이 저장됩니다. |
| 빈 | bin 폴더에는 Cake 콘솔 실행 파일이 들어 있습니다. |
| 로그 | 여기에는 로그 구성에 따라 달라지는 로그 파일이 포함됩니다. |
| 구성 | config 폴더에는 CakePHP에서 사용하는 설정 파일이 저장됩니다. |
| 플러그인 | 이곳은 애플리케이션에서 사용하는 플러그인이 저장되는 곳입니다. |
| Src | 이 폴더에는 컨트롤러, 엔티티, 동작과 같은 애플리케이션 코드가 포함되어 있습니다. Locale 폴더에는 국제화를 위한 문자열 파일이 저장되고, Model 폴더에는 애플리케이션의 테이블, 엔티티, 동작이 저장됩니다. |
CakePHP 구성
CakePHP는 기본적으로 단일 구성 파일과 함께 제공됩니다. 또한 요구 사항에 따라 수정할 수도 있습니다. 이를 위해 "config"라는 폴더가 제공됩니다.
| 변수 이름 | 기술설명 |
|---|---|
| 디버그 | CakePHP 디버깅 출력을 변경할 수 있습니다. |
| App.네임스페이스 | 앱 강좌를 찾는 데 도움이 됩니다. |
| App.baseUrl | CakePHP에서 Apache의 mod_rewrite를 사용하지 않으려면 이 키워드의 주석을 해제하세요. |
| 앱.인코딩 | 애플리케이션에서 사용할 인코딩 방식을 정의할 수 있습니다. |
| 앱베이스 | 앱이 설치된 기본 디렉터리입니다. 이 값이 false이면 자동으로 감지됩니다. |
| App.fullBaseUrl | 완전한 도메인 이름입니다. |
| 앱.웹루트 | 웹 루트 디렉토리입니다. |
| App.www루트 | 웹 루트의 파일 경로입니다. |
| App.jsBaseUrl | 공개 js 디렉터리의 경로입니다. |
| 앱 경로 | 클래스 기반이 아닌 리소스에 대한 경로를 구성합니다. |
| App.cssBaseUrl | 웹 루트 아래에 있는 공개 CSS 디렉터리의 웹 경로입니다. |
| 보안.소금 | 해싱에 사용되는 임의의 문자열입니다. |
| 자산.타임스탬프 | 이 변수는 적절한 헬퍼 함수를 사용할 경우 타임스탬프를 추가합니다. |
케이크- PHP 명명 규칙
CakePHP는 설정보다는 관례를 따르는 철학을 기반으로 합니다. 명명 규칙을 통해 웹 애플리케이션의 작동 방식을 체계적으로 관리할 수 있습니다. 이 방식에서는 파일 이름을 지정할 때 두 개 이상의 단어는 "_"로 구분해야 하며, 클래스 이름을 지정할 때는 카멜 케이스를 사용해야 합니다.
MVC 부분은 아래에 제시된 구문을 따라야 합니다.
| 사진이름 | 클래스 이름 | 기본 클래스 이름 | 오시는 길 | |
|---|---|---|---|---|
| 모델 | 테이블 이름의 단수형에 .php 확장자를 붙인 형태입니다. 예: order.php | 파일 이름은 카멜 케이스 형식으로 작성하십시오. 예: Order | 앱 모델 | /앱/모델 |
| 제어 장치 | 테이블 이름과 컨트롤러 이름은 .php 확장자를 가져야 합니다. 예: orders_controller.php | 테이블 이름 뒤에 Controller가 추가됩니다. 예: OrdersController | 앱컨트롤러 | /앱/컨트롤러 |
| 관측 | 컨트롤러의 액션 이름은 .ctp 확장자로 시작합니다. 예: add.ctp | 클래스가 없습니다. 뷰에는 HTML 태그와 PHP 코드가 포함되어 있습니다. | /app/views/controller 이름 |
데이터베이스 구성
CakePHP를 사용하면 데이터베이스를 구성할 수 있습니다. 설정/앱.php 이 파일은 기본 연결 매개변수를 제공하며, 사용자는 필요에 따라 해당 매개변수를 수정할 수 있습니다.
중요한 매개변수는 다음과 같습니다:
| 매개 변수 | 기술설명 |
|---|---|
| 포트(선택 사항) | 서버에 연결하는 데 사용되는 TCP 포트 또는 Unix 소켓입니다. |
| 시간대 | 설정할 서버 시간대입니다. |
| 개요 | 사용할 수 있는 스키마를 지정하는 데 도움이 됩니다. |
| 유닉스 소켓 | 드라이버가 유닉스 소켓 파일을 통해 연결하는 데 사용됩니다. |
| ssl_키 | SSL 키 파일의 파일 경로입니다. |
| SSL_cert | SSL 인증서 파일의 파일 경로입니다. |
| SSL_ca | 이는 SSL 인증 기관의 파일 경로입니다. |
| 로그 | 이 용어는 쿼리 로깅을 수행하는 데 도움이 됩니다. |
| 초기화 | 연결이 생성될 때마다 데이터베이스 서버로 전송되어야 하는 쿼리 목록입니다. |
| 인용 식별자 | 예약어 또는 특수 문자를 사용하려면 true로 설정하십시오. |
MVC는 CakePHP에서 어떻게 작동하나요?
이번 CakePHP 프레임워크 튜토리얼에서는 CakePHP에서 MVC 패턴이 어떻게 작동하는지 알아보겠습니다.
이는 웹 애플리케이션의 핵심 메커니즘을 구축하는 동적인 방식입니다. 모델, 뷰, 컨트롤러가 서로 분리되어 있습니다.

CakePHP는 작업을 세 부분으로 나눕니다.
- 모델: 모든 데이터베이스 상호 작용에 사용됩니다.
- 보기: 모든 출력 및 표시에 사용됩니다.
- 컨트롤러: 애플리케이션의 흐름을 제어하는 데 사용됩니다.
CakePHP에서 MVC 아키텍처를 사용하는 단계는 다음과 같습니다.
단계 1) 클라이언트 또는 사용자가 뷰와 상호 작용합니다.
단계 2) 뷰는 특정 이벤트 발생 시 컨트롤러에게 알림을 보냅니다.
단계 3) 컨트롤러는 모델에 데이터베이스 요청을 보내고 모델을 업데이트합니다.
단계 4) 모델은 변경 사항이 발생했음을 뷰에 알립니다.
단계 5) 뷰는 모델 데이터를 수신하고 수신된 데이터에 따라 자체적으로 업데이트됩니다.
MVC를 사용하는 이유는 무엇입니까?
- CakePHP MVC는 비즈니스 로직을 프레젠테이션 및 데이터 검색과 분리하는 데 도움이 됩니다.
- 사이트는 특정 컨트롤러로 관리할 수 있는 논리적 섹션으로 구분됩니다.
- 애플리케이션을 테스트하고 디버깅할 때, 개발자는 코드에 대한 완전한 세부 정보 없이도 오류를 찾아 수정할 수 있습니다.
CakePHP 프레임워크 사용의 단점
- CakePHP의 문서 지원은 기대만큼 포괄적이지 않습니다.
- CakePHP를 사용하려면 개발자는 멋진 디자인을 구현하기 위해 기본 경로를 업데이트해야 합니다. URL이는 다른 PHP 프레임워크에 비해 더 많은 작업이 필요하다는 것을 의미합니다.
- CakePHP는 다른 프레임워크와 달리 단방향 라우팅을 사용합니다.
- PHP 배우기 이 프레임워크는 초보자에게 항상 쉬운 것은 아닙니다.
- 루비 온 레일즈와 같은 프레임워크와 비교했을 때, 단방향 라우팅은 또 다른 단점입니다.
