CodeIgniter 폴더, 파일 및 디렉토리 구조

⚡ 스마트 요약

CodeIgniter는 PHP 프로젝트를 애플리케이션 로직, 프레임워크 시스템 파일, Composer 벤더 패키지 및 단일 진입 스크립트를 위한 예측 가능한 폴더로 구성하므로 초보자는 코드를 빠르게 찾을 수 있고 중급 개발자는 깔끔한 MVC 구조를 확장할 수 있습니다.

  • 📁 응용 프로그램 폴더: 컨트롤러, 모델, 뷰, 설정 파일, 캐시, 헬퍼, 훅, 언어, 라이브러리, 로그 및 타사 패키지를 저장합니다.
  • 🧩 시스템 폴더: 프레임워크 코어, 데이터베이스 드라이버, 글꼴, 도우미 함수, 언어 및 내장 라이브러리가 저장되는 파일입니다. 이 파일을 직접 편집하지 마십시오.
  • ⚙️ 진입 지점: 루트 디렉토리의 index.php 파일은 프레임워크를 부팅하고, 경로를 설정하며, 모든 HTTP 요청을 프런트 컨트롤러를 통해 라우팅합니다.
  • 버전 차이: CodeIgniter 3는 application/ 및 system/을 사용하는 반면 CodeIgniter 4에서는 더욱 엄격한 분리를 위해 app/, public/, writeable/ 폴더가 도입되었습니다.
  • 🧪 벤더 및 사용자 가이드: vendor 폴더에는 사용자가 배포하는 Composer 패키지가 저장되고, user_guide 폴더에는 프로덕션 서버에서 제외해야 하는 로컬 문서가 저장됩니다.

Code이그나이터 폴더

파일 구조 이해하기 Code실제 애플리케이션을 개발하기 전에 Igniter는 필수적입니다. 예측 가능한 레이아웃은 컨트롤러, 모델, 뷰를 빠르게 찾고, 라우팅 문제를 디버깅하고, 새로운 팀원을 더 빠르게 온보딩하는 데 도움이 됩니다. 이 튜토리얼에서는 기본적인 레이아웃 구성에 대해 다룹니다. Code널리 사용되고 있는 Igniter 3의 구조를 설명하고, 여러분이 접하게 될 주요 차이점을 명확히 합니다. CodeIgniter 4.x 버전에서는 app/, public/, writable/ 폴더가 별도의 최상위 폴더로 도입되었습니다.

이것은 CodeIgniter 파일 및 디렉토리 구조는 어떻게 되나요?

The CodeIgniter의 파일 구조는 프레임워크를 다운로드하거나 설치한 후 기본적으로 제공되는 폴더 및 PHP 파일의 배열입니다. 이 구조는 애플리케이션 로직을 프레임워크 코어에서 분리하고, Composer 종속성을 격리하며, index.php를 통해 단일 진입점을 제공합니다. 다음 이미지는 Igniter의 파일 구조를 보여줍니다. Code점화기:

CodeIgniter 파일/폴더/디렉토리 구조
CodeIgniter 파일/폴더/디렉토리 구조

다음은 새로 설치한 파일의 간소화된 디렉토리 구조입니다. CodeIgniter 3 설치:

// CodeIgniter 3 root layout
project-root/
├── application/
├── system/
├── user_guide/
├── vendor/
├── composer.json
├── composer.lock
└── index.php

최상위 폴더에 대한 설명

이제 위의 파일들을 살펴보겠습니다. Code점화기 구조:

  • 신청 - 이 디렉터리는 애플리케이션 로직을 담을 디렉터리입니다. 애플리케이션의 모든 코드는 이 디렉터리에 포함됩니다.
  • 체계 – 이 폴더에는 프레임워크 코어 파일이 포함되어 있습니다. 이 디렉토리를 변경하거나 자신의 애플리케이션 코드를 이 디렉토리에 넣는 것은 권장되지 않습니다.
  • 사용자 설명서 – 이 디렉토리에는 다음에 대한 사용자 설명서가 포함되어 있습니다. Code이그나이터.
  • 공급 업체 이 디렉터리에는 Composer 패키지의 소스 코드가 포함되어 있습니다. 이 디렉터리와 관련된 다른 파일로는 composer.json과 composer.lock이 있습니다.
  • index.php – 이는 애플리케이션의 진입점입니다.

CodeIgniter 애플리케이션 하위 디렉터리

