我在哪里创建 Yii 中的助手


Where do I create helpers in Yii?

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

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

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

例如:

use backend/helpers/foo/Bar;

bar应该在后端/helpers/foo目录中找到。Yii2 会知道在哪里可以找到它,因为它知道backend在哪里。

我设法让它与以下内容一起使用,但我认为有一个更好的答案。

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() ?>

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