CI4 56

[코드이그나이터] 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

[코드이그나이터] 어플리케이션 구조

어플리케이션 구조 출처: http://ci4doc.cikorea.net/concepts/structure.html 기본 디렉토리 /app, /system, /public, /writable, /tests 등등으로 구성되어 있음 app 작성한 모든 어플리케이션 코드가 있는 디렉토리 어플리케이션의 요구에 맞게 이 디렉터리의 구조를 자유롭게 수정 가능 /app /Config 구성 파일 저장 /Controllers 프로그램 흐름을 결정하는 컨트롤러 /Database 데이터베이스 마이그레이션 및 시드(seed) 파일 저장 /Filters 컨트롤러 전후에 실행할 수 있는 필터 클래스 저장 /Helpers 독립형 함수 모음(Helper) 저장 /Language 다국어 지원을 위한 언어 파일 저장 /Libraries ..

CI4 2020.09.01

[코드이그나이터] [첫번째 어플리케이션 제작(튜터리얼)] 뉴스 아이템 만들기 [데이터 등록 페이지]

뉴스 아이템 만들기 [데이터 등록] 출처: http://ci4doc.cikorea.net/tutorial/create_news_items.html 뉴스 아이템 만들기는 폼페이지를 제작하고 입력값을 테이블에 저장 하는 페이지를 생성함 form 생성 app/Views/news/create.php Title Text \Config\Services::validation()->listErrors()는 오류검증시 관련된 오류를 보고 하는데 사용함 csrf_field() CSRF 토큰을 이용하여 일반적인 공격으로 부터 보호하는 기능을 함 controller 설정 app/Controllers/News.php public function create() { $model = new NewsModel(); //유효성 검증 ..

CI4 2020.08.31

[코드이그나이터] [첫번째 어플리케이션 제작(튜터리얼)] 뉴스 섹션

뉴스 섹션 출처: http://ci4doc.cikorea.net/tutorial/news_section.html 뉴스섹션은 데이터 베이스를 연결하고 데이터 베이스에 등록된 내용을 출력하는 페이지 데이터 베이스 생성 여기서는 mysql을 default로 이용함 # 1. mysql에 사용자 계정 추가 GRANT ALL privileges ON DB명.* TO 계정명@localhost IDENTIFIED BY '비밀번호'; #2. 데이터 베이스 생성 create database ci4 default character set utf8; #3. 테이블 생성 CREATE TABLE news ( id int(11) NOT NULL AUTO_INCREMENT, title varchar(128) NOT NULL, slu..

CI4 2020.08.31

[코드이그나이터] [첫번째 어플리케이션 제작(튜터리얼)] 정적 페이지

CI4 > Tutorial > 정적 페이지(Static pages) 출처: http://ci4doc.cikorea.net/tutorial/static_pages.html app/Views 디렉토리에 pages 디렉토리를 생성한 후 about.php 및 home.php 생성 app/Views 디렉토리에 templates 디렉토리를 생성한 후 header.php 및 footer.php 생성 app/Controllers 디렉토리에 Pages.php 파일 생성 Pages.php footer.php © 2019 app/Config/Routes.php

CI4 2020.08.28

[코드이그나이터] 라우팅

라우팅 출처: http://ci4doc.cikorea.net/incoming/routing.html URI 세그먼트의 일반적인 패턴 example.com/class/method/id/ 라우팅을 이용한 패턴 example.com/product/1/ 자리 표시자(Placeholder) 경로에서 첫번째 매개변수는 일치한 URI 이고 두번째 매개 변수는 라우팅해야할 대상 아래의 예제에서 URL의 첫번째 세그먼트는 product 이고 두번째 세그먼트에 숫자가 있으면 Pages 클래스의 view 메소드로 라우팅 됨 $routes->add('product/(:num)', 'Pages::view'); Placeholders Description (:any) 해당 시점부터 URI 끝까지의 모든 문자와 일치 (:segme..

CI4 2020.08.28