ÖØÐÂÉóÊÓ PHP ¿ò¼Ü CodeIgniter VS Zend
×÷ÕߣºEkerete
·Ò룺Emeric Li (http://lee.kometo.com/index.php/archives/117
)
ÔÎÄ£ºhttp://www.avnetlabs.com/php/php ... r-vs-zend-framework
ÎÒÃǼƻ®´ÓÍ·¿ªÊ¼Ò»¸öÐÂÏîÄ¿£¬Îª´ËÆÀ¹ÀÁËһЩPHP¿ò¼Ü¡£ÎÒÃǵı¸Ñ¡ÁбíÓÐCakePHP £¬ CodeIgniter £¬ SymfonyºÍZend ¡£ ÎÒÃÇ·Ö±ðʹÓÃÕâ4ÖÖ¿ò¼Ü±àдÁËÒ»¸öÏàͬµÄСӦÓã¨Ò»¸ö¼òµ¥µÄWikiÓ¦Óã©£¬Ï£ÍûÎÒÃÇÄܾ¡¿ìÑ¡¶¨Ò»¸ö×îºÏÊʵġ£
ÉùÃ÷£ºÎÒ»áŬÁ¦È·±£×Ô¼ºµÄ¿Í¹ÛÐÔ£¬ËäÈ»ÎÒÊÇÒ»¸öColdeIginterµÄ°®ºÃÕß¡£ÎÒËù¹¤×÷µÄ¹«Ë¾ÊÇZendµÄºÏ»ïÈË£¨ÎÒÃÇÒѾʹÓÃÁËZend Platform ºÍ Zend Studio£©¡£I can’t help factoring that in¡£
¾¡¹ÜÒ»¿ªÊ¼µÄ¼Æ»®ÊÇÆÀ¹À4¸ö¿ò¼Ü£¬µ«ÊÇÕâÆªÎÄÕÂʵ¼ÊÊÇCodeIgniterºÍZend FrameworkµÄÖ±½Ó±È½Ï¡£ÔÚ»¨·ÑÁ˼¸¸öСʱÑо¿ÁËÕâ4¸ö¿ò¼Üºó£¬ÎÒ²»µÃ²»°ÑSymfonyºÍCakePHP´ÓÃûµ¥ÖÐÅųý¡£ÀíÓÉÈçÏ£º
Learning curve ѧϰÇúÏß
Symfony ºÍ
CakePHP¶¼ÓÐÒ»¸ö·Ç³£¶¸Ç͵ÄѧϰÇúÏß¡£CakePHPÓÐÑϸñµÄ¹æÔò£ºÊý¾Ý±íÃ÷´Ë¡¢ÎļþλÖᢷ½·¨ÃûºÍÀàÃû¡£SymfonyʹÓà .yml
¸ñʽ£¨ÐèҪѧϰ£¬ËäÈ»Ëü²»ÊÇÕæµÄºÜÄÑ£©À´´æ´¢ÅäÖÃÐÅÏ¢£¬²¢ÇÒ´óÁ¿µÄ²Ù×÷ÐèҪͨ¹ý¿ØÖÆÌ¨(console)Íê³É£¬´´½¨Êý¾Ý±í¡¢Êý¾ÝÄ£ÐͺͺܶàÆäËüÎļþ¶¼ÐèÒª
ʹÓÃÃüÁîÐС£
Strict ORM: ÑϸñµÄORM
Symfony ºÍ CakePHP¶¼ÓÐÒ»¸ö³ÉÊìµÄ¶ÔÏó¹ØÏµÓ³ÉäÆ÷(object-relational mappers | ORM)
£¬Ìṩ¶ÔÊý¾ÝµÄ·ÃÎÊ£¬µ«ÊÇÕâÒ»ÌØÐÔºÜÄѱ»½ûÓ㬳ý·Ç×÷³ö´óÁ¿µÄŬÁ¦¡£ÕâЩORMÓÐ×ÅÑϸñµÄ¹æÔòºÍÔ¼¶¨£¬ËüÃDZØÐë±»×ñÑ¡£ÓëÖ®Ïà·´£¬Zend
Framework ºÍ CodeIgniter
ÔÚÊÇ·ñʹÓÃModelsºÍÈçºÎʹÓÃModelsÉϷdz£Áé»îµÄ¡£Ê¹ÓÃModelsÊÇ¿ÉÑ¡µÄ£¬ËäÈ»ËüÃǶ¼ÓÐÊý¾ÝÓ³ÉäÆ÷£¨data
mappers£©£¬µ«Ã»ÓÐÕâЩӦÓÃÒ»Ñù¿ÉÒÔ½øÐУ¨¿ª·¢±àд£©¡£Ó¦ÓõÄÊý¾Ý²Ù×÷½«ÊǼ«ÆäÃܼ¯ºÍ¾«Ï¸£¨intensive £©µÄ£¬ÎÒÃDz»Ô¸ÒâÊܵ½Ñ¡ÔñµÄÏÞÖÆ¡£
Flexibility: Áé»îÐÔ
Zend FrameworkºÍCodeIgniter±ÈÆäËûÁ½¸ö¿ò¼Ü¸üÁé»î¡£
×îÖÕ¶Ô±È
CodeIgniter
Zend Framework
Set Up ³õʼ½¨Á¢
CodeIgniterºÜÈÝÒ׳õʼ»¯¡£ ¸´ÖÆ¿ò¼ÜµÄËùÓÐÎļþµ½ÍøÂç·þÎñÆ÷£¬ÕâÊÇÒ»¸ö²»´íµÄ¿ªÊ¼¡£ ËüµÄÎļþ¼ÐÒ²ºÜС-´óÔ¼2 .1Õס£´Ó¿ªÊ¼½¨Á¢£¬5·ÖÖÓºó£¬ÎҾͿÉÒÔÏÔʾ³öĬÈÏÖ÷Ò³¡£
Zend FrameworkÐèÒªÂ鷳һЩ£¬ËüÐèÒª´´½¨Ò»¸öbootstrapÎļþ£¬ÌîдËùÓеijõʼ»¯ÉèÖᣱȽÏ֮ϣ¬¿ò¼ÜÓеã´ó-´óÔ¼12.4MB¡£Õû¸ö³õʼ½¨Á¢¹ý³ÌÓÃÀ´´óÔ¼19·ÖÖÓ¡£
Îĵµ
ÎĵµµÄ½á¹¹ºÍ×éÖ¯Ï൱ºÃ£¬µ«ÊDz»ÈçZend FrameworkÏêϸ¡£CodeIgniterÓÐÂÛ̳ºÍW
Ïà¹ØÎĵµ£º
php½Ì³Ì:·ÃÎÊPHPÀàÖгÉÔ±±äÁ¿»ò·½·¨
ÔÚ·ÃÎÊPHPÀàÖеijÉÔ±±äÁ¿»ò·½·¨Ê±£¬Èç¹û±»ÒýÓõıäÁ¿»òÕß·½·¨±»ÉùÃ÷³Éconst»òÕßstatic,ÄÇô¾Í±ØÐëʹÓòÙ×÷·û::,
·´Ö®Èç¹û±»ÒýÓõıäÁ¿»òÕß·½·¨Ã»Óб»ÉùÃ÷³Éconst»òÕßstatic,ÄÇô¾Í±ØÐëʹÓòÙ×÷·û->¡£
ÁíÍ⣬Èç¹û´ÓÀàµÄÄÚ²¿·ÃÎÊconst»òÕßstatic±äÁ¿»òÕß·½·¨,ÄÇô¾Í±ØÐëʹÓÃ×ÔÒýÓõ ......
ÎÒÃǵĵ绰±¨ÃûϵͳÖУ¬ºô½ÐÖÐÐÄÊÕ¼¯ÁËÓû§µÄÒøÐÐÐÅÏ¢£¬È»ºóÇëÇóÒøÐеÄÖ§¸¶½Ó¿ÚµÄwebservice£¬ÐèÒª½øÐг¬Ê±ÉèÖã¬ÒòΪ²»ÄÜÒ»Ö±ÈÃѧԱµÈ´ý
½â¾ö·½·¨ÊÇ
1:Ê×ÏÈÏÈÒª¿´Ò»ÏÂphp.iniÀïµÄĬÈϳ¬Ê±Ê±¼ä£¬Ò»°ãÊÇ120Ãë
2£ºÔÚphp´úÂëÀï¼ÓÉÏ
ini_set('default_socket_timeout', 10);//ÉèÖó¬Ê±Ê±¼ä
ÈçÏÂͼ
......
phpÖÐÓÐÁ½ÖÖ·½·¨£º
1£¬Í¨¹ýmail()º¯Êý·¢ËÍ
2£¬Socket·¢ËÍÓʼþ
Ò»£¬Í¨¹ýmail()º¯Êý·¢ËÍ£º
1£¬ÐèÒªÅäÖÃphp.iniÓʼþÐÅÏ¢
´ò¿ªphp.in ......
<?php
//н¨Ä¿Â¼
mkdir("/path/to/my/dir", 0700); //0700±íʾȨÏÞ×î´ó
//ɾ³ýĿ¼
rmdir("/path/to/my/dir");
//±éÀúĿ¼
$p =dir(/etc/php5);
echo "handler:".$p->handler;
while(false!=$entry=$p->read()){
echo $entry."\n" ;
}
$p->close();
//Êä³öÎļþÄÚÈÝ
$handle=@ ......