【问题标题】:YII Newbie questionsYII 新手问题
【发布时间】:2011-06-13 12:53:30
【问题描述】:

我正在测试要在我的项目中使用的 MVC 框架,我对 YII 的问题很少。

  1. 我已经使用 GII 创建了一个模型,我从 java 中知道代码生成假设是一个帮助程序,并且大部分时间不应该修改,因为您将来可能想要重新生成,那假设来这里工作?

  2. 我已经从模型中创建了一个 CRUD,它为它提供了一个很好的 gui,我想为管理端保留 gui,但我想为用户端做一个不同的,什么是靠近这里?

  3. 如果我决定在我的应用程序中使用一些 ORM,这意味着我需要创建一个不同的模型,并且我看到当前模型继承自另一个模型......问题?

    一般情况

  4. 哪个在负载方面更快,CI?还是 YII?

  5. 纠正我如果我错了,但 MVC 架构并没有真正为您提供真正 OOP 的方法,例如 java。接口,继承和多态,这是快速构建一个漂亮应用程序的好方法,仅此而已。我这么说是因为你的控制器和模型已经继承了一些类。

谢谢

【问题讨论】:

  • 如果我错了,请纠正我,但看起来确实 OOP Java 会在无状态环境中进行编程。 :)

标签: php yii


【解决方案1】:

1) 通常模型在生成后可以正常工作,并且大多数时候不需要更改任何内容。如果您在数据库中添加一个字段并且需要重新生成它,那么当您这样做时,您在 gii 中有什么是新代码,因此您可以复制/粘贴。通常你不需要这样做,当我向数据库添加字段时,我会“手动”在模型中添加这些字段。非常简单快捷,相信我

2) 使用模板。在您的布局视图中创建一个新模板,并将其分配给前端的控制器 $this->layout = '//my//layout';

3) Yii AR 实现对我来说已经足够了。无法回答这个问题,但你应该没有任何问题。

4) 取决于您正在运行的应用程序类型。我曾与 CI 和 Yii 合作过,我更喜欢 yii 开发时间和速度。

5) 你在这一点上是“正确的”。

【讨论】:

  • 谢谢,关于 2。我还需要不同的控制器吗?因为使用生成的 crud,删除仅适用于登录用户。我猜这个登录需要换成我自己的逻辑吧?
  • 不,你没有。在您的组件文件夹中,您有一个基本控制器,它有一个名为 layout 的公共变量。您只需在所需的每个控制器的操作中覆盖该变量。您可以在同一个控制器中使用任意数量的布局。只需创建布局并在控制器的操作中分配该布局
  • 对不起,我忘记了删除问题。您的控制器中有一个 accesRules 方法,它定义了哪个用户可以访问哪个操作。您可以覆盖、自定义或构建自己的。对于简单的访问系统,默认的访问规则和登录行为就足够了
猜你喜欢
  • 1970-01-01
  • 2012-07-16
  • 2010-12-08
  • 2011-08-13
  • 2010-12-20
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多