THINKPHP 5.0/5.1 を完全に移植した静的サイト ジェネレーターは、生成ルールをカスタマイズし、動的パラメーターをサポートし、パラメーター範囲設定をサポートできます。 元の開発プロセスを変更せずに静的サイトを構築するソリューションです。 時間があればパフォーマンステストをしてみます。 ご使用中にその他ご質問がございましたら、メッセージを残してください。静的サイトの構築、THINKPHP フレームワークの HTML ファイルの構築
このカテゴリは TP5.0 と 5.1 の両方のバージョンに適しています。TP5.1 は 5.0 に比べて変更点が多いため、このプロジェクトはバージョンに合わせて作成されています。
public/dist
ディレクトリ内の静的ページを確認して F5 キーを押します。静的ページ効果を更新するには、元の TP パスまたはルーティングを使用してテンプレート効果を表示することもできます。 composer require jkbuildhtml/jkbuildhtml
dist_rules.php
ファイルをアプリケーション ディレクトリに作成します。以下の静的ルールを参照してください。 // 静态站放置路径:
'dist_path' => 'public/',
// 静态页存放文件夹名 一般放置在public下;静态站点直接指向这个目录即可:
'dist_dir_name' => 'dist',
// 生成的静态页子页的存放目录,即匹配规则中没有@符号的页面的存放目录,注意例中路径中的'dist/site-pages'会进行目录匹配作为替换./或../的依据,所以这个名称在项目文件夹名中最好唯一:
'dist_sub_dir' => 'site-pages',
// 要生成静态页的模块名:
'dist_module_name' => 'index',
// 静态页文件名字中的参数分隔符:
'dist_file_dot' => '_',
// 静态资源路径替换 静态站点根目录下会替换成 `./` 其他会替换成 `../`
'dist_src_match' => '/public/static/',
$builder = new JKBuildHtmlBuilder()
すべての静的ページをバッチで生成するステートメントを任意のコントローラーに配置するだけで、バックグラウンドのどこかに配置することができます。 ページ表示は 1 行ずつフラッシュして表示されます。ajax を使用して自分でコーディングすることもできます。
$builder->buildAll();
通常、リスト ページのデータの各行の後に生一个页面
ボタンが追加されます。
$builder->buildOne($path, ['id' => 5]);
単一のページによって生成されるパスは通常、コントローラー名とメソッド名であり、静的生成ルールで宣言する必要があることに注意してください。宣言しないとエラーが表示されます。
TP コントローラーのフェッチ メソッドをカプセル化して、開発中に生成できるようにすることもできます。
protected function fetchHtml()
{
$builder = new JKBuildHtmlBuilder();
$builder->buildFromFetch( $html = $this->fetch(), input('get.') );
return $html;
}
dist_dir_name
構成フォルダーの下に配置する必要があります。静的ページは、このフォルダーの外に配置されている場合、サイト ディレクトリがこのディレクトリでない限りアクセスできません。元々、TP リソースは public の任意の場所に配置されていましたが、静的に生成されたクラスでは、次のルールに従う必要があります。
dist_rules.php
の説明:キーと値のペアの説明:
元の TP テンプレート ファイルのリンク パス:
<?php
// +----------------------------------------------------------------------
// | 生成静态页的规则文件
// +----------------------------------------------------------------------
return [
// 这个是首页 带@的会生成在dist目录下,否则生成在子文件夹里;生成的html文件不带@
'@index' => 'index/index',
'@news' => 'news/index',
// 这个是带db的,表示要查询article表的id列,循环生成静态页
'news_:id' => ['news/find', 'article'],
// 这个是带自定义方法的,表示要执行getjobis方法返回id为键的二维数组,循环生成静态页
'job_:id' => ['jobs/find', 'func:getjobids'],
// 这个是请求tp的模块/控制器/方法,返回一个二维数组
'job_:id_:code' => ['index/index', 'func:dist/index/test'],
];
dist/site-pages
ディレクトリに生成されます。値は、控制器/方法
の形式の「リクエスト パス」にすることができます。ルートが定義されている場合、カスタム モジュール名が自動的に追加されます。
値は配列にすることもできます。最初の値はパラメータ リクエストを渡すリクエスト パス、2 番目の値はデータベースの名前、つまりパラメータ フィールドが配置されている列のすべての値です。システムはパラメータに基づいてバッチでページを生成します: 'news_:id' => ['news/find', 'article'] は、article テーブルの id 列をクエリします。
db クエリ条件を追加する場合は、3 番目の値をたとえばid < 100
に入力します。これは db の where 条件に渡され、tp クエリ構文に準拠する必要があります。これは'news_:id' => ['news/find', 'article', ['id' => ['<',100]]],
になります。 'news_:id' => ['news/find', 'article', ['id' => ['<',100]]],
または..."id < 100"]
ID を生成する関数をカスタマイズしたい場合は、2 番目のパラメーターをグローバル メソッドに設定できます。このメソッドは common.php に配置するか (関数名にfunc:
を含める必要はありません)、または任意のコントローラーに記述できます'func:admin/index/getJobIds'
または'func:getjobids'
func 型を使用する場合、戻り値はパラメータをキーとした 2 次元配列でなければなりません。例: ['id' => [2,3,4,5]]
func タイプには 3 番目の値を指定でき、これは func のパラメータとして渡されます。
静的生成コントローラーは、異常なページを HTML ファイルに直接生成し、生成を停止しません。
崔レンフェン [email protected]
996ICU プロトコルに完全に準拠しており、完全にオープンソースです