【发布时间】:2011-01-08 14:37:44
【问题描述】:
如何将 CakePHP 视图的扩展名从 .ctp 更改为 .php
我已经看到 /cake/libs/view.php var $ext = '.ctp'; 中有这一行设置扩展名,但我如何从我的 /app/ 文件夹中执行此操作,这样它不会影响 Cake 核心文件。
谢谢
【问题讨论】:
标签: cakephp
如何将 CakePHP 视图的扩展名从 .ctp 更改为 .php
我已经看到 /cake/libs/view.php var $ext = '.ctp'; 中有这一行设置扩展名,但我如何从我的 /app/ 文件夹中执行此操作,这样它不会影响 Cake 核心文件。
谢谢
【问题讨论】:
标签: cakephp
您可以在AppController 中设置扩展名
public $ext = '.yourext';
【讨论】:
这是对 Cameron 关于使用 multiple 扩展问题的评论的回复,因为 cakephp 不允许您指定多个扩展。
我将Mustache 用于单个站点,该站点将merb、rails2、rails3 和cakephp 用于站点的不同部分。蛋糕网站“接收”常见布局元素的小胡子文件,但这些模板具有我的蛋糕网站无法识别的“.mustache”文件扩展名。我的解决方法基本上是 dhofstet 在您的特定用例的上下文中建议的。简而言之,创建一个看起来像这样的包装器:
<?
$tmp = $this->ext;
$this->ext = '.mustache';
?>
<?= $m->render($this->renderElement('moznav/advanced_header'), array('foo' => $bar)) ?><br />
<? $this->ext = $tmp; ?>
当流程返回给调用者时,你继续使用你的本地文件扩展名。
【讨论】:
如何将 CakePHP 视图的扩展名从 .ctp 更改为 .php
我看到 /cake/libs/view.php var $ext = 中有这一行 '.ctp';设置扩展,但我怎么能从我的 /app/ 文件夹,因此它不会影响 Cake 核心文件。
示例:
posts/add.ctp add.ctp 重命名为add.php
然后你运行.../posts/add消息错误显示:
错误:找不到 PostsController::add() 的视图。
到你的应用可以理解扩展.php,你在PostsController.php中添加行public $ext = '.php'
现在,你又跑了。.posts/add => okie,cakephp 理解扩展 .php
注意:如果你使用atrribute $ext = '.php'但文件视图名为.ctp,则默认使用cakephp扩展.ctp
【讨论】:
我发现这篇文章是因为我遇到了同样的问题。 Github 上的 Predominant TwigView 插件文档中没有提到这一点。我厌倦了那些只解释一半事情并且我们不得不猜测下半部分的文档。这是对时间的极大浪费,会毫无意义地减慢项目的速度。
【讨论】: