我想创建一个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() ?>
出于某种原因,您仍然必须为函数提供完整的命名空间路径。没有它,它将无法工作。