분류 전체보기 486

[코드이그나이터] 컨트롤러 (Controller)

컨트롤러 (Controller) 출처: http://ci4doc.cikorea.net/incoming/controllers.html 'Helloworld.php' 컨트롤러 파일의 이름은 대문자 로 시작 example.com/class/method/ID 첫 번째 세그먼트는 호출해야 하는 컨트롤러 클래스를 나타냄 두 번째 세그먼트는 호출해야 할 클래스 메소드를 나타냄 세 번째 세그먼트와 추가 세그먼트는 컨트롤러에 전달될 ID 및 변수를 나타냄 형식

CI4 2020.09.03

[코드이그나이터] 모듈화

모듈화 출처: http://ci4doc.cikorea.net/general/modules.html CI3 에서 말하는 HMVC 형태를 CI4 에서 처리하는 방법이라고 생각하면 쉬울듯 디렉토리 구성 - modules - main - Config - Controllers - Models - Views app\Config\Autoload.php 파일내 $psr4 에 관련 정보 추가 public $psr4 = [ APP_NAMESPACE => APPPATH, // For custom app namespace 'Config' => APPPATH . 'Config', //새로 추가 'Modules' => ROOTPATH . 'modules' ]; app\Co..

CI4 2020.09.03

[코드이그나이터] AJAX Requests

AJAX Requests 출처: http://ci4doc.cikorea.net/general/ajax.html 코드이그나이터에서 제공하는 isAJAX() 메서드는 X-Requested-With 헤더를 사용하여 요청이 XHR인지 정상인지를 정의 그래서 isAJAX() 메서드 결과값의 안정성을 유지하기 위해서는 수동으로 X-Requested-With 를 정의 해줘야함 Fetch API fetch(url, { method: "get", headers: { "Content-Type": "application/json", "X-Requested-With": "XMLHttpRequest" } }); jQuery X-Requested-With 헤더는 모든 $.ajax() 요청의 표준 헤더이기 때문에 이 헤더를 명시적..

CI4 2020.09.02

[코드이그나이터] 웹 페이지 캐싱(caching)

웹 페이지 캐싱(caching) 출처: http://ci4doc.cikorea.net/general/caching.html 페이지를 캐싱하면 페이지가 완전히 렌더링된 상태로 저장되므로 정적 웹 페이지와 유사한 성능을 얻을 수 있음 \writable\cache 디렉토리에 캐시 파일이 생성됨 캐싱 활성화 컨트롤러의 메소드에 추가 $this->cachePage(초); 캐싱 삭제 캐싱 코드를 제거하면, 활성화시 지정된 시간후에 캐시 파일이 삭제 app\Controllers\Home.php

CI4 2020.09.02

[코드이그나이터] 헬퍼(Helper)

헬퍼(helper) 출처: http://ci4doc.cikorea.net/general/helpers.html 헬퍼는 작업을 도와주는 역활을 하며 함수의 모음 URL 헬퍼: 링크를 만드는데 도움 Form 헬퍼: form을 만드는데 도움 Text 헬퍼: 텍스트 생성에 도움 Cookie 헬퍼: 쿠키관련하여 도움 File 헬퍼: 파일 처리등에 도움 Codeigniter(CI4) 는 기본적으로 헬퍼를 로드 하지 않기 때문에 필요한 헬퍼는 로드를 해야함 헬퍼는 system/Helpers, app/Helpers 디렉토리에 저장 되며 먼저 app/Helpers 디렉토리를 검사한 다음 존재하지 않을 경우 system/Helpers 디렉토리를 찾음 헬퍼 로드 형식은 helper('name'); 이며 nam..

CI4 2020.09.02

[코드이그나이터] URL 에서 index.php 제거

codeigniter URL > index.php 제거 출처: http://ci4doc.cikorea.net/general/urls.html#index-php 기본적으로 URL은 index.php를 포함 example.com/index.php/news/article/my_article Apache web server mod_rewrite 모듈이 활성화 되어 있다면 .htaccess을 이용하여 index.php 제거 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] NGINX location / { try_files $uri $uri/..

CI4 2020.09.02

[코드이그나이터] configuration 파일

config 파일 출처: http://ci4doc.cikorea.net/general/configuration.html configuration 파일은 수많은 파라미터 와 초기 설정값을 정의 하는데 이용 하나의 파일안에 모든 설정파일들을 포함시키는 형태가 아님 설정 항목이 필요로 하는 클래스 들은 해당 클래스명 과 같은 config 파일들을 가지고 있음 CI3의 경우 해당 파일들은 변수들의 집합형태였지만 CI4에서는 클래스 형태로 변경됨 구성 파일은 /app/Config 폴더에 위치 설정파일 호출 new 키워드를 이용하여 호출 // 자신이 직접 설정객체를 생성 하는 방법 $config = new \Config\Pager(); config() 함수를 이용하여 호출 // 네임스페이스가 있는 설정 class ..

CI4 2020.09.02

[코드이그나이터] Service

서비스(Service) 출처: http://ci4doc.cikorea.net/concepts/services.html 사용 이유 객체화 과정에서 수정이 편한다. 해당 클래스를 직접 객체화 할경우 $timer = new \CodeIgniter\Debug\Timer(); 해당 객체를 1000개의 파일에서 사용했다고 가정하고 만약 클래스의 경로가 변경될 경우 1000개의 파일을 모두 찾아서 수정해야하는 단점이 있음 해당 클래스의 객체화를 중간다리 역활을 하는 service 파일에서 할경우 $timer = \Config\Services::timer(); timer 클래스를 이용하여 객체화 하지 않고 중간다리 역활을 하는 service 에서 객체화를 하게 되면 일일이 수정하는 대신 중간다리 역활을 하는 servi..

CI4 2020.09.01

[코드이그나이터] 파일 오토로드(autoload)

파일 오토로드(autoload) 출처: http://ci4doc.cikorea.net/concepts/autoloader.html 많은 수의 클래스를 requires()로 하드코딩 하는것은 번거롭기때문에 사용 CodeIgniter 오토로더는 네임스페이스가 없는 개별 클래스, PSR4 오토로드 디렉토리 구조를 준수하는 네임스페이스 클래스, 공통 디렉토리에서 클래스를 찾으려고 시도 초기 설정은 /app/Config/Autoload.php에서 이뤄짐 이 파일에는 두 개의 기본 배열이 포함되어 있으며 하나는 클래스맵을 위한 것이고, 다른 하나는 PSR4 호환 네임스페이스를 위한 것 네임스페이스 psr4 배열을 사용하면 네임스페이스를 해당 클래스가 있는 디렉토리에 매핑 할 수 있음 $psr4 = [ 'Ap..

CI4 2020.09.01

[코드이그나이터] 모델, 뷰 및 컨트롤러

모델, 뷰 및 컨트롤러 출처: http://ci4doc.cikorea.net/concepts/mvc.html Models 어플리케이션의 데이터를 관리하고 어플리케이션이 필요로 하는 비지니스 규칙을 시행 Views 논리가 거의 없는 간단한 파일 뷰는 가장 단순한 파일이며, 일반적으로 매우 적은 양의 PHP 코드를 가진 HTML 모델은 데이터베이스에서 데이터를 가져 오거나, 넣을 때 비즈니스 규칙을 적용하는 것과, 데이터베이스에 데이터를 실제 저장하거나 검색 Controllers 뷰 와 데이터 사이에서 데이터를 정리하는 역활을 함 사용자로부터 입력을 받은 다음 처리 방법을 결정 컨트롤러의 다른 역할은 HTTP 요청과 관련된 모든 것을 처리하는 것

CI4 2020.09.01