[신입15] PHP(6) - 모듈화(require)

SeoChanhee·2021년 2월 3일
0

< PHP 파일로 모듈화 - require >

  • 리팩토링(refactoring) : 기능은 그대로 두고 내부적인 코드를 훨씬 보기 좋고 유지 보수하기 편하게 중복된 코드를 제거하는 등의 작업.
  • 라이브러리(lib 디렉토리) : 프로그래밍에서 재사용하기 좋도록 코드나 로직을 정리 정돈해놓은 것.

lib 디렉토리 : 재사용할 수 있는 로직

// lib/print.php
<?php
function print_title(){
  if(isset($_GET['id'])){
    echo $_GET['id'];
  } else {
    echo "Welcome";
  }
}
function print_description(){
  if(isset($_GET['id'])){
    echo file_get_contents("data/".$_GET['id']);
  } else {
    echo "Hello, PHP";
  }
}
function print_list(){
  $list = scandir('./data');
  $i = 0;
  while($i < count($list)){
    if($list[$i] != '.'){
      if($list[$i] != '..'){
        echo "<li><a href=\"index.php?id=$list[$i]\">$list[$i]</a></li>\n";
      }
    }
    $i = $i + 1;
  }
}
?>
// index.php, create.php, update.php
<?php
require('lib.print.php');
?>

view 디렉토리

bottom.php

<!-- view/bottom.php -->
  </body>
</html>
// index.php, create.php, update.php
<?php require('view/bottom.php'); ?>

top.php

<!-- view/top.php -->
<?php require_once('lib/print.php'); ?> 
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title><?php print_title(); ?></title>
  </head>
  <body>
  • _once : 같은 파일 한 번만 포함
  • require_once('lib/print.php') : top.php에서 print_title()lib/print.php에서 호출한다는 인과관계를 드러내기 위해 작성
// index.php, create.php, update.php
<?php
require_once('lib.print.php');
require_once('view/top.php');
?>

include와 require의 차이

  • include : 포함할 파일이 없어도 다음 코드 실행
  • require : 포함할 파일이 없으면 다음 코드 실행하지 않음


출처: PHP / include(), include_once(), require(), require_once() / 외부 파일 포함하는 함수, PHP 파일로 모듈화 - require

0개의 댓글