【发布时间】:2016-03-24 19:35:13
【问题描述】:
我有几个通用函数,我在多个不同的页面和 DataObjects 中使用它们。我正在尝试找出存放这些的最佳位置。目前我在 Page.php 中有它们,但由于它们不适用于所有页面,我想将它们移动并存储在 mysite/code 的子文件夹中的类中,称为 helpers。如果需要,这也将帮助下一个开发人员定位和更新这些类。 (如果这是在 silverstripe 中完成的方式,我可以将它留在 Page.php 类中)
<?php
public class GetPublishedArticles {
public function GetAllPublishedArticlesByType($class){
error_log('Hit GPA',0);
$pages = $class::get();//->filter(array('Published'=>1));
if($pages->count()){
return $pages;
}
else{
return false;
}
}
}
Template:
<% loop GetAllPublishedArticlesByType('Page') %>
$Link
<% end_loop %>
我尝试过的事情。
- 将它们添加到 mysite/code/helpers 文件夹中,运行 dev/build/flush=all 但无论什么功能都不会命中。即使我在那里的任何地方输入乱码也不会引发 php 错误
- 将它们添加到 mysite/code 文件夹。运行 dev/build/flush=all 会强制进行一些更改,并且在此处键入 gibberish 会导致开发构建时出现 php 错误。仍然无法从模板访问
- 我尝试将 GetPublishedArticles 类添加到 Page.php 上的 $has_one 数组 - 仍然没有。
- 将该函数直接添加到page.php。 - 这按预期工作。
那么我怎样才能利用这个可重用的代码呢?将其添加到页面是可行的,但如果其他开发人员尝试更改,可能会使其难以定位。
【问题讨论】:
标签: php silverstripe