问题描述
我创建了我的自定义PHP“ MVC”(如果您将其称为“ MVC”),其结构将页面和某些组件视为“模块”,方法是将它们存储在自己的文件夹中,该文件夹中包含与“模块”。模块大致如下所示:
├── popup/
│ ├── popup.css
│ ├── popup.js
│ └── popup.PHP
└── home/
├── index.PHP
├── css
│ └── style.css
├── js
│ └── script.js
└── html
└── layout.PHP
我发现这种结构要好得多,显然,这个人也做得很好:Lay Out Your Code Like You'd Lay Out Your House
弹出是可以添加到视图中的组件,主页是视图(我没有将它们存储在同一位置,但仅出于本示例的目的简化了结构)。
我希望能够轻松地在使用的视图中包含 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库。有正确的方法吗?
我以前使用 link 和 script 在HTML文档中呈现了 popup 的CSS和JS,因此我可以包含完整的模块仅包含 popup.PHP 。这增加了文档必须加载的外部CSS和JS文件的数量。传说还包括一个大CSS / JS文件比包含许多小CSS / JS文件更好。这在2020年仍然有效吗?
解决方法
回复:“传奇”:捆绑和压缩将减少多个请求的开销和总字节数。
问题的另一部分-“如何简化模块使用”-可能会涉及加强MVC代码库。您可能想做的是,每个模块都有一个核心文件或例程,这些文件或例程将由您的基本代码.. include_me.php或class :: bootstrap(&$ theApp)..您的行程可能会有所不同-然后在内部本应包含CSS和JS的部分将带您遍历$ pageCSS,$ headJS和$ bodyJS之类的App数组,并在适当的地方包含include_me / bootstrap例程放入这些数组中的所有文件。