이제 디렉토리 구조를 좀 더 자세히 살펴보겠습니다. 앞서 언급했듯이, 애플리케이션 디렉토리에는 프로젝트 코드가 포함되어 있습니다. 이 섹션에서는 그 안에 있는 하위 디렉토리들을 살펴보겠습니다. CodeIgniter 디렉토리 구조:

  • 캐시 – 출력 및 데이터베이스 캐싱 라이브러리에서 생성된 캐시된 파일을 저장합니다.
  • 설정 – database.php, routes.php, autoload.php와 같은 설정 파일을 유지합니다.
  • 컨트롤러 – 모든 애플리케이션 컨트롤러는 여기에 정의되고 매핑됩니다. URL 세그먼트를 액션으로 변환합니다.
  • core 이 디렉터리에는 시스템 파일을 확장하는 사용자 정의 코어 클래스가 포함되어 있습니다. 예를 들어, 다른 컨트롤러가 확장해야 하는 기본 컨트롤러를 만들려면 이 디렉터리에 배치하면 됩니다.
  • 도우미 – 이 디렉토리는 CodeIgniter의 폴더 구조는 사용자 정의 도우미 함수에 사용됩니다.
  • 후크 CI 폴더 구조에서 프레임워크 실행 주기 동안 실행되는 사용자 지정 후크에 사용됩니다.
  • 언어 - 여러 언어를 사용하는 애플리케이션의 언어 파일을 저장하는 데 사용됩니다.
  • 도서관 - 사용자 정의 라이브러리를 저장하는 데 사용됩니다.
  • 로그 – 애플리케이션 로그 파일은 이 디렉터리에 저장됩니다.
  • 모델 모든 애플리케이션 모델은 이 디렉터리에 정의되어야 합니다.
  • 제XNUMX자 – 이는 사용자 또는 다른 개발자가 만든 사용자 지정 패키지에 사용됩니다.
  • 보기 – 애플리케이션 뷰는 이 디렉터리에 저장됩니다.

다음은 애플리케이션 하위 디렉터리 트리의 예입니다.

// application/ subdirectories
application/
├── cache/
├── config/
├── controllers/
├── core/
├── helpers/
├── hooks/
├── language/
├── libraries/
├── logs/
├── models/
├── third_party/
└── views/

CodeIgniter 시스템 하위 디렉터리

이제 CI 파일 구조에서 시스템 하위 디렉터리를 살펴보겠습니다. 이 디렉터리에는 프레임워크 소스 코드가 있으므로 이 디렉터리의 파일은 절대 수정하지 마십시오.

  • core – 이것이 마음과 같다. Code이그나이터 프레임워크프레임워크를 구성하는 모든 핵심 파일은 여기에 있습니다. 핵심 파일의 기능을 확장하려면 애플리케이션 디렉터리에 사용자 지정 핵심 파일을 생성해야 합니다. 그런 다음 원하는 동작을 재정의하거나 새 동작을 추가할 수 있습니다. 이 디렉터리를 직접 수정해서는 안 됩니다.
  • 데이터베이스 - 데이터베이스 드라이버, 캐시 및 데이터베이스 작업에 필요한 기타 파일이 여기에 제공됩니다.
  • 글꼴 이름에서 알 수 있듯이, 이 디렉토리에는 글꼴과 글꼴 관련 정보가 포함되어 있습니다.
  • 도우미 – 이 디렉토리는 CodeIgniter 구조 폴더에는 기본적으로 제공되는 도우미 함수들이 포함되어 있습니다.
  • 언어 - 프레임워크에서 사용하는 언어 파일이 포함되어 있습니다.
  • 도서관 – 포함된 다양한 라이브러리의 소스 파일이 들어 있습니다. Code점화기는 박스에서 바로 꺼낼 수 있습니다.

시스템 폴더 구조는 다음과 같습니다.

// system/ subdirectories
system/
├── core/
├── database/
├── fonts/
├── helpers/
├── language/
└── libraries/

CodeIgniter 사용자 가이드 디렉토리

이 디렉토리는 여러분이 이해하고자 할 때 참고할 수 있는 안내서 역할을 합니다. CodeIgniter API입니다. 이 디렉토리는 용량을 증가시키고 실제 서버에 적합하지 않은 문서를 노출하므로, 애플리케이션을 프로덕션 환경에 배포할 때 업로드하지 않는 것이 좋습니다.

CodeIgniter 공급업체 목록

이 디렉터리에는 Composer를 통해 설치하는 패키지의 소스 파일이 포함되어 있습니다. 이 디렉터리의 파일은 그대로 두어야 하며, 어떠한 변경도 해서는 안 됩니다. user_guide 디렉터리와 달리, 이 디렉터리는 애플리케이션에서 Composer 패키지를 사용하는 경우 업로드해야 합니다.

index.php 파일

index.php 파일은 CodeIgniter 파일 구조에는 프레임워크에 제어권을 넘기기 전에 환경, 경로 및 오류 보고를 정의하는 부트스트랩 코드가 포함되어 있습니다. 이 파일은 루트 디렉터리에 있으며 들어오는 모든 HTTP 요청에 대한 프런트 컨트롤러 역할을 합니다.

방법 CodeIgniter 4는 구조를 변경합니다

CodeIgniter 4.x는 보안 및 PSR-4 자동 로딩을 개선하기 위해 레이아웃을 재구성했습니다. 단일 애플리케이션 폴더 대신 이제 세 개의 최상위 폴더가 표시되어 각 기능을 더욱 엄격하게 구분합니다.

  • 앱/ – 기존의 application/ 폴더와 동일하며, 컨트롤러, 모델, 뷰, 설정 파일, 필터 및 라이브러리를 포함합니다.
  • 공공의/ - 웹에 노출되는 유일한 폴더이며, index.php 파일과 CSS, JS, 이미지 파일이 포함되어 있습니다.
  • 쓰기 가능/ – 프레임워크가 런타임에 기록해야 하는 캐시, 로그, 세션 및 업로드 파일을 저장합니다.
  • 체계/ – 여전히 프레임워크 코어를 보유하고 있으며, 네임스페이스는 아래에 있습니다. Code점화기.
  • 벤더 / - Composer 패키지는 CI 3와 역할이 동일합니다.
// CodeIgniter 4 root layout
project-root/
├── app/
├── public/
├── writable/
├── system/
├── vendor/
├── tests/
├── composer.json
├── env
└── spark

오늘 새로운 프로젝트를 시작하신다면, CodeIgniter 4가 권장 버전입니다. 이전 버전의 코드베이스를 유지 관리하는 경우, 위에 설명된 CI 3 구조가 디스크에 저장된 내용과 일치합니다.

함께 일하기 Code점화 장치 구조의 일상

각 폴더의 위치를 ​​파악하면 일반적인 작업이 훨씬 수월해집니다. application/controllers/ (CI 4에서는 app/Controllers/) 폴더에 새 컨트롤러를 생성하고, config/routes.php 파일에서 해당 컨트롤러의 경로를 연결하세요. models/ 폴더에 모델을 빌드하고, views/ 폴더에 뷰 파일을 작성하여 출력을 렌더링하세요. 설정 파일은 config/ 폴더에, 재사용 가능한 코드는 helpers/ 또는 libraries/ 폴더에 저장하고, composer를 사용하여 vendor/ 폴더 안의 모든 것을 관리하세요. 이러한 원칙을 고수하면 프로젝트 규모가 커지더라도 쉽게 탐색할 수 있습니다.

자주 묻는 질문

애플리케이션 폴더에는 컨트롤러, 모델, 뷰와 같은 프로젝트 코드가 저장되며, 자유롭게 편집할 수 있습니다. 시스템 폴더에는 프레임워크 코어가 저장되는데, 프레임워크 업그레이드 시 덮어쓰기되므로 해당 파일은 절대 수정해서는 안 됩니다.

In CodeIgniter 4에서는 PSR-4 네임스페이스를 사용하여 app/Controllers/ 폴더에 새 컨트롤러를 배치합니다. 파일 이름과 클래스 이름을 일치시킨 다음, 프레임워크가 해당 컨트롤러로 요청을 전달할 수 있도록 app/Config/Routes.php 파일에 경로를 등록하세요.

아니요. user_guide 폴더는 로컬 문서 전용입니다. 시스템 배포 시 용량을 줄이고 운영 서버에서 프레임워크 참조 자료가 노출되는 것을 방지하기 위해 해당 폴더는 프로덕션 배포에서 제외해야 합니다. 반면, 벤더 및 시스템 폴더는 반드시 배포해야 합니다.

index.php 파일은 프런트 컨트롤러입니다. 이 파일은 환경을 설정하고, 경로 상수를 정의하며, 프레임워크 부트스트랩을 로드하여 모든 수신 요청이 이 파일을 통해 처리되도록 합니다. Code컨트롤러와 뷰에 도달하기 전의 Igniter 파이프라인입니다.

네. GitHub Copilot, Cursor, Claude와 같은 AI 도구는 컨트롤러, 모델, 뷰를 올바른 폴더에 생성하고, 익숙하지 않은 파일에 대한 설명을 제공하며, 잘못된 위치에 있는 클래스를 표시해 줍니다. 특히 여러 개발 환경을 전환할 때 매우 유용합니다. Code이그나이터 3와 Code이그나이터 4 레이아웃.

AI 어시스턴트는 컨트롤러가 요청을 처리하는 방식, 모델이 데이터를 관리하는 방식, 뷰가 출력을 렌더링하는 방식을 설명하고, 해당 파일을 올바른 폴더에 생성합니다. 또한 코드를 검토하고, 리팩토링을 제안하며, 실제 개발 환경에서 MVC 분리 원칙을 강화할 수 있도록 지원합니다. Code이그나이터 프로젝트.

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