CakePHP自定义函数(但不是全局)

时间:2012-06-18 21:01:58

标签: cakephp controller

我有一个处理翻译的模块。

它没有绑定到任何数据库,该文件纯粹而简单:

$arr["key1"]="text";
...

我需要进行Ajax调用才能编辑该文件。每次访问页面时都会导入该文件,以便提供我需要的任何文本内容(它可能不是世界上最好的东西,但是它完成了工作,而且它应该非常快,因为没有“XML”解析“有点东西,它只是存储在标准的.php文件中。”

要处理这些具有添加/编辑操作等操作的ajax调用,我创建了一个无模型的TranslationController:

class TranslationsController extends AppController {
    public $uses = array(); // Model-less
    public $components = array('RequestHandler');
    public $helpers = array('Session');
    protected $translationFilePath;

    public function setItem() {
    }

    public function backupFile() {
    }
}

我的问题很简单:我在哪里放置用于在文件中打开/写入/查找的自定义函数?

例如,我有一个从正在读取的行中提取键的函数。

我看过一些帖子,我们建议将数据放在模型中,但在我的情况下,我没有模型,而且这些函数没有链接到数据。所以它不应该在模型中,对吧? 我不希望它是全球性的。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

为什么不使用CakePHP附带的内置翻译内容并且基于或多或少的标准gettext工具?

你正在做的只是重新发明轮子,可能会提出一个未经测试的定制翻译实现,这显然缺乏CakePHP为你提供的功能。例如,你如何处理复数?

CakePHP为您提供__(),__ d(),_ n_(),__ gn()用于翻译,翻译文件存储在APP / Locale /纯文本文件中,并使用poedit进行编辑。

请参阅http://www.gnu.org/software/gettext/http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html

答案 1 :(得分:0)

听起来像是自定义数据源的用例:http://book.cakephp.org/2.0/en/models/datasources.html

就个人而言,我只想在你的应用程序的app/Lib文件夹中创建一个普通的PHP类。