| 개발자 | Cake Software Foundation, Inc. |
|---|---|
| 발표일 | 2005년 4월 |
| 안정화 버전 | |
| 저장소 | |
| 프로그래밍 언어 | PHP |
| 운영 체제 | 크로스 플랫폼 |
| 플랫폼 | PHP 8.1+ |
| 언어 | 다국어 |
| 종류 | 웹 프레임워크 |
| 라이선스 | MIT 허가서 |
| 웹사이트 | cakephp |
CakePHP는 오픈 소스 웹 프레임워크이다. 모델-뷰-컨트롤러(MVC) 접근 방식을 따르며 PHP로 작성되었고, 루비 온 레일즈의 개념을 모델로 하며 MIT 허가서로 배포된다.
CakePHP는 설정보다 관습, 모델-뷰-컨트롤러, 액티브 레코드 패턴, 연관 데이터 매핑, 프론트 컨트롤러와 같은 잘 알려진 소프트웨어 공학 개념과 소프트웨어 디자인 패턴을 사용한다.
CakePHP는 2005년 4월, 폴란드의 프로그래머인 미할 타타리노비치(Michal Tatarynowicz)가 고속 응용 프로그램 개발 프레임워크의 최소 버전을 PHP로 작성하여 'Cake'라고 이름 붙이면서 시작되었다. 그는 이 프레임워크를 퍼블릭 도메인 라이선스로 공개했으나 곧 MIT 허가서로 변경되었고, 온라인 개발자 커뮤니티에 개방되었다.
2005년 12월, L. 매스터스(L. Masters)와 G. J. 우드워스(G. J. Woodworth)는 CakePHP 관련 개발을 촉진하기 위해 Cake Software Foundation을 설립하였다. 버전 1.0은 2006년 5월에 출시되었다.
이 프로젝트의 영감 중 하나는 루비 온 레일즈였으며, 그 개념 중 다수를 사용하였다. 그 이후 커뮤니티는 성장하여 여러 하위 프로젝트를 탄생시켰다.
2009년 10월, 프로젝트 관리자였던 우드워스와 개발자 N. 아벨레(N. Abele)는 리튬 웹 프레임워크(이전에는 CakePHP 프로젝트의 일부였음)를 포함한 자신들의 프로젝트에 집중하기 위해 프로젝트에서 사임했다. 남은 개발 팀은 이전에 정의된 원래 로드맵에 계속 집중하였다.
플러그인을 사용하면 개발자가 컨트롤러, 모델, 뷰 및 기타 클래스의 조합을 패키지화하여 여러 애플리케이션에서 재사용하거나 다른 개발자가 사용할 수 있도록 할 수 있다. CakePHP 3부터는 컴포저를 사용하여 플러그인을 설치할 수 있게 되었다.
CakePHP의 ORM(객체 관계 매핑)은 액티브 레코드 패턴과 데이터 매퍼 패턴의 고급 PHP 하이브리드로, 두 가지의 핵심 개념을 차용했다. CakePHP ORM은 데이터베이스 테이블을 나타내는 테이블 클래스와 개별 테이블 로우를 나타내는 엔티티 클래스라는 두 가지 주요 객체 유형을 사용한다.
쿼리 빌더는 새로운 ORM의 동반자로 CakePHP 3에서 도입되었다. 쿼리 빌더는 수동으로 작성하는 대신 프로그래밍 방식으로 SQL 쿼리를 생성하기 위한 클래스 및 메서드 집합을 제공한다. ORM은 쿼리 빌더를 광범위하게 사용한다.
라우팅 및 리버스 라우팅 기능이 있다. CakePHP 라우터를 사용하면 복잡한 HTTP 애플리케이션 라우팅이 가능하며, 들어오는 요청을 올바른 컨트롤러와 액션으로 라우팅한다. 리버스 라우팅은 경로와 링크 간의 관계를 생성하여, 링크가 항상 올바른 유니폼 리소스 로케이터로 생성되도록 보장한다.
뷰 셀(View Cells)은 뷰 로직을 호출하고 템플릿을 렌더링할 수 있는 소형 미니 컨트롤러를 제공한다. 이는 작고 재사용 가능한 페이지 구성 요소를 만드는 데 이상적이다.
마이그레이션은 데이터베이스 스키마에 대한 버전 관리를 제공한다. 이를 통해 애플리케이션 로직의 변경 사항과 그에 상응하는 데이터베이스 변경 사항이 동기화되도록 유지할 수 있다. 이는 CakePHP 애플리케이션 배포뿐만 아니라 다수 개발자로 구성된 팀의 개발을 크게 단순화한다. CakePHP 마이그레이션 도구는 Phinx 프로젝트를 기반으로 한다.
ORM 또는 쿼리 빌더에서 생성된 결과 집합을 쉽게 페이지화할 수 있도록 자동 페이지네이션을 제공한다.
폼 빌더 및 유효성 검사기를 통해 데이터 유형과 유효성 검사 모두에 대해 모델 계층과 연결된 폼을 프로그래밍 방식으로 생성할 수 있다.
CakePHP 베이크(Bake)는 애플리케이션, 스켈레톤, 상용구 코드를 자동으로 생성하기 위한 도구이다. 기존 데이터베이스 스키마를 사용하여 올바른 데이터 관계 및 데이터 유형을 추론하고 이를 사용하여 컨트롤러, 모델 객체 및 뷰 템플릿의 전체 집합을 생성한다. 코딩 없이도 기본적인 CRUD 애플리케이션을 생성할 수 있다.
| 연도 | 위치 |
|---|---|
| 2025 | 스페인, 마드리드 |
| 2024 | 룩셈부르크, 에슈쉬르알제트 |
| 2023 | 미국, 로스앤젤레스 |
| 2022 | 가상 |
| 2021 | 가상 |
| 2020 | 가상 |
| 2019 | 일본, 도쿄 |
| 2017 | 미국, 뉴욕 |
| 2016 | 네덜란드, 암스테르담 |
| 2015 | 미국, 뉴욕 |
| 2014 | 스페인, 마드리드 |
| 2013 | 미국, 샌프란시스코 |
| 2012 | 영국, 맨체스터 |
| 2011 | 영국, 맨체스터 |
| 2010 | 미국, 시카고 |
| 2009 | 독일, 베를린 |
| 2008 | 아르헨티나, 부에노스아이레스 |
| 2008 | 미국, 올랜도 |