Tag Archives: CodeIgniter

关于ci和zend framework的一些牢骚

首先说明,这是淡水的牢骚,看不惯不要看。 老华仔歌里唱的应景“总逃不开工作表,做完了又来了,怎样也甩不掉……”。淡水手头的项目还没有完全结束,新的项目又要上马。于是前期就框架选择开大会,开小会。 有.net高手就开始在网上搜索合适框架。结果他得出的结论是Zend Framework,理由:官方。 不推荐Codeigniter是因为,一家小公司做的,后期支持跟不上。而且ci是轻量级的,功能不强。 php本身就是草根出身,如果看公司大小,那么为什么不用.net? ci是轻量级的,但是php能做的,他都能做,没有内置的功能,可以自己加阿?非得一定要和zend framework一样,几乎把所有能想到用到的功能都整合进去变成皇家内裤(类库)? 窃以为,做大型应用时应用框架快速开发是可取的,但是要考虑到代码的执行效率,和开发的灵活度。 zend framework能做到的, ci扩展一下也能做到,麻烦一点了。但是zend framwork有ci灵活么,ci2天可以掌握,zend framework可以么(太NB的天才不算)。 这些主流框架的评比本身没有太大的意义。框架只是工具,各有其特点(Yii高效;ci上手容易,代码优雅;thinkphp代码全中文注释,文档齐全;qee……),人才是重点。 如果理由是: zend framework是官方出品,支持应该比其他(ci)公司长久。 zend framework是官方出品,使用人数较多,人力资源丰富。 zend framework内置许多类库,扩展类库的时间可以节省不少。 zend framework内置许多类库,规范了代码(尽量使用内置类库)。 还有最具分量的理由:这是高层主管决定的。 这些我可以接受,但是说ci不行,以否定ci来肯定zend framwork,那就有些牵强了。 滔滔不绝的,连绵不断,就是要表明“zend framework是php官方出品,功能强大。ci一家小公司做的,后期支持跟不上。而且ci是轻量级的,功能不强。”。但是,zend framework哪些方面强大,ci又是哪里功能不强,都没有说出个一二三来。 嗯,滔滔不绝但也要言之有物才行吧!

Codeigniter ACL library

<?php if (!defined(‘BASEPATH’)) exit(‘No direct script access allowed’);/*** MX_ACL – Access Control Library PHP5** Notes:* $config['cache_path'] must be set** Install this file as application/libraries/MX_ACL.php** @copyright    Copyright (c) Wiredesignz & Maxximus 2009-11-03* @version     1.1** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentation [...]

kohana版企业站范例进行中

以前是用codeigniter做的,但是为了更敏捷的开发,提高生产效率(其实是要偷懒),所以开始摸索kohana,并为之着迷(主要是ORM)。 为了尽快上手kohana,所以把以前公布的企业站又用kohana改写一番。 现在前端已经完成。 kohana版,为了简化代码,使用了ORM Codeigniter版,采用了他提供的AR 可以自己感觉一下执行效率如内存占用 kohana版http://www.tsingfeng.com/khn 一般结果:Page rendered in 0.0301 seconds.UseMem 1.62MB. Codeigniter版http://www.tsingfeng.com/ci 一般结果:Page rendered in 0.0248 seconds.UseMem 1.78MB. 淡水没有专业的测试经验,只是凭框架本身提供的简陋数据和直觉判断。差不多了,如果空间支持php5最好还是用kohana,可以比较快些完成工作^_^ 2009.5.3 update: 给kohana版的加上了含分页的新闻列表页面 http://www.tsingfeng.com/khn/index.php/news

ci中文转拼音的library

拼装了一个codeigniter的中文转拼音的library。 使用方法: $this->load->library(‘utf8pinyin’,”,’py’); $data["page_title"] = $this->py->str2py(‘昆山风神贸易有限公司成立于2007年’); //KunShanFengShenMaoYiYouXianGongSiChengLiYu2007Nian str2py($str,$boolquanpin=true,$booldaxie=true) $str是要转的中文;$boolquanpin是否全拼,默认全拼;$booldaxie首字母是否大写,默认大写。 utf8pinyin

Simple flexible Caching of parts of code – MP_Cache

如标题所言,确实是简单灵活。看来想要摆脱Codeigniter越来越难了。 看看怎样使用吧 首先,在config.php中设置一下缓存目录,这个目录要存在且可写入 $config['mp_cache_dir'] = ‘application/mp_cache/’; 好了,现在看看代码 /*加载library,可以放在构造函数中*/ $this->load->library(‘MP_Cache’); /*抓取名为listNews的缓存*/ $listNews = $this->mp_cache->get(‘listNews’); if($listNews===false){     //没有缓存数据,则查询数据库     $listNews = $this->News_model->getNewslist(‘guest’)->result();     //创建缓存,命名为listNews。在mp_cache目录下就生成了listNews.cache文件,内容是序列化的数据     $this->mp_cache->write($listNews, ‘listNews’); } $data['listNews']= $listNews; $this->layout->view(‘news’, $data); 两个注意点: 1,缓存数据,必须是data,而不是resource id。如,在使用AR后用result(),result_array()等返回的数据 2,缓存名不要重复。可以使用子文件夹分隔。如,$listNews = $this->mp_cache->get(‘news/listNews’);同样创建缓存数据片段用$this->mp_cache->write($listNews, ‘news/listNews’);(php5下news文件夹会自动创建) 其他方法: $this->mp_cache->delete($filename) 删除名为$filename的cache. $this->mp_cache->delete_all($dirname) 删除 $dirname目录及其下所有缓存.如果$dirname没有设置,则删除所有缓存. mp_cache ci自带的database的cache也许不错,但是说明太少了/_\

改进layout library,方便自定义layout

CodeIgniter使用 layout library 简化视图布局 中,有些小的缺陷,不能在controller中加载类的同时设定自己的layout。貌似在CI1.6.1时可以的,方式:$this->load->library(‘layout’,’template’);自定义的layout就是template。但是现在CI1.7.0+,loader不一样了。 library($library,$paramsAarry,$objName),有三个参数了。第一个必须的是要加载的library,后面的分别是配置数组和自定义对象名称。 所以,$this->load->library(‘layout’,’template’)就不适用了。于是淡水就把layout library改写了一下。 <?php if (!defined(‘BASEPATH’)) exit(‘No direct script access allowed’);   class Layout {     var $obj;     var $layout;       function Layout($params = array())     {         $this->obj =& get_instance();         if (count($params) > 0)         {       [...]

Extended Model for CodeIgniter 1.7.x

不需要hacking CI的核心代码 1. 下载文件 2. 放入 application/libraries 文件夹 3. 在model 里,使用: class Product extends MY_Model 4. 其他的使用和旧版一样 my_model

codeigniter的数据库操作

用codeigniter也有一段时间了,一直没有做什么总结。 昨日乱逛,看到有同学总结了一下ci的数据库操作,虽说不全,但是也确实可以帮助那些刚刚上手CI的同学。 —————————————————– 链接数据库 ——- $this->load->database();//手动连接数据库 //连接多数据库 $DB1 = $this->load->database(‘group_one’, TRUE); $DB2 = $this->load->database(‘group_two’, TRUE); —————————————————– 查询 ——- //参数绑定形式 $sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; $this->db->query($sql, array(3, ‘live’, ‘Rick’));   //多结果标准查询 $query = $this->db->query($sql); //自定义 $query = $this->db->get(‘tablename’); //便捷形式,相当于:SELECT * FROM tablename $query [...]

适合Codeingiter1.7.0的authentication library

适合Codeingiter1.7.0的authentication library地址: http://dexcell.shinsengumiteam.com/dx_auth/index.html 只是一直没空研究看看。时间都被我荒废到哪里去了呢? 今天对于很多人来说,是个特殊的日子,虽然对我来说只是再平常不过的一天了。嗯,Merry Christmas!

tinyMCE和CodeIgniter1.7.0

tinyMCE是个比较优秀的web编辑器。和CodeIgniter集成是非常方便的。 下载tinyMCE并解压到网站目录,淡水是放到根目录的。 在CodeIgniter的View里调用: <script src="tiny_mce/tiny_mce.js" type="text/javascript"></script> <script type="text/javascript">     tinyMCE.init({         mode : "exact",         elements : "content",         theme : "advanced",         skin : "o2k7",         language : "zh",         relative_urls : false,     [...]

Page 1 of 3 123