0

我是 Yii 的新手,仍在学习和热爱它。所以问题是我必须建立一个基于亚马逊网络服务的产品检索系统。

首先,我创建了必要的表格来保存有关产品的信息。然后我使用了不起的 Gii 创建了模型类。之后我再次使用 Gii 生成了 CRUD。现在我有点卡住了。所以 Gii 提供了一个表单让用户用必要的信息填充表格。现在在我的系统/应用程序中,对于任何包含产品信息的主表,我都不需要表单输入。这些表应该自动填充从 Amazon API 收集的数据。只有少数表格可以具有与输入字段相关的表格。

所以任何人都可以指导我正确的方向,我将如何开始实现该功能。我是否应该从相应的视图中删除此代码并在 Controller 类中编写功能。

<div class="row">
<?php echo $form->labelEx($model,'type_id'); ?>
<?php echo $form->textField($model,'type_id'); ?>
<?php echo $form->error($model,'type_id'); ?>
</div>

或者我应该生成一个单独的视图文件。现在我似乎找不到任何进展。如何开始?使用 Yii 构建的典型应用程序的工作流顺序应该是什么。我将把业务逻辑放在哪里?当然,我知道根据 MVC 范例,业务逻辑应该始终驻留在 Controller 类中。但是我应该在单个控制器类中编写所有应用程序逻辑吗?

我已经阅读了有关模块和组件的信息。但我面临的困境是我不知道什么时候才是将必要的逻辑分离到其各自的模块或组件中的合适时间。

我已经在关注 Web Application Development with Yii and PHP 2nd Edition,我承认这是一本很棒的书。到现在我已经读了两遍了。但是当我开始构建我的项目时,我陷入了困境。只是不知道从哪里开始。我的应用程序不会像本书示例那样遵循类似的流程图。

我只想遵守 Yii 中设定的约定。我在很多地方都听说过,一旦你习惯了 Yii 的惯例,你的工作效率就会提高数百倍。那么最佳实践是什么?

说::

1) What are the conventions when building an automated/real time system ?
2) How to initialize the specific controller logic sequence
3) How to get the most benefit from the CRUD/Model/Module system already built by Gii ?
4

1 回答 1

0

通过 Gii 代码生成,我尝试删除任何未使用的内容。如果保留它会使维护变得更加困难,并且如果需要,您可以随时添加它。

控制器不需要与表相关。如果有的话,它们应该与功能区域相关(例如 RestApiController 或 ReportController)。

你应该让你的控制器尽可能的薄。如果模型中有适当的逻辑,它会使单元测试更容易。请参阅 Yii 最佳实践文档的最后一段http://www.yiiframework.com/doc/guide/1.1/en/basics.best-practices

我个人认为 Gii CRUD 生成只适用于管理员级别的配置。例如,您需要了解数据库设计/关系才能正确创建数据。对于普通用户来说,它可能很复杂,而且对用户不太友好。

我一直在考虑为我的 Yii 项目添加一个服务层。这就是你所有的业务逻辑连接的地方。

于 2013-09-24T04:30:51.013 回答