我在哪里创建Yii中的助手?

时间:2015-03-13 02:05:09

标签: php yii2

我想创建一个EBay API包装器对象。在Rails中,我会创建一个帮助程序,以便在控制器和视图中可用。我在哪里创建Yii中的这样一个对象?没有帮助者/目录。这是我能找到的最接近的概念:http://www.yiiframework.com/doc-2.0/guide-structure-application-components.html

2 个答案:

答案 0 :(得分:0)

如果需要,您始终可以创建helpers目录,没有什么可以阻止您,只需相应地创建您的命名空间。我个人将它们放在components目录中。

您现在正在使用命名空间:)享受它。如果您正在使用高级应用程序,那么已经为后端定义了一个名称空间,例如名为..... backend。这意味着什么意味着当你use在已知命名空间中找到的类时,它从那里开始,它会尝试猜测你的类的路径。

例如:

use backend/helpers/foo/Bar;

应该在后端/ helpers / foo目录中找到Bar。 Yii2会知道在哪里找到它,因为它知道backend的位置。

答案 1 :(得分:0)

我设法使用以下内容,但我认为有更好的答案。

helpers/myhelpers.php
<?php
namespace app\helpers;

function isGrid() {
  return true;
}
?>
views/shopping/index.php
<?php
use app\helpers; // this doesn't seem to work - how does Yii know to include the files?
include('../helpers/myhelpers.php');
...
<?= app\helpers\isGrid() ?>

出于某种原因,您还必须为该函数提供完整的命名空间路径。没有它,它将无法运作。