초보자를 위한 CakePHP 튜토리얼: CakePHP 프레임워크란 무엇인가요?

⚡ 스마트 요약

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

  • 🎂 CakePHP란 무엇인가: CakePHP는 더 적은 코드로 PHP 웹 애플리케이션을 구축하고 유지 관리할 수 있도록 해주는 오픈 소스 MVC 프레임워크입니다.
  • ⚡ 그것을 사용하는 이유: 빠른 개발과 데이터베이스 기능을 제공합니다.trac내장 유효성 검사 및 검색 엔진 친화적인 기능 URL개봉 즉시 사용 가능합니다.
  • 📦 설치: Composer는 create-project 명령 하나로 CakePHP를 설치합니다. 현재 버전 5는 PHP 8.1 이상을 필요로 합니다.
  • 📁 폴더 구조: 유지 관리의 용이성을 위해 소스 코드, 설정 파일, 테스트, 로그, 플러그인 및 공개 웹 루트를 명확한 폴더 구조로 분리하십시오.
  • 🔤 규칙 : 설정보다는 관례를 따르는 것은 모델, 컨트롤러, 뷰에 일관된 이름을 지정하여 상용구 코드를 줄이는 것을 의미합니다.
  • 🔁 MVC 흐름: 모델은 데이터를 처리하고, 뷰는 출력을 처리하며, 컨트롤러는 흐름을 라우팅하고 유지합니다.ping 관심사가 명확하게 분리되었습니다.
  • 🤖 AI 지원: AI 도구는 CakePHP CRUD 앱의 기본 구조를 만들고 기존 CakePHP 프로젝트를 버전 5로 마이그레이션하는 데 도움을 줄 수 있습니다.

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의 MVC 아키텍처
CakePHP의 MVC 아키텍처

CakePHP는 작업을 세 부분으로 나눕니다.

  • 모델: 모든 데이터베이스 상호 작용에 사용됩니다.
  • 보기: 모든 출력 및 표시에 사용됩니다.
  • 컨트롤러: 애플리케이션의 흐름을 제어하는 ​​데 사용됩니다.

CakePHP에서 MVC 아키텍처를 사용하는 단계는 다음과 같습니다.

단계 1) 클라이언트 또는 사용자가 뷰와 상호 작용합니다.

단계 2) 뷰는 특정 이벤트 발생 시 컨트롤러에게 알림을 보냅니다.

단계 3) 컨트롤러는 모델에 데이터베이스 요청을 보내고 모델을 업데이트합니다.

단계 4) 모델은 변경 사항이 발생했음을 뷰에 알립니다.

단계 5) 뷰는 모델 데이터를 수신하고 수신된 데이터에 따라 자체적으로 업데이트됩니다.

MVC를 사용하는 이유는 무엇입니까?

  • CakePHP MVC는 비즈니스 로직을 프레젠테이션 및 데이터 검색과 분리하는 데 도움이 됩니다.
  • 사이트는 특정 컨트롤러로 관리할 수 있는 논리적 섹션으로 구분됩니다.
  • 애플리케이션을 테스트하고 디버깅할 때, 개발자는 코드에 대한 완전한 세부 정보 없이도 오류를 찾아 수정할 수 있습니다.

CakePHP 프레임워크 사용의 단점

  • CakePHP의 문서 지원은 기대만큼 포괄적이지 않습니다.
  • CakePHP를 사용하려면 개발자는 멋진 디자인을 구현하기 위해 기본 경로를 업데이트해야 합니다. URL이는 다른 PHP 프레임워크에 비해 더 많은 작업이 필요하다는 것을 의미합니다.
  • CakePHP는 다른 프레임워크와 달리 단방향 라우팅을 사용합니다.
  • PHP 배우기 이 프레임워크는 초보자에게 항상 쉬운 것은 아닙니다.
  • 루비 온 레일즈와 같은 프레임워크와 비교했을 때, 단방향 라우팅은 또 다른 단점입니다.

자주 묻는 질문

네, 기존 CakePHP 프로젝트를 유지 관리하거나 설정보다는 관례를 중시하는 접근 방식을 선호하는 팀에게 적합합니다. Laravel과 Symfony는 더 큰 커뮤니티를 가지고 있지만, CakePHP 5는 활발하게 유지 관리되고 있으며 여전히 견고하고 생산적인 프레임워크입니다.

둘 다 MVC PHP 프레임워크입니다. Laravel은 더 큰 생태계, 표현력이 풍부한 구문, 그리고 Eloquent ORM을 제공합니다. CakePHP는 엄격한 규칙 준수와 적은 설정으로 빠른 애플리케이션 스캐폴딩을 강조합니다. Laravel이 더 널리 사용되지만, CakePHP는 일반적인 애플리케이션을 더 빠르게 개발할 수 있습니다.

현재 주요 버전인 CakePHP 5는 PHP 8.1 이상을 필요로 합니다. 이전 버전인 CakePHP 4는 PHP 7.4 이상을 지원했지만, 지원 종료가 가까워지고 있으므로 새로운 프로젝트는 최신 PHP 버전을 기반으로 CakePHP 5를 대상으로 개발해야 합니다.

예. AI는 CakePHP 규칙에 따라 CRUD 리소스에 대한 마이그레이션, 엔티티, 테이블, 컨트롤러 및 템플릿을 생성하고 bake 콘솔 명령어를 설명할 수 있습니다. Rev유효성 검사 규칙을 확인하고 각 작업을 테스트하십시오.

예. AI는 더 이상 사용되지 않는 메서드, 업데이트된 네임스페이스, 시그니처 변경 사항을 표시하고 단계별로 대체 방안을 제안할 수 있습니다. 마이그레이션 규모가 크기 때문에 점진적으로 업그레이드하고 각 변경 후 테스트 스위트를 실행해야 합니다.

이 게시물을 요약하면 다음과 같습니다.