PHP で動作する静的サイトのベース
docker compose up
- Wordpress: https://localhost:8080
第1引数のパスを基準にして、第2引数のパスを絶対パスに変換する関数。
// /top/index.php
$path = path_resolve(__DIR__, '../_/styles/global.min.css'); // 👉 /_/styles/global.min.css
PHP ファイルをレンダリングする関数。
render('../component.php');
第2引数に配列を渡すと、レンダリングされる PHP ファイル内で $props
として受け取れる。
// page.php
render('../component.php', ['title' => 'タイトル']);
// component.php
echo $props['title']; // 👉 タイトル
実行することで Teleporter が使用できるようになる関数。
setup_teleporter()
基本的に、テレポーターを使用したいページの先頭で実行するのが良い。
<?php setup_teleporter() ?>
<html>
...
</html>
テレポーターを設置する関数。
<head>
<?php teleporter('head') ?>
</head>
テレポーターへ文字列を送信する関数。
teleport('head', '<title>タイトル</title>');
また、第3引数のオプションで key
を渡すことで、重複した送信を防ぐことができる。
// 1回目
teleport('head', '<title>Foo</title>', array('key' => 'title'));
// 二回目(`title` キーは既にテレポート済みなので送信されない)
teleport('head', '<title>Bar</title>', array('key' => 'title'));
// 出力 👉 <title>Foo</title>
CSS ファイルのテレポートに特化した関数。
// ローカルファイルの読み込み
teleport_style('head', path_resolve(__DIR__, './style.min.css'));
// 外部ファイルの読み込み
teleport_style('head', 'https://cdn.example.com/style.min.css');
第2引数のパスを自動で key
として扱うため、オプションを設定しなくても重複した読み込みを防ぐことができる。
JavaScript ファイルのテレポートに特化した関数。
// ローカルファイルの読み込み
teleport_script('head', path_resolve(__DIR__, './script.js'));
// 外部ファイルの読み込み
teleport_script('head', 'https://cdn.example.com/script.js');
第2引数のパスを自動で key
として扱うため、オプションを設定しなくても重複した読み込みを防ぐことができる。
テレポーターをフラッシュする関数。
flush_teleporter();