2011-07-26 71 views
1

我正在研究开发一个使用PHP的商业应用程序。由于我在CodeIgniter方面有经验,并且一直在为我工作,我决定使用它。现在,如果我的应用程序到了需要增长并且必须在平台上进行自定义修改的地步,是否可以修改CodeIgniter源代码,使其远离原始代码?修改代码点火器

+3

是的。它是开源的。 –

回答

4

我强烈建议不要修改源代码,因为这是应用程序的后台将更新到codeigniter的期货版本不可能。

相反,您应该创建自己的扩展核心库的类/库。这是最佳做法。

的笨用户指南有这方面一些精彩的信息,http://codeigniter.com/user_guide/general/creating_libraries.html

好运。

0

CodeIgniter是用PHP编写的。无论如何,你可以完全重写框架。所以答案是“是”。

有许多大型网站是用不同的语言编写的,或者是从一个框架开始并在此之后多次重写的基础上构建的。我认为很多开发人员(主要是自由职业者)在开始时都在过度思考。当我开始一个项目时,然后尝试完成并尽快将其发布到网站上。如果一个网站开始采取 - 而且大部分时间开始让你赚钱 - 那么你总是可以花时间重写它。

我认为在规划和设计数据库和表格时花费更多的时间更重要。我认为稍后重做部分数据库会很困难,然后重写使用数据的代码。

只是我2美分。

1

不要修改它,extend itEllislab对于releasing bug fixes and patches有好处,你最不想要的是每次发布更新的源代码时都必须重新设计新混合动力的所有更新。此外,针对corereactor的不同步骤发布了不同的功能和错误修复,因此除非您计划在当前版本中锁定您的框架,否则扩展就是要走的路。

好消息是建立CI并鼓励扩展源代码。系统文件夹和应用程序文件夹分离清楚地表明您应该如何将增强功能与基本库分离。

0

如果您使用过CI,那么您应该知道,作为一个PHP框架,下载的所有源代码都在那里,此外打开系统和应用程序文件夹并在那里查看会告诉您很多。是的,所有的资源都以简单的英文(纯英文编程)存在,不仅是简单的英文,而且内部和外部都有广泛的文档记录(字面意思是在源文件和用户指南中)。 CI从这个简单的事实中获得了最初的名气,所有的代码都被广泛详细地记录下来。

除此之外,这个问题本身引起了人们的担忧,也许你应该在使用它编写商业应用程序之前进一步研究CI。 Ci是一个功能强大且非常易于使用的PHP框架,但它不是一种所见即所得的产品。在我看来,编码员应该内外知道他的工具,以便能够创建一个可靠的安全和可信的应用程序。第一步是阅读用户手册,你至少应该知道它的一切内容,因为它有12个部分涵盖了从扩展CI库到创建自己的库等所有内容,说你需要多花一点时间。

我想虽然说,我不是粗鲁,或试图羞辱你以任何方式,我只是说你应该学习的框架冒险进入使用其商业应用之前多一点。

在PHP的早期阶段,人们意识到使用它非常容易,并且使用它可以多快地编写应用程序。那时,对于新手和业余爱好程序员来说使用或涉及昂贵的软件非常困难的主要选项,PHP是免费的,易于学习,并且大部分都在免费的操作系统上运行。它几乎不需要任何设置就可以开始,您可以下载PHP并在几分钟内完成编程。所有这些因素导致语言几乎被破坏。

入门级程序员正在用其他应用程序中的代码摧毁它,从不知道(或关心)代码实际上做了什么,超出了当时他们做了他们想做的事情的简单事实,从来没有考虑甚至没有调查过该代码可能是有害的。因为那已经成长为巨人大小网站这种做法PHP应用程序,以点击率数千小时分别为:

  1. 开始崩溃
  2. 被黑客入侵,揭示敏感的客户/客户端数据
  3. 一般摇摇欲坠各地网络

所有这些都是因为该语言如此易于使用以至于人们利用了它并且没有花时间学习它。 PHP正在成为其他专业程序员的笑话,甚至没有被许多人称为“复制和粘贴”语言的应用程序语言。

所以我的建议给你们,请花时间去了解你的工具,从内到外,是什么让他们打勾,如果他们有任何陷阱,并在那里他们是脆弱的。我明白,为了学习一门语言到专业水平,你必须建立它,所以我建议你慢慢用CI坚持现在的核心。当我说即使是最纯粹的形式时,请相信我CI是一个惊人而强大的工具,它可以在合适的人手中创建出令人敬畏的强大Web应用程序,但是在未受过教育/没有经验的人手中,它可能会造成破坏和破坏。

所以(走下皂盒的)我只是问,如果你是认真的创建,你把你的时间和学习你的工具的商业应用期/语言成为接近他们的专家越好。我知道,如果你这样做,你会在需要的时候总是有工作,而且你会花更少的时间在桌子上殴打你的头,或者更糟的是向客户解释为什么他们的网站停工。

我真的希望你好运,放慢速度,学习你的交易,你会做得很好。

0

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

默认情况下,要扩展核心类,您可以在Codeigniter中执行此操作。我们将扩展此示例的解析器类,但这适用于所有类。综合用户指南中的此链接将为您提供在Codeigniter核心类内部扩展和过载方法所需的全部信息:http://codeigniter.com/user_guide/general/core_classes.html