Le générateur de site statique parfaitement greffé sur THINKPHP 5.0/5.1 peut personnaliser les règles de génération, prendre en charge les paramètres dynamiques et prendre en charge les paramètres de plage de paramètres. C'est une solution pour construire une station statique sans modifier le processus de développement original. Je ferai quelques tests de performances quand j'aurai le temps. Si vous avez d'autres questions pendant l'utilisation, veuillez laisser un message. créer un site statique, créer un fichier html pour le framework THINKPHP
Cette catégorie convient aux versions TP5.0 et 5.1. Étant donné que TP5.1 comporte plus de modifications que la version 5.0, ce projet a été adapté à la version, alors n'hésitez pas à l'utiliser.
public/dist
et appuyer sur F5. pour actualiser l'effet de page statique. Vous pouvez également utiliser le chemin ou le routage TP d'origine pour afficher l'effet de modèle. composer require jkbuildhtml/jkbuildhtml
dist_rules.php
dans le répertoire de l'application. Voir les règles statiques ci-dessous. // 静态站放置路径:
'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()
Placez une instruction dans n'importe quel contrôleur pour générer toutes les pages statiques par lots. Tout ce que vous avez à faire est de la placer quelque part en arrière-plan. L'affichage de la page est affiché ligne par ligne par vidage. Si vous souhaitez utiliser ajax pour le coder vous-même, vous le pouvez bien sûr.
$builder->buildAll();
Il peut également être généré sur une seule page. Généralement, un bouton生一个页面
est ajouté après chaque ligne de données sur la page de liste :
$builder->buildOne($path, ['id' => 5]);
Il est à noter que les chemins générés par une seule page sont généralement des noms de contrôleurs et de méthodes, qui doivent être déclarés dans les règles de génération statique, sinon une erreur sera générée.
Vous pouvez également encapsuler la méthode fetch du contrôleur TP, afin qu'elle puisse être générée lors du développement.
protected function fetchHtml()
{
$builder = new JKBuildHtmlBuilder();
$builder->buildFromFetch( $html = $this->fetch(), input('get.') );
return $html;
}
dist_dir_name
. Les pages statiques accéderont à ces ressources si elles sont placées en dehors de ce dossier, elles ne seront accessibles que si le répertoire du site n'est pas ce répertoire.À l'origine, les ressources TP étaient placées n'importe où sous public, mais avec les classes générées statiquement, vous devez suivre les règles. Voici les suggestions :
dist_rules.php
:Description de la paire clé-valeur :
Fichier de modèle TP d'origine un chemin de lien :
<?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
. La valeur peut être un "chemin de requête" sous la forme控制器/方法
. Le nom du module personnalisé sera automatiquement ajouté lors de la demande. Si une route est définie, la route sera écrite.
La valeur peut également être un tableau. Le premier est le chemin de la requête, qui transmettra la requête du paramètre ; le second est le nom de la base de données, c'est-à-dire toutes les valeurs de la colonne où se trouve le champ du paramètre. . Le système générera des pages par lots en fonction des paramètres : tels que 'news_:id' => ['news/find', 'article'], consiste à interroger la colonne id dans la table article.
Si vous souhaitez ajouter des conditions de requête de base de données, placez par exemple la troisième valeur dans id < 100
Celle-ci sera transmise à la condition Where de la base de données et doit être conforme à la syntaxe de requête tp, qui devient 'news_:id' => ['news/find', 'article', ['id' => ['<',100]]],
ou ..."id < 100"]
Si vous souhaitez personnaliser la fonction qui génère l'ID, vous pouvez définir le deuxième paramètre sur une méthode globale, qui peut être placée dans common.php (le nom de la fonction n'a pas besoin d'inclure func:
:), ou écrite dans n'importe quel contrôleur : 'func:admin/index/getJobIds'
ou 'func:getjobids'
Si le type func est utilisé, la valeur de retour doit être un tableau à deux dimensions avec des paramètres comme clés. Tel que : ['id' => [2,3,4,5]]
Le type func peut avoir une troisième valeur, qui est transmise en tant que paramètre de func
Le contrôleur de génération statique générera directement la page anormale dans le fichier html et n'arrêtera pas la génération.
Leng Feng Cui [email protected]
Entièrement conforme au protocole 996ICU et parfaitement open source