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

Php 在Yii中我在哪里创建助手?,php,yii2,Php,Yii2,我想创建一个EBay API包装器对象。在Rails中,我将创建一个助手,以便它在控制器和视图中可用。在Yii中,我在哪里创建这样的对象?没有帮助程序/目录。这是我能找到的最接近的概念:如果您愿意,您可以随时创建一个helpers目录,没有什么可以阻止您,只需相应地创建名称空间即可。我个人把它们放在组件目录中 您现在正在使用名称空间:)尽情享受吧。如果您使用的是advance应用程序,那么已经为后端定义了一个名称空间,例如称为。。。。。后端。这意味着什么?这意味着,当您使用在已知名称空间中找到的

我想创建一个EBay API包装器对象。在Rails中,我将创建一个助手,以便它在控制器和视图中可用。在Yii中,我在哪里创建这样的对象?没有帮助程序/目录。这是我能找到的最接近的概念:

如果您愿意,您可以随时创建一个
helpers
目录,没有什么可以阻止您,只需相应地创建名称空间即可。我个人把它们放在
组件
目录中

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

例如:

use backend/helpers/foo/Bar;

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

我成功地让以下内容起作用,但我认为有一个更好的答案

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

function isGrid() {
  return true;
}
?>

出于某种原因,您仍然必须给出函数的完整名称空间路径。没有它就无法工作。

没有组件目录。我用的是新的Yii。仅仅因为我创建了helpers/目录,并不意味着它将加载该类。我严重怀疑它正在扫描整个文件系统,并在每次请求中自动包含它找到的每个PHP文件。在哪里指定自动加载?你能举个例子吗?这是yii2,为什么你需要自动加载?只需将它放在正确的名称空间app/helpers/nameoffile或common/helpers/nameoffile中,然后放在需要使用的文件中,然后使用它即可。好的,我尝试在
helpers/
中使用
名称空间app\helpers。该视图具有
use-app\helpers
但是它仍然抱怨
调用未定义的函数app\helpers\isGrid()
。即使在PHP示例中,它也表明您必须
包含()文件。我怎么知道要
include()
那个文件
use
只是一个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() ?>