Php 自动加载自定义组件
我试图让Yii自动加载一个不遵循Yii约定的组件。正在讨论的库是我移到Components文件夹中的库。我能够让它自动加载主条带文件,通过如下修改我的配置没有问题:Php 自动加载自定义组件,php,yii,autoload,stripe-payments,Php,Yii,Autoload,Stripe Payments,我试图让Yii自动加载一个不遵循Yii约定的组件。正在讨论的库是我移到Components文件夹中的库。我能够让它自动加载主条带文件,通过如下修改我的配置没有问题: 'import'=>array( 'application.models.*', 'application.components.*', 'application.components.stripe.*', ), 目录结构如下所示: Components ---------- | ----&g
'import'=>array(
'application.models.*',
'application.components.*',
'application.components.stripe.*',
),
目录结构如下所示:
Components
----------
|
----> Stripe
|
----> Stripe.php (Class Name = "Stripe")
----> Customer.php (Class Name = "Stripe_Customer")
----> Charge.php (Class Name = "Stripe_Charge")
----> etc.
它可以识别
条带
类,但找不到条带*
命名类。有没有办法让Yii识别这种模式,或者我的控制器中的手动require
语句让我陷入困境?如果我将所有文件重命名为它们的类名,是否可行?是的,将文件重命名为类名会有所帮助。否则您必须自己要求这些类。是的,将文件重命名为类名会有所帮助。否则,您必须自己要求这些类。您也可以创建自己的自动加载器并将其注册到:Yii::registerAutoloader(数组(“autoderClass”、“methodName”),$append)代码>
第一个参数实际上是一个php回调,我使用了类和方法表示法,也可以是函数。这实际上调用了spl\u autoload\u寄存器
,顺序取决于第二个参数-Yii autoloader之前或之后。Autoloader应该在$app->run()
之前在index.php
中注册
以下是一些示例autoloader(用于zend framework):
您还可以创建自己的自动加载器并将其注册到:Yii::registerAutoloader(数组(“autoderClass”、“methodName”),$append)代码>
第一个参数实际上是一个php回调,我使用了类和方法表示法,也可以是函数。这实际上调用了spl\u autoload\u寄存器
,顺序取决于第二个参数-Yii autoloader之前或之后。Autoloader应该在$app->run()
之前在index.php
中注册
以下是一些示例autoloader(用于zend framework):
好的,谢谢。那么,将文件命名为与类相同的“Yii方式”是吗?是的,这是Yii方式;)虽然这不是一个坏习惯。好的,谢谢。那么,将文件命名为与类相同的“Yii方式”是吗?是的,这是Yii方式;)虽然这不是一个坏习惯。