PHP 自定义 'MVC':以正确的方式包含包含 HTML/CSS/JS 'modules'



我已经创建了我的自定义PHP"MVC",如果你这么称呼它的话,它的结构将页面和某些组件视为"模块",将它们存储在自己的文件夹中,其中包括与"模块"相关的任何代码。模块大致如下:

├── popup/
│   ├── popup.css
│   ├── popup.js
│   └── popup.php
└── home/
├── index.php
├── css
│   └── style.css
├── js
│   └── script.js
└── html
└── layout.php

我发现这个结构更好用,显然这个家伙也这么做了:像布置房子一样布置你的代码

弹出窗口是一个可以添加到视图中的组件,主页也是一个视图(我没有将它们存储在同一位置,但只是为了这个例子简化了结构(。

我希望能够在使用的视图中轻松地包含popup组件。我现在所做的是分别包含CSS、JS和HTML,如下所示:

on home/css/style.css:
@import "../../popup/popup.css"
on home/js/script.js:
// @codekit-prepend '../../popup/popup.js';
on home/html/layout.php:
include '../../popup/popup.php';

在我的脑海中,最完美的情况是能够在每个视图上包含一个带有一行的popup组件,类似于包含一个PHP库。有正确的方法吗?

我之前使用链接脚本在html文档中呈现了popup的CSS和JS,因此我可以通过包含popup.php来包含完整的模块。这增加了文档必须加载的外部CSS和JS文件的数量。传说中还说,与其包含许多小文件,不如包含一个大的CSS/JS文件。这在2020年仍然有效吗?

Re:"传说中有":绑定和缩小将减少多个请求的开销和总字节数。

你问题的另一部分——;我如何简化模块使用"-可能会涉及到增强MVC代码库。您可能想要做的是,每个模块都有一个核心文件或例程,这些文件或例程将由您的基本代码调用。。include_me.php或class::bootstrap(&$App(。。你的里程数可能会有所不同——然后在要包含CSS和JS的部分中,你遍历$pageCSS、$headJS和$bodyJS等应用程序数组,并在适当的地方包含include_me/bootstrap例程放入这些数组中的所有文件。

最新更新