Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Yii中何时使用组件以及何时使用扩展?_Yii_Yii Components_Yii Extensions - Fatal编程技术网

在Yii中何时使用组件以及何时使用扩展?

在Yii中何时使用组件以及何时使用扩展?,yii,yii-components,yii-extensions,Yii,Yii Components,Yii Extensions,我对protected中的components和extensions文件夹的用途有点困惑/ 请澄清 根据我对Yii的一点经验: 组件是可以帮助您根据模型编写业务逻辑的类。您肯定不想在控制器中编写所有工作,那么您需要组件来分发代码并在控制器中调用它 扩展与库类似,基本上不依赖于您的模型,因此可以在当前或以后的项目中的任何地方重用。例如:电子邮件扩展,或将tweet发送到您的twitter帐户的类 其他程序员/用户可能会有所不同。Arfeen,很好的解释,我现在得到了扩展。但是组件呢?你能举一个例子

我对protected中的components和extensions文件夹的用途有点困惑/


请澄清

根据我对Yii的一点经验:

组件是可以帮助您根据模型编写业务逻辑的类。您肯定不想在控制器中编写所有工作,那么您需要组件来分发代码并在控制器中调用它

扩展与库类似,基本上不依赖于您的模型,因此可以在当前或以后的项目中的任何地方重用。例如:电子邮件扩展,或将tweet发送到您的twitter帐户的类


其他程序员/用户可能会有所不同。

Arfeen,很好的解释,我现在得到了扩展。但是组件呢?你能举一个例子,说明什么时候某些东西会出现在这里而不是直接出现在模型类中吗?这是我的常见做法,假设你必须管理用户,所以我总是创建一个组件,其中的功能将管理用户,例如登录、注销、新用户、状态更改以及与用户/用户任务相关的所有功能。当然,所有这些功能都将使用用户模型。有一个依赖于模型的组件好吗?这是我的疑问。@Jorge这完全取决于你的设计。您可以拥有这样的组件。您还可以选择在所需模型中编写方法。这也要视情况而定。