将值从调用PHP脚本传递到被调用的PHP脚本
我有一个页面生成器类:将值从调用PHP脚本传递到被调用的PHP脚本,php,Php,我有一个页面生成器类: <?php class PageBuilderService { public function getHeader() { // return file_get_contents('template/header.html'); include 'template/header.php'; } public function getFooter() { return file_get_con
<?php
class PageBuilderService {
public function getHeader() {
// return file_get_contents('template/header.html');
include 'template/header.php';
}
public function getFooter() {
return file_get_contents('template/footer.html');
}
}
?>
然后,我要调用的页眉的位置:
$page_builder->getHeader();
等等
但是我想添加一个scripts函数,它将拉入一个scripts.php文件,该文件将通过传递给它的脚本文件名列表运行,以便在页面上显示标记
Scipts php文件:
<?php
$page_builder = new PageBuilderService();
echo $page_builder::createScriptTags($listOfScripts);
?>
将$listofscript从PHP页面获取到脚本PHP文件的最佳方法是什么
像$u GLOBAL[]这样的东西是最好的方式吗
结果可能是:
$page_builder->getScripts(); // and some way of getting a list of scripts to the script page
理想情况下,我希望:
$scriptsToInclude = array("neededJsFile.js", "someOtherJs.js");
echo $page_builder->getScripts($scriptsToInclude);
但显然这取决于什么是可能的。那么:
class PageBuilderService {
private $aScripts = array();
public function addScript($cScript) {
$this->aScripts[$cScript] = true;
}
public static function createScriptTags() {
$scriptHtml = "";
foreach ($this->aScripts as $script) {
// some html building
}
return $scriptHtml;
}
}
通过这种方式,您可以根据代码动态添加不同数量的脚本,但是当您调用createScriptTags时,它们都将被注入。。。还是我遗漏了真正的问题?就像@DragonYen所说的,在脚本a中设置一个变量,然后调用脚本b并接受所述变量。因此,我将创建一个脚本数组,其中包括
$scriptsToInclude = array("script1.js", "script2.js");
然后调用脚本php
echo $page_builder->getScripts();
然后在脚本php中,检查脚本的$scriptsToInclude变量,如果有,则进行构建
if (!empty($scriptsToInclude) && count($scriptsToInclude) > 0) {
PageBulderService::createScriptTags($scriptsToInclude);
}
您将在哪里包含脚本?在头部?最好在HTML页面的底部!不要返回您的值。将它们保存在可以操作的静态变量中。就你目前的设计而言,我认为你没有太多的灵活性。你能扩展一下吗?我认为你的理想设计没有问题,我想。。。但是,当您在php文件中填充$aScripts时,一旦您访问scripts.php文件,它肯定会丢失?@No1_Melman scripts.php中的whats?在一个类方法中包含一个php文件是很奇怪的,除非它只是模板,否则我会直接将代码添加到该方法中。。。对不起,现在我明白你的问题了。当您访问scripts.php文件时,您会想知道$page_builder的范围我只是用一个简单的1.php和2.php在1.php中设置了一个var,并在2.php中打印了它。它确实有效。然而,我必须同意User574632的观点,我个人喜欢html助手类是静态方法的简单集合。如果它们需要成为实例对象,那么它们可能设计得很糟糕,并且正在做其他地方应该做的事情,例如控制器或应用程序model@user574632它只用于模板制作。显然,如果头文件更改了位置,那么我不想更新40多个文件:
echo $page_builder->getScripts();
if (!empty($scriptsToInclude) && count($scriptsToInclude) > 0) {
PageBulderService::createScriptTags($scriptsToInclude);
}