【问题标题】:CakePHP: Interaction between different files/classesCakePHP:不同文件/类之间的交互
【发布时间】:2011-01-07 15:56:13
【问题描述】:

我正在克隆一个商业学生管理系统。学生使用前端申请讲座,大学工作人员可以修改事件(时间,房间等)。 该应用程序的核心将是分配座位给学生的算法。我已经在这里问过了: How to implement a seat distribution algorithm for uni lectures

现在,我在这里找到了该算法的类: http://www.phpclasses.org/browse/file/10779.html

我将“GA 类”放入应用程序/供应商。我需要编写一个“类解决方案”,它代表一个对象(一个孩子,后来成为进化过程的父母)。

我还必须编写函数 mutate()、crossover() 和 Fitness()。健身根据是否有超额预订的课程等计算解决方案的分数; crossover() 是疯狂的猴子性别函数,它从两个父母那里产生一个孩子,而 mutate() 则在交叉后修改一个孩子。

现在,fitness() 函数需要访问一些相关模型及其 find() 函数。它通过检查例如评估解决方案的适用性。如果有超额预订的课程,或未实现的愿望,并对其进行处罚。

ga.php、solution.php 和这三个函数应该放在哪里? ga.php 必须访问函数,但函数必须访问模型。我也不想从 Fitness() 函数中调用任何 App::import(),因为当算法运行时它会被调用数千次。

希望有人可以帮助我。提前致谢 =)

【问题讨论】:

  • 为什么 App::import 会被调用数千次?

标签: php cakephp structure cakephp-1.3


【解决方案1】:

您使用的是 PHP5 吗?如果是这样,为什么不在 Fitness() 函数中做这样的事情:

if (!class_exists('GA', false)) App::import('Vendor', 'GA');

这样 App::import 只会在需要时被调用。

*顺便说一下,如果这个类被称为 GA(全部大写),你应该将包含它的文件重命名为 g_a.php 以遵循 Cake 约定。*

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2014-09-30
    • 2019-08-13
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多