我有几个泛型函数,我在多个不同的页面和DataObjects中使用。我正在试图找出存储这些的最佳位置。目前我在Page.php中有它们,但由于它们不适用于所有页面,我想将它们移动并存储在mysite /代码的子文件夹中的类中,称为helpers。如果需要,这还将帮助下一代开发人员定位和更新这些类。 (我可以将它留在Page.php类中,如果这是在silverstripe中完成的方式)
<?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 %>
我尝试过的事情。
那我怎样才能使用这个可重复使用的代码呢?将其添加到页面可以正常工作,但如果他们尝试更改,可能会让其他开发人员难以找到它。
答案 0 :(得分:3)
从模板的角度来看,该功能是在
上定义的要使某些功能在不同页面上可用,但保持DRY原则,您应将它们定义为扩展名,并为所选页面类型声明扩展名。
class PublishedArticlesController extends Extension {
// define your methods
}
# in mysite/_config/config.yml
ArticlePage_Controller:
extensions:
- PublishedArticlesController