修改代码点火器



我正在考虑使用PHP开发一个商业应用程序。因为我有CodeIgniter的经验,它对我来说工作得很好,我决定使用它。现在,如果我的应用程序需要增长,并且必须在平台中进行自定义修改,那么是否有可能修改CodeIgniter源代码,使其远离原始代码?

我强烈建议不要修改源代码,因为这是应用程序的主干,将使更新到codeigniter的未来版本变得不可能。

相反,你应该创建自己的类/库来扩展核心库。这是最佳实践。

codeigniter用户指南有一些关于这方面的奇妙信息,http://codeigniter.com/user_guide/general/creating_libraries.html

好运。

不要修改它,扩展它。Ellislab擅长发布bug修复和补丁,您最不想要的就是每次他们发布更新的源代码时都必须将所有更新重新设计到您的新混合动力车中。另外,对于核心和反应器,不同的特性和错误修复以不同的速度发布,所以除非您计划将框架锁定在当前版本,否则扩展是最好的方法。

好消息是,CI是为源代码构建的,并且鼓励对源代码进行扩展。系统文件夹和应用程序文件夹的分离清楚地指示了应该如何将增强功能与基本库隔离开来。

CodeIgniter使用PHP编写。您可以按照自己喜欢的方式完全重写框架。所以答案是肯定的。

有许多大型网站是用不同的语言编写的,或者在开始时建立在一个框架上,并且从那以后被重写了很多次。我认为很多开发者(主要是自由职业者)在开始时都想太多了。当我开始一个项目时,我会尽快把它完成并放到网上。如果一个网站开始赚钱——而且大多数时候开始赚钱——那么你总是可以花时间重写它。

我认为在规划和设计数据库和表时花时间更重要。我认为以后重新做部分数据库要比重写使用数据的代码困难得多。

我的2美分。

如果您使用过CI,那么您应该知道,作为一个PHP框架,所有的源代码都在下载中,此外,打开系统和应用程序文件夹并查看其中将告诉您很多。是的,所有的源代码都是用简单的英语写的(简单的编程英语),而且不仅是用简单的英语写的,而且里里外外都有广泛的文档(字面意思是在源代码和用户指南中)。CI最初的名声来自于一个简单的事实,即所有代码都被广泛而细致地记录下来。

除此之外,这个问题本身引起了人们的关注,也许您应该在使用它编写商业应用程序之前进一步研究CI。Ci是一个功能强大且非常易于使用的PHP框架,但它不是WYSIWYG。在我看来,一个程序员应该对他的工具了如指掌,这样才能创建一个可靠的、安全的、可信的应用程序。第一步是阅读用户手册,你至少应该了解它的所有内容,因为它有12个部分,涵盖了从扩展CI库到创建自己的库的所有内容,我想说你需要花更多的时间在它上面。

我想说的是,我并不是无礼或试图以任何方式羞辱你,我只是想说,在冒险使用它的商业应用程序之前,你应该更多地了解这个框架。

在PHP的早期,人们意识到使用它是多么的容易,用它编写一个应用程序是多么的快。当时,对于新手和业余程序员来说,主要的选择是很难使用,或者需要昂贵的软件来运行,PHP是免费的,容易学习,最重要的是可以在免费的操作系统上运行。它几乎不需要任何设置,您可以下载PHP并在几分钟内完成编程。所有这些因素导致了这种语言的几乎毁灭。

入门级程序员用从其他应用程序中获取的代码来破坏它,从不知道(或关心)代码实际上做了什么,除了它在当时做了他们想要的简单事实,从不考虑甚至调查代码是否可能有害。由于这种做法,PHP应用程序已经成长为歌利亚大小的网站,每小时需要数千次点击:

  1. 开始崩溃
  2. 被黑客入侵,泄露敏感的客户/客户数据
  3. 在整个网络中普遍崩溃

这都是因为这种语言太容易使用了,人们利用了它而没有花时间去学习它。对于其他专业程序员来说,PHP变成了一个笑话,甚至被许多人认为是一种可行的应用语言,他们称之为"复制和粘贴"语言。

所以我给你的建议是,请花时间了解你的工具里里外外,是什么让它们滴答作响,如果它们有任何漏洞,它们在哪里容易受到攻击。我明白,为了把一门语言学习到专业水平,你必须用它来构建,所以我建议你现在用CI慢慢来,坚持核心。相信我,即使在最纯粹的形式下,CI也是一个惊人而强大的工具,在正确的人手中可以创建强大的web应用程序,但是在没有受过教育/没有经验的人手中,它可能会造成混乱和破坏。

所以(从肥皂箱中走出来)我只是问你,如果你真的想创建商业应用程序,那么你要花时间学习你的工具/语言,尽可能成为这方面的专家。我保证,如果你这样做了,当你需要它的时候,你总是有工作要做,你会花更少的时间把头撞在桌子上,或者更糟的是,向客户解释为什么他们的网站宕机了。

我真的祝你好运,只要慢下来,学习你的专业,你会做得很好的。

是的,Codeigniter是一个开源框架。然而,我建议不要修改Codeigniter的核心,因为大多数文件都可以安全地扩展和重写,而不需要修改核心文件,如果你决定更新,这会让你头疼。

要在默认情况下扩展核心类,您可以在Codeigniter中这样做。我们将在本例中扩展解析器类,但这几乎适用于所有类。综合用户指南中的这个链接将为您提供在Codeigniter核心类中扩展和重载方法所需的所有信息:http://codeigniter.com/user_guide/general/core_classes.html

最新更新