[CakePHP3.10] レイアウトを作る

index.ctp

	<div class="row">
		<p>This is sample contents.</p>
		<p>これは、Helloレイアウトを利用したサンプルです。</p>	
	</div>

HelloController.php

	public function index(){

	}

### レイアウトに必要なもの
– レイアウトのテンプレート
– スタイルシートファイル
– スクリプトファイル

/webroot/css/hello.css

html {
	margin: 0px;
}
body {
	margin: 0px;
}
h1 {
	font-size: 48px;
	margin: 0px 20px;
	color: #bbf;
}
p {
	font-size: 14pt;
	color: #669;
}
.head {
	width: 100%;
	padding: 0px;
	margin: 0px;
	background-color: #f0f0ff;
}
.foot {
	position: fixed;
	bottom: 0px;
	left: 0px;
	width: 100%;
	height: 50px;
	text-align: right;
	color: #99f;
	background-color: #f0f0ff;
}
.content {
	margin: 5px 20px;
}

src/Template/Layout/hello.ctp

<!DOCTYPE html>
<html lang="en">
<head>
	<?=$this->Html->charset() ?>
	<title><?=$this->fetch("title") ?></title>
	<?=$this->Html->css("hello") ?>
	<?=$this->Html->script("hello") ?>
</head>
<body>
	<header class="head row">
		<h1><?=$this->fetch("title") ?></h1>
	</header>
	<div class="row">
		<?=$this->fetch("content") ?>
	</div>
	<footer class="foot row">
		<h5>copyright 2022 hpscript</h5>
	</footer>
</body>
</html>

HelloController.php

	public function initialize(){
		$this->viewBuilder()->setLayout("hello");
	}

Template/Element/header.ctp

<h1 style="text-align:right; font-size:30px; margin: 0px 20px;">
	title: <?=$this->fetch('title') ?>.
</h1>
<h2 style="text-align:right; font-size:16pt; margin:0px 20px; color:#ccf;">
	~ <?=$subtitle ?> ~
</h2>

Template/Element/footer.ctp

なるほどー、共通レイアウトはLayoutフォルダで、パーツはElementフォルダで、メソッドの画面は ${ControllerName}画面で構築していくのね
レイアウト周りの全体構造は理解した