我几年前使用过PHP,但后来一直在用C#/ VB.Net开发。
在ASP.Net MVC 2中,您可以提供一个定义内容区域的母版页,例如:
<html>
<head>
<title>Overshare | <?=$Title?></title>
<ContentArea name="Head"/>
</head>
<body>
<ContentArea name="Body"/>
</body>
</html>
您的观点会有类似的内容:
<Content name="Head">
<!-- Some Head Content -->
</Content>
<Content name="Body">
<h1>Some Body Here</h1>
</Content>
我似乎无法使用Code Igniter模拟相同的功能。选项似乎是:
ContentAreas
之一是一件非常痛苦的事情 - 它可能是字符串连接或同样令人讨厌的东西,几乎没有任何IDE中的HTML intellisense。现在,我之前没有使用过CodeIgniter,并且即将启动一个大型PHP项目,所以想要在实际开始工作之前确保它是正确的工具。我错过了一些明显的东西,或者这个模板功能难以复制吗?
编辑:测试的图书馆:
答案 0 :(得分:2)
如果您对如何构建页面有很好的了解,那么您可以编写一组函数来在MY_Controller.php文件或库中处理它。
所以你可以有一个调用
的例程$这 - &GT; mypagetemplates();
从类的属性中调用数据,例如$ this-&gt; page-&gt; title;
我将数据分成
时将数据拆分$这 - &GT; PAGE-&GT;头, $这 - &GT; PAGE-&GT;头, $这 - &GT; PAGE-&gt;内容, $这 - &GT; PAGE-&GT;一边 $这 - &GT; PAGE-&GT;页脚
这与我们在90%的项目中使用的HTML5部分相对应
我的$ this-&gt; mypagetemplates()函数(或方法,如果您愿意)可以采用多个参数并调用各种视图,例如:
$ contentview ='shop / products'; $ asideview ='shop / basket';
然后,如果填充,则调用
If ($asideview) {
$this->load->view($asideview, $this->page->aside);
}
总体而言,我认为不要在我们新手的框架上设计您有史以来最大的项目。先玩。
答案 1 :(得分:0)
我最终创建了3个代表以下内容的文件
OpenHeader:
<html>
<head>
<Head Stuff/>
OpenBody:
</head>
<body>
<html>
<Templating Stuff>
关闭:
</Templating Stuff>
</html>
</body>
</html>
然后修改我的观点以在适当的时间包括这三个。
它不够优雅但灵活且功能强大所以它现在可以做 - 特别是因为如果我使用CodeIgniter视图引擎来检索它们,我可以在包含期间将变量(例如页面标题)传递到文件中