반응형
특정 php파일에  다른 php파일을 포함시키는데 필요한 함수이다. 반복적으로 사용되는 code를 별도로 관리 하면서, 필요할 때만 불러와 사용할 수 있어 유지 관리에 매우 유용한 함수이다.

 

include와 require의 차이는 호출 하려는 파일이 없을 경우 출력의 차이다.
include( ) : warning을 출력하고 계속 실행 됨.
require( ) : fatal error을 출력하고 실행이 중단 됨.

_once가 있고 없고의 차이는 몇 번을 호출 하느냐에 있다.
_once가 붙어 있는 경우 이전에 호출한 적이 있는지 확인한 후 한번이라도 호출한 적이 있으면 다시 호출하지 않는다.
그러나 _once가 없는 경우에는 함수를 사용할 때마다 계속 호출하게 된다.

 

 

반응형

'PHP' 카테고리의 다른 글

[ PHP ] 로컬 개발환경 구축2 - Phpstorm  (0) 2020.04.27
[ PHP ] 로컬 개발환경 구축1 - APM  (2) 2020.04.27
[ PHP ] Now Document의 사용법  (0) 2020.04.27
[ PHP ] Here Document의 사용법  (0) 2020.04.27
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형
Now Document는 PHP5.3.0부터 지원한 것으로, Here Document와 같이 긴 문자열을 변수에 대입하거나, 출력하는 경우에 사용된다. 한 가지 차이점은 변수값이나 이스케이프문자는 값이 출력되지 않고, 표기한 그대로 출력된다 점이다

긴 문자열을 변수에 대입하는 경우에는 다음과 같이 사용한다.
시작하는 식별자를 single quotation( ' ' )으로 감싸주는 것이 Here Document와의 차이점이다.

 

<?php
$변수 = <<<'식별자'
문자열
식별자;

식별자는 통상 대문자를 사용한다. 자주 사용 되는 식별자를 보면 "EOD", "EOM", "EOF" 등을 사용하지만, "ABC"와 같이 어떤 문자열을 사용해도 상관없다.

다음은 Now Document에서 긴 문자열을 변수에 대입하는 예제 및 실행 결과이다.

 

<?php 
$name = "Now Document"; 
echo <<<'ABC' 
Here Document와는 달리 위에 선언한 변수는 출력할수 없다.<br />
아래와 같이 변수명이 그대로 출력된다.<br /> 
변수 출력 : $name <br /> 
ABC;
Here Document와는 달리 위에 선언한 변수는 출력할수 없다.
아래와 같이 변수명이 그대로 출력된다.
변수 출력 : $name

위의 출력 결과와 같이 $name변수는 값이 출력 되지 않고 문장에 기술된 대로 출력이 되는 것을 알 수 있다.

(참고) Here Document의 사용법

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형
Here Document는 긴 문자열을 변수에 대입하거나, 출력하는 경우에 사용된다.

긴 문자열을 변수에 대입하는 경우에는 다음과 같이 사용한다.
<?php
$변수 = <<<식별자
문자열
식별자;

 

식별자는 통상 대문자를 사용한다. 자주 사용 되는 식별자를 보면 "EOD", "EOM", "EOF" 등이 있으나, "ABC"와 같이 어떤 문자열을 사용해도 상관없다.

다음은 Here Document에서 긴 문자열을 변수에 대입하는 예제 및 실행 결과이다.

 

<?php 
$value = <<<EOD 
변수에 이렇게 긴 문자열을 대입할 때 사용한다.<br /> 
식별자는 EOD를 사용했다.<br /> 
식별자는 대문자를 사용해야 한다.<br /> 
EOD; 
echo $value;
변수에 이렇게 긴 문자열을 대입할 때 사용한다.
식별자는 EOD를 사용했다.
식별자는 대문자를 사용해야 한다.

다음은 긴 문장을 변수에 대입하지 않고, echo를 이용하여 바로 출력하는 예제 및 실행 결과이다. 위에서 설명한 것과 같이 EOD가 아닌 ABC를 사용해도 정상으로 동작한다.

 

<?php echo <<<ABC 
변수에 대입하지 않고도,<br /> 
echo등을 이용해서 긴 문자열을 출력할 때도 사용 가능하다.<br /> 
식별자는 임의의 문자열을 사용해도 된다.<br /> 
ABC;​

 

변수에 대입하지 않고도,
echo등을 이용해서 긴 문자열을 출력할 때도 사용 가능하다.
식별자는 임의의 문자열을 사용해도 된다.

다음은 문자열과 변수값을 함께 출력하는 예제 및 실행 결과이다.

<?php 
$name = "개발자N"; 
echo <<<ABC 
위에서 선언한 name변수도 출력할 수 있다.<br /> 
변수 출력 : $name <br /> 
ABC;

 

위에서 선언한 name변수도 출력할 수 있다.
변수 출력 : 블투맨

(주의) 이스케이프 문자는 출력되지 않는다.

(참고) Now Document의 사용법.

 

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

[ MVC Structure ] Model-View-Controller 구조 패턴의 이해

MVC 구조란 Model, View, Controller등 3가지 요소로 구성된 구조의 개발 패턴을 의미한다. 이 MVC패턴을 사용하면 애플리케이션을 구성하는 시각적 요소와 데이터간 간섭 없이, 각각의 요소를 독립적으로 개발 함으로서 각 요소의 재사용이 가능할 뿐만 아니라, 유지보수에 있어서도 큰 이점이 있다.


MVC구조 패턴 각 구조의 역할은 다음과 같다.


1. Controller : 모델에 명령을 전달하여 상태를 변경하거나,  view에 명령을 전달하여 프리젠테이션을 변경하는 역할을 한다. 이때 view의 상태를 읽어 model에 전달하거나, model의 상태를 읽어 view에 전달하는 역할도 포함한다.

2. Model : 상태변화가 있을 때 이를 controller나 view에 통보하는 역할을 한다. 이 과정을 통해 view는 최신의 결과물을 프리젠테이션 할 수 있게 되며, model은 갱신된 data를 보관하게 된다.

3. View : 사용자에게 프리젠테이션 할 결과물을 생성하는 역할을 수행한다.


사용자를 중심으로 이 패턴을 다시 한번 정리하면 다음과 같다.

사용자가 browser를 통해 data를 요청하면, controller는 이를 받아 필요한 data를 model모듈로부터 받아 view에 전달하게 되며, view에서는 이 data를 browser를 통해 사용자가 볼 수 있도록 해준다. 이 과정을 진행하는 동안 보관해 두어야 할 data가 발생하면, controller는 이를 model에 전달하여 처리하게 된다.

즉 controller, model, view는 각각 logic, data, view를 담당하게 되며, 각각의 역할 범위를 명확히 하여 서로의 영역을 침범하지 않는 개발 방법을 MVC구조 패턴에 의한 개발이라고 할 수 있다.


[ MVC 패턴 개발 가이드 라인 ]

1. model은 애플리케이션 내부 data 및 view에 제공할 data만을 보관한다.

2. view는 유저에게 보여질 화면에 표시될 시각적 UI요소만을 보관한다.

3. controller는 model과 view를 연결하는데 필요한 logic만을 보관한다.

4. model은 사용자에게 보여질 모든 data를 가지고 있어야  한다.

5. view는 model이 보관하고 있거나, 보관하게 될 어떠한 data도 별도로 보관하지 말아야 한다.

6. view는 controller가 담당해야 하는 logic을 view내부에서 처리하지 말아야 한다.

7. controller는 model이나 view의 변동사항을 모니터링 할 수 있어야 한다.


즉 model, view, controller 각각의 요소들은 자신의 역할 이외에 상대방의 어떤 logic이나 data도 가지고 있어서는 안된다는 것 이다.

그 이유는 이렇게 역할이 명확히 구분되어 있어야만 기능의 추가, 오류 등이 발생하는 상황에서도 해당 부분만을 개발, 수정하여 생산성을 높일 수 있기 때문이다.


반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,