如果您想开发一个WebApp,您知道它将随着时间的推移而扩展并变得越来越大,您会使用CodeIgniter还是您定制的框架?
您使用开源框架的理由是什么?您反对它的论点是什么?
以下是我的想法: CodeIgniter Pros
CodeIgniter缺点
自定义编码的Framkework Pros
自定义编码框架缺点
你对此有何看法?我的大脑告诉我要使用CodeIgniter,我的心告诉我要构建自己的框架.
AD7*_*six 17
使用已存在的东西.
为何选择CI
为什么要将你的选择限制在一个框架内 - 这使得选择成为一个近乎吸引人的论点, 你的心并没有告诉你要编写自己的框架 - 你的自我确实如此.如果你在开始之前消除了大量其他框架 - 你已经开始了很多工作.
CI是一个相当糟糕的单选.
在撰写本文时,Php是5.4.0 - 如果您能够选择用于新项目的框架 - 认真考虑使用使用5.3+功能的框架 - 或者已经在使用这样做.不要选择具有充满php4样式代码的遗留代码库的框架.
CI Cons
如果我想要成长,不确定它的可扩展性
最有可能(我不使用或喜欢代码点火器)比随机自定义框架更具可扩展性.
MIT许可证
对如何使用MIT许可软件几乎没有限制.将MIT读作"不删除或修改框架文件中的许可证块"即可.
自定义编码框架优点
可扩展性.我可以决定它将如何发展.
你确定你知道什么是可扩展的意思:)
我拥有代码
几乎在所有情况下都是如此 - 如果您使用MIT许可框架,则确实如此.
设计灵活
从长远来看,这不太可能是一个好处.例如,您取得了爆炸性的成功,需要引进一个开发团队.您将必须训练每个人如何使用构建应用程序的自定义框架.这不是简单地将它们指向一些教程来克服使用<insert name of selected framework here>的初始学习曲线.
自定义编码框架缺点
需要记录它,以便其他人能够进行协作.
实际上,除非你构建一个能够与现有框架竞争的框架,这种框架不会发生(即使有良好的文档).
需要投入时间来维护框架
不要低估这需要多长时间.
意外的错误/错误
你会在这里度过很多时间.
综上所述
我真的想添加单元测试的存在,这样你就可以知道你的应用程序会工作 - 但是代码点火器没有那个,所以如果你对你的两个选择很僵硬,我想你自己就是无论哪种方式.
以下是来自CodeIgniter 2.1.0的几个代码片段.看看它们然后告诉我这是2012年php代码应该是什么样子:
if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
@set_time_limit(300);
}
// -- snip --
$CFG =& load_class('Config', 'core');
// -- snip --
$UNI =& load_class('Utf8', 'core');
// -- snip --
function &get_instance()
{
return CI_Controller::get_instance();
}
// -- snip --
Run Code Online (Sandbox Code Playgroud)if ( ! isset($active_record) OR $active_record == TRUE)
{
require_once(BASEPATH.'database/DB_active_rec.php');
if ( ! class_exists('CI_DB'))
{
eval('class CI_DB extends CI_DB_active_record { }');
}
}
else
{
if ( ! class_exists('CI_DB'))
{
eval('class CI_DB extends CI_DB_driver { }');
}
}
Run Code Online (Sandbox Code Playgroud)if (defined('ENVIRONMENT'))
{
switch (ENVIRONMENT)
{
case 'development':
error_reporting(E_ALL);
break;
case 'testing':
case 'production':
error_reporting(0);
break;
default:
exit('The application environment is not set correctly.');
}
}
Run Code Online (Sandbox Code Playgroud)
直到PHP 5.4都E_ALL没有包含E_STRICT,这意味着"开发环境"隐藏了一些错误.在生产环境中,所有错误,而不是ini_set('display_errors', false);,这将是合理的选择.
这应该说明CodeIgniter 的优越代码质量......
你最初选择一个有意义的框架,然后开始抛出像"可扩展"和"灵活性"这样的花哨字样.
| 归档时间: |
|
| 查看次数: |
3915 次 |
| 最近记录: |