LoginSignup
0
0

More than 1 year has passed since last update.

PHPⅡで自動化を学びました

Last updated at Posted at 2019-03-14

未来電子テクノロジーでインターンをしているりくです。

今回は、プログラミングが愛される理由のひとつである自動化について書き記していきます。

ついに知った自動化

Progateさんからいただいた知識を元に、何か作ってみました。

index.php
<?php require_once('data.php') ?>

<!DOCTYPE html>
<html>
<form method="post" action="confirm.php">
    <?php foreach ($menus as $menu): ?>
        <h3><?php echo $menu->getName() ?></h3>
        <input type="text" value="記入せよ" name="<?php echo $menu->getName() ?>">
    <?php endforeach ?>
  <input type="submit" value="提出する">
</form>
</html>
data.php

<?php
require_once('menu.php');

$Profession = new Menu('職業');
$type = new Menu('属性');
$myname = new Menu('名前');
$age = new Menu('年齢');

$menus = array($Profession, $type, $myname, $age);

?>
menu.php

<?php
class Menu {
  public $name;
  public $orderCount;

  public function __construct($name) {
    $this->name = $name;
  }

  public function getName() {
    return $this->name;
  }

  public function getOrderCount() {
    return $this->orderCount;
  }

  public function setOrderCount($orderCount) {
    $this->orderCount = $orderCount;
  }
}
?>
confirm.php

<?php require_once('data.php') ?>

<!DOCTYPE html>
<html>
  <meta charset="utf-8">
    <h2>記入内容</h2>
    <?php foreach ($menus as $menu): ?>
      <?php
        $orderCount = $_POST[$menu->getName()];
        $menu->setOrderCount($orderCount);
      ?>
      <p>
        <?php if($orderCount=="記入せよ"){
          $orderCount="記入しろっていったでしょうが";
        }?>

        <?php echo $menu->getName() ?><?php echo $orderCount ?>
      </p>
    <?php endforeach ?>
</html>

このコードは、自分の経歴みたいな物を書いて送信するものですが、そんなことはどうでもいいです。
ありがたい機能はmenu.phpにあるメソッドたちです。
いろいろありますが、中でも__constructは、newを用いてインスタンスを生成するときに、このメソッドが自動的に呼びだしをします。
つまり、newを持つインスタンスが生成させる度に、勝手に出てくるので、ここで言う「職業」とかを書き出してくれます。
また、index.phpにあるforeachによって、「記入せよ」とか、テキストを書くボックスの設置を1回書いただけで何回も表示してくれます。

まとめと感想

menu.phpやdata.phpにどうするかの指示を書いて、index.phpのところに「foreach」などで型を作ったら、1から全部書かなくてもいいというのがすばらしいなと思いました。
このコードだと4つだけなので特に恩恵が得られるわけではないですが、100個とか1000個とかになると、こうやってまとめないと重くなったりするので、やはり必須であるコードです。
もし、誤りや無駄な文があれば修正するので、指摘してくれると助かります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0