WEB2 - PHP

PHP 파일로 모듈화 - require

수업소개

파일로 코드를 분류해서 정리정돈 하는 방법을 알아봅시다

 

 

 

변경사항

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;
  }
}
?>

 

view/top.php

<?php
require_once('lib/print.php');
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>
      <?php
      print_title();
      ?>
    </title>
  </head>
  <body>
    <h1><a href="index.php">WEB</a></h1>
    <ol>
      <?php
      print_list();
      ?>
    </ol>

 

view/bottom.php

</body>
</html>

 

index.php

<?php
require_once('lib/print.php');
require_once('view/top.php');
?>
    <a href="create.php">create</a>
    <?php if(isset($_GET['id'])) { ?>
      <a href="update.php?id=<?=$_GET['id']?>">update</a>
      <form action="delete_process.php" method="post">
        <input type="hidden" name="id" value="<?=$_GET['id']?>">
        <input type="submit" value="delete">
      </form>
    <?php } ?>
    <h2>
      <?php
      print_title();
      ?>
    </h2>
    <?php
    print_description();
     ?>
<?php
require_once('view/bottom.php');
?>

 

create.php

<?php
require('lib/print.php');
require('view/top.php');
?>
    <a href="create.php">create</a>
    <form action="create_process.php" method="post">
      <p>
        <input type="text" name="title" placeholder="Title">
      </p>
      <p>
        <textarea name="description" placeholder="Description"></textarea>
      </p>
      <p>
        <input type="submit">
      </p>
    </form>
<?php
require('view/bottom.php');
?>

 

update.php

<?php
require('lib/print.php');
require('view/top.php');
?>
    <a href="create.php">create</a>
    <?php if(isset($_GET['id'])) { ?>
      <a href="update.php?id=<?=$_GET['id']?>">update</a>
    <?php } ?>
    <h2>
     <form action="update_process.php" method="post">
       <input type="hidden" name="old_title" value="<?=$_GET['id']?>">
       <p>
         <input type="text" name="title" placeholder="Title" value="<?php print_title(); ?>">
       </p>
       <p>
         <textarea name="description" placeholder="Description"><?php print_description(); ?></textarea>
       </p>
       <p>
         <input type="submit">
       </p>
     </form>
<?php
require('view/bottom.php');
?>

 

댓글

댓글 본문
작성자
비밀번호
  1. Gihoon Pomme Ryu
    완료. 고맙습니다.
  2. 로버트한
    코드가 깔끔해 졌여요^^ 감사합니다.^^
  3. 심민섭
    왜냐면 top.php를 그냥 바로 켠것이 아니라 index.php가 있는 곳에서 불러온 셈이기 때문입니다.
    대화보기
    • lib 폴더와 view 폴더의 위치가 달라서 top.php 에서 require 문을 쓸 때 '../lib/print.php' 로 했더니 에러가 나고
      그냥 'lib/print.php' 로 하니 정상실행 되네요.
      path를 따져보면 부모폴더로 올라간 이후 lib 를 지정해주는 게 맞을 것 같은데 말이죠.
      혹시 왜 그런지 이유를 아시는 분 있으신가요?
    • 아톰에 index.php와 update.php 왔다갔다 하는 단축키 뭔지 아시는분 좀 갈켜주세요
    • 제갈량
      모듈을 이용하니
      코드가 확실히 간결해지고
      코드 보기가 상당히 수월해졌네요.
      requure_once를 쓰지 않으면 에러가 난다는 것까지 확실하게 알았습니다.
      감사합니다. ^^
    • Hyun Woo Lee
      중복된 코드들에 대해 정리정돈 된 느낌이 들어서 좋네요.
      소스 가독성 또한 높아진다는..!
    • Mingi Son
      코드가 훨씬 보기 쉬워지네요!! 감사합니다
    • node.js
      require_once 함수를 쓰지 않고 index.php에 top.php를 가져오는 코드를 지우면 중복을 더 줄일 수 있어요
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기