簡體   English   中英

PHP 自定義“MVC”:包括以正確方式包含 HTML/CSS/JS 的“模塊”

[英]PHP Custom 'MVC': Including 'modules' that contain HTML/CSS/JS the right way

我已經創建了我的自定義 PHP“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是一個可以添加到視圖的組件, home是一個視圖(我沒有將它們存儲在同一位置,只是為了這個例子簡化了結構)。

我希望能夠輕松地將彈出組件包含在它所使用的視圖中。 我現在正在做的是分別包含 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';

在我的腦海中,完美的案例場景是能夠在每個視圖上包含一個帶有一個襯里的彈出組件,類似於包含一個 PHP 庫。 有沒有正確的方法來做到這一點?

我之前使用鏈接腳本在 html 文檔中呈現彈出窗口的 CSS 和 JS,因此我可以通過僅包含popup.php來包含完整的模塊。 這增加了文檔必須加載的外部 CSS 和 JS 文件的數量。 傳說中還包含一個大的 CSS/JS 文件比包含許多小文件更好。 這在 2020 年仍然有效嗎?

回復:“傳說有它”:捆綁和縮小將減少多個請求的開銷和總字節數。

您問題的另一部分——“我如何簡化模塊使用”——可能會涉及加強您的 MVC 代碼庫。 你可能想要做的是每個模塊都有一個核心文件或例程,將由你的基本代碼調用.. include_me.php 或 class::bootstrap(&$theApp).. 你的里程可能會有所不同 - 然后在CSS 和 JS 應該包含的部分你遍歷應用程序數組,如 $pageCSS、$headJS 和 $bodyJS,並在適當的地方包含 include_me/bootstrap 例程放入那些 arrays 中的所有文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM