- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
8年前关闭。
我已经使用 CodeIgniter 很长时间了,但是最近我觉得需要转向更高级/更 OOP 的框架。 Kohana 似乎是一个经常推荐的选项,我的问题是,Kohana 与 CodeIgniter 究竟有何不同?差异列表,特别是语法差异,会很棒。
最佳答案
我将写关于 Kohana 3.1 以及到目前为止我看到的相对于 CodeIgniter 2 的主要优势。在 Kohana 3.0 之前(一年半以前),我使用过 CodeIgniter、ZF、Symfony、Cake 并尝试了很多其他的(目前尝试做 Yii 只是因为我必须这样做)。我知道很多人会因为我“主观”而吐槽我。前进。
严格的 PHP 5.2
Kohana 在当前版本中不使用任何旧代码(即 2.x 或 CodeIgniter 的)。它被完全重写以完全面向对象并且不妨碍开发人员。简而言之,使用它进行开发感觉很自然,就像它是 PHP 开发的“方式”。
这是一个“由社区,为社区”构建的框架,而不是出于宣传目的。不是由/为任何社区,而是一个非常小众的社区。
CodeIgniter 在 PHP4 上停留了太久。查看 CI2 的源代码,我不能说他们已经完全转向 PHP5(假设 PHP 5.1 不是真的...... PHP 5)。我见过 FuelPHP,它似乎更像是 CI2 与 Kohana 的混搭,而不是 CI2 分支,尽管我不得不说它绝对有潜力。
HMVC
Kohana 感觉自然的主要原因就是这种模式。这个想法是隔离每个请求以遵守模式,最终遵守 RFC 2616。现在每个请求都有一个单独的 Response 对象,能够以非常简洁的方式重用您的代码。现在我正在开发与 iPhone、Android 和网络应用程序一起使用的网络服务。我无法描述在“内部”调用 API 是什么特权。原始示例:
public function action_delete()
{
$deleted = Request::factory('api/route')
->method(Request::DELETE)
->headers('Accept', 'text/html')
->execute();
$this->response->body($deleted);
}
public function action_update($post_id)
{
$post = ORM::factory('post', $post_id);
$errors = array();
if ($values = $this->request->post())
{
try
{
$post->values($values)->update();
$this->request->redirect('post');
}
catch (ORM_Validation_Exception $e)
{
$errors += $e->errors();
}
}
$this->template->content = View::factory('post/update', array(
'post' => $post,
'errors'=> $errors,
));
}
ORM::factory('post')
->where('user_id','=',$user_id)
->join('users','INNER')
->on('users.id','=','posts.user_id')
->find_all();
$user = ORM::factory('user', $id);
foreach ($user->posts->find_all() as $post)
{
foreach ($post->quotes->find_all() as $quote)
{
if ($quote->illegal())
{
$quote->delete();
}
}
}
关于php - Kohana 与 CodeIgniter 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5693138/
我一直在使用 Kohana 2.3.7。有一些因素阻碍我们使用 Kohana 3,其中之一是与 2.3.7 相比缺少模块。例如,我似乎找不到2.3至3中存在的支付模块(Paypal、2C0、Autho
如果我在 https://www.example.com/test?page=123 页面上,我如何使用 Kohana 获得这个完整路径(proto + host + URI + query)? 我试
在我的应用程序中,我有一个执行大约 1000 次的循环,在其中我创建对象并保存它。这是应用程序的一部分,我用数据填充数据库。一般来说,这看起来像这样: foreach(...){ ...
如果我在 https://www.example.com/test?page=123 页面上,我如何使用 Kohana 获得这个完整路径(proto + host + URI + query)? 我试
我正在使用 ORM Auth 模块,但很难弄清楚如何做到这一点。我尝试过这种情况: $user = ORM::factory('user', $id);$user->roles->delete_all
好的,我试过到处搜索,但似乎无法得到一个简单直接的答案。 我想将日志消息( INFO 、 ERROR 等)写入 Kohana 日志文件 /application/logs/YYYY/MM/DD.php
我的问题是关于多词 MySQL 表名的约定,例如“comments_flags”,它不是数据透视表。 “comments_flags”的正确数据库表名是什么? 相应的型号名称是什么? 感谢您的任何建议
尝试在我的 Kohana 2.3.4 安装上运行 PHPUnit: phpunit --colors --bootstrap=index.php ../../modules/phpunit/libra
我是 kohana 的新手。我正在使用 ORM 来获取数据。 我想建立一个查询,其中 BETWEEN条款在那里。如下 SELECT `rooms`.* FROM `rooms` LEFT JOIN `
在 Kohana 3.3 的 DOCROOT 文件夹中,有一个新的 vendor 文件夹。 它有什么用? 最佳答案 它不应该在那里。这是 Composer 留下的。 关于kohana - Kohana
如何让它发挥作用? $stuff = ORM::factory('mytable') ->with('user') ->with('other_stuff') ->find_a
我注意到,当我开始使用它们时,Kohana 3 ORM 会为我的每个模型运行“显示完整列”: SHOW FULL COLUMNS FROM `mytable` 此查询可能需要几个时钟周期才能执行(在
全新安装了 Kohana 3.1。试图让我自己的 helper 。我在 application/classes/helpers/目录中创建了一个助手。我调用了文件 javascript.php,该类称
在 Kohana 2.x 中,有一个 $file = Kohana::log_directory(); 可以根据发送的参数获取或设置目录。 如何在Kohana 3.1下得到类似的效果? 我想读取日志目
使用 native ORM 在 Kohana(3.3) 中防止 SQL 注入(inject)的最佳方法是什么? 或者默认情况下它是“安全的”.. 最佳答案 默认情况下是安全的,因为它使用 Kohana
如何在 Kohana 3.2 中调用验证对象的 trim 函数?我正在使用: $post = Validation::factory($this->request->post()); $post->r
首先,我对 kohana 很陌生,但我对更流行的 Yii 和 Yii2 有丰富的经验。 我正在处理复杂的配置,它使用查询生成器从跳跃模型调用 MsSQL 数据库。现在我不得不优化代码,但遇到了一个错误
我正在尝试在 Kohana 3.3.0 中将 Auth 模块与 ORM 驱动程序一起使用,但我唯一能做的就是在数据库中插入新用户。我不能用他们登录。 我从一个空白的 Kohana 项目、一个简单的路由
我有一个简单的users表,我想找到所有用户在哪里email_notifications = 1。 逻辑规定以下应该起作用: class Controller_Test extends Control
我需要生成这样的查询: SELECT * FROM `table1` WHERE `date1` where('date1','execute(); $foo = array(); foreach (
我是一名优秀的程序员,十分优秀!