【问题标题】:integrating CakePHP or CodeIgniter in existing projects在现有项目中集成 CakePHP 或 CodeIgniter
【发布时间】:2012-02-05 09:46:47
【问题描述】:

我接手了一个项目。这是一个使用 PHP 和 mysql 构建多年的应用程序。

它目前有一种很好的文件夹结构,但代码本身写得很差。 几乎每个文件中都有 php、sql 语句和 html 代码。 有使用php echo生成的javascript代码无故等。

我希望使用 CakePHP 或 CodeIgniter 进行进一步的开发,即使这意味着对于新功能将编写一些旧代码中已经存在的代码(例如:可能是实用程序函数)。

是否可以将这些框架之一集成到现有应用程序中? 哪个更容易? 你有任何关于如何做的链接吗?

谢谢。

【问题讨论】:

    标签: php codeigniter cakephp integration


    【解决方案1】:

    我对 CakePHP 的经验很少,所以我的答案是关于 CodeIgniter。我用 CakePHP 玩了大约一天,那是差不多两年前的事了。在我看来,与 CodeIgniter 集成可能会更容易,尽管对 CakePHP 更有经验的人可能会证明我错了。

    这是我将采取的方法。我从来没有这样做过,但这似乎是解决问题的合乎逻辑的方法。我想这种方法也适用于 CakePHP。

    1. 首先,使用最新版本重新安装 CodeIgniter。

    2. 接下来,创建反映应用程序当前结构的控制器和操作(控制器方法)。例如,如果您有一个 URL 为 http://example.com/users/view 的页面,您将使用 view() 方法创建一个 Users 控制器。

    3. 接下来,为应用程序的每个当前文件创建视图文件,并通过适当的控制器方法加载它们。这里的目标是让应用程序使用 CodeIgniter 的路由系统工作,尽管此时您不会使用任何模型、库或帮助程序。

    4. 将应用程序置于 CodeIgniter 之上后,开始重构它以适应 MVC 模式。从视图文件中提取应用程序逻辑(查询、表单处理等)并将它们放入控制器中。将所有表示逻辑和 HTML 保留在视图中。

    5. 接下来,重构控制器。这是它变得棘手的地方,因为控制器代码可以放入模型、库或其他控制器方法中。一个好的起点是获取所有查询并将它们放入适当的模型中。比较您的控制器,看看是否有任何代码重复。这是一个很好的迹象,您应该将其从控制器中移除并将其放置在其他地方。不幸的是,我无法真正告诉你在哪里,因为每种情况都不同。

    6. 继续重构您的应用程序,直到它处于您满意的可工作状态...

    希望这会有所帮助。我当然错过了一些关键步骤,例如设置和配置 CodeIgniter,但如果您认真对待这样做,我强烈建议您通读 CodeIgniter User Guide 以了解它的工作原理。如果您还没有熟悉 MVC(模型-视图-控制器),您还应该熟悉。

    这里没有真正适合所有解决方案的解决方案,但希望我已经为您提供了一些想法或至少一个起点。如果您有任何问题或有点困惑,请在下方发表评论,我会尽快回复您。

    【讨论】:

      【解决方案2】:

      在我看来,在 CodeIgniter(我从未使用过 CakePHP)和模型中编写控制器比只复制粘贴并调整视图更容易。

      【讨论】:

      • 谢谢。但是我如何整合旧部分(没有框架)和新部分(有框架)。我想我需要更改框架的 index.php。
      • 忘掉 index.php 和其他的吧。只需使用您的函数/类并在 codeigniter 中创建新控制器,尝试使用旧代码,这将完成旧应用程序所做的事情。
      • 请记住,您的正常文件系统位于根目录中。将 codigniter 放在根目录中并按照需要构建的方式构建它,创建站点。在您准备好之前不要实现 index.php 文件(在根目录中)或链接。准备好将主控制器放入路由后,删除整个原始文件系统并以 codeigniter 方式寻址您的系统
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 2015-06-15
      • 2013-12-21
      相关资源
      最近更新 更多