ÕâÀïҲǿÁÒÍÆ¼öYII¿ò¼Ü£¬Õâ¸öÄêÇáµÄ¿ò¼ÜÓÉÃÀ¹ú»ªÈË¿ª·¢£¬Ãû½ÐѦǿ¡£Yii FramworkÊÇ2009×î¼ÑPHP¿ò¼Ü¡£
Yii ÊÇÒ»¸ö»ùÓÚ×é¼þ¡¢ÓÃÓÚ¿ª·¢´óÐÍ Web Ó¦ÓõĸßÐÔÄÜ PHP ¿ò¼Ü¡£Ëü½« Web ±à³ÌÖеĿÉÖØÓÃÐÔ·¢»Óµ½¼«Ö£¬Äܹ»ÏÔÖø¼ÓËÙ¿ª·¢½ø³Ì¡£Yii£¨¶Á×÷“Ò×”£©´ú±í¼òµ¥(easy)¡¢¸ßЧ(efficient)¡¢¿ÉÀ©Õ¹(extensible)¡£
ÍÆ¼öÖ¸Êý£º9ÐǼ¶
ÈÙ Óþ£º2009×î¼ÑPHP¿ò¼Ü
ƽ ̨£º PHP 5.1.0 £¨»ò¸ü¸ß°æ±¾£©
Èí¼þÖ÷Ò³£º http://www.yiiframework.com/
ÎĵµµØÖ·£º http://www.yiiframework.com/doc/
ÏÂÔØµØÖ·£º http://www.yiiframework.com/download/
ÌØµã£º
£¨1£©ÊÇÒ»¸ö´¿ OOP ¿ò¼Ü¡£¶ÔÓÚÏëʹÓà Yii µÄ¿ª·¢Õß¶øÑÔ£¬ÊìÏ¤ÃæÏò¶ÔÏó±à³Ì(OOP)»áʹ¿ª·¢¸ü¼ÓÇáËÉ¡£
£¨2£©Yii ÊÇÒ»¸öͨÓà Web ±à³Ì¿ò¼Ü£¬Äܹ»¿ª·¢ÈκÎÀàÐ굀 Web Ó¦Óá£ËüÊÇÇáÁ¿¼¶µÄ£¬ÓÖ×°ÅäÁ˺ܺúÜÇ¿´óµÄ»º´æ×é¼þ£¬Òò´ËÓÈÆäÊʺϿª·¢´óÁ÷Á¿µÄÓ¦Ó㬱ÈÈçÃÅ»§¡¢ÂÛ̳¡¢ÄÚÈݹÜÀíϵͳ(CMS)¡¢µç×ÓÉÌÎñϵͳ£¬µÈµÈ¡£
£¨3£©MVC ¿ò¼Ü¡£
Yii ÒÔÐÔÄÜÓÅÒì¡¢¹¦Äܷḻ¡¢ÎĵµÇ ......
SymfonyÊÇÒ»¸öÈ«¹¦ÄܵÄPHP¿ª·¢¿ò¼Ü£¬¿ª·¢ÓïÑÔΪPHP5.ËüÏò³ÌÐòÔ±ÌṩÁËÁ¼ºÃµÄ¼Ü¹¹£¬³£ÓõŦÄÜ×é¼þ¼°¹¤¾ß£¬¿ÉÓÃÓÚ¿ìËÙ´´½¨¸´ÔÓµÄWEB³ÌÐò¡£Ñ¡ÔñSymfony¿ÉÒÔÈÃÄã¸ü¿ìµØ·¢²¼ÄãµÄ²úÆ·£¬²¢ÇÒºÜÈÝÒ×ÔËÓªºÍÀ©Õ¹¡£SymfonyµÄÍŶӺÜÓоÑ飬²»Öظ´·¢Ã÷ÂÖ×Ó£ºËüʹÓÃÁ˺ܶàWEB¿ª·¢Öеē×î¼Ñʵ¼ù”²¢¼¯³ÉÁËһЩÓÅÐãµÄµÚÈý·½Àà¿â¡£
symfonyÔÚÁ½Äêǰ¾Í·Ç³£Á÷ÐÐÁË£¬³¹µ×ʵÏÖÁËMVCģʽ£¬¹¦ÄÜʵÔÚÊÇ̫ǿ´óÁË£¬±ÊÕßҲһֱʹÓá£
ÍÆ¼öÖ¸Êý£º8ÐǼ¶
ѧϰ³É±¾£º2¸öÖÜ£¬ÉÏÊÖ²»ºÜÈÝÒ×
ƽ ̨£º PHP 5.1.0 £¨»ò¸ü¸ß°æ±¾£©
Èí¼þÖ÷Ò³£º http://www.symfony-project.org
ÖÐÎÄÖ÷Ò³£º http://symfony-project.cn
ÎĵµµØÖ·£º http://www.symfony-project.org/book
ÏÂÔØµØÖ·£º http://www.symfony-project.org/installation
¹¦ÄÜÌØµã£º
· ËüÍêÕûʵÏÖÁËMVCÈý²ã£¬·â×°ÁËËùÓж«Î÷£¬°üÀ¨ $_POST£¬$_GET Êý¾Ý£¬Òì³£´¦Àí£¬µ÷ÊÔ¹¦ÄÜ£¬Êý¾Ý¼ì²â;
· °üº¬Ç¿´óµÄ»º´æ¹¦ÄÜ£¬×Ô¶¯¼ÓÔØClass(Õâ¸ö¹¦ÄܺÜˬ)£¬Ç¿´óµÄi18n¹ú¼Ò»¯Ö§³Ö;
· ÓÃYAML(http://www.yaml.org/)×÷ΪÅäÖÃÓïÑÔ£¬Äܹ»¿ØÖÆËùÓпò¼ÜºÍ³ÌÐòÔËÐÐÐÐΪ£¬ ......
zip.class.php
CODE:
[¸´ÖƵ½¼ôÇаå]
<?
class
zip
{
var
$datasec
,
$ctrl_dir
= array();
var
$eof_ctrl_dir
=
"x50x4bx05x06x00x00x00x00"
;
var
$old_offset
=
0
; var
$dirs
= Array(
"."
);
function
get_List
(
$zip_name
)
{
$zip
= @
fopen
(
$zip_name
,
'rb'
);
if(!
$zip
) return(
0
);
$centd
=
$this
->
ReadCentralDir
(
$zip
,
$zip_name
);
@
rewind
(
$zip
);
@
fseek
(
$zip
,
$centd
[
'offset'
]);
for (
$i
=
0
;
$i
<
$centd
[
'entries'
];
$i
++)
{
$header
=
$this
->
ReadCentralFileHeaders
(
$zip
);
$header
[
'index'
] =
$i
;
......
Ò»¡¢ÉÏ´«
ÒýÈë°ü£ºorg.apache.commons.fileupload.*
jsp´úÂ룺 DiskFileUpload fu = new DiskFileUpload();
List list = fu.parseRequest(request);
if(list != null){
System.out.println(list.size());
String [] nsrbms = null;
for (int i = 0;i < list.size(); i++){
FileItem fi = (FileItem)list.get(i);
if(fi.isFormField()) //ÕâÊÇÓÃÀ´È·¶¨ÊÇ·ñΪÎļþÊôÐÔ,
{
String fieldName = fi.getFieldName(); //ÕâÀïÈ¡µÃ±íµ¥Ãû
String fieldvalue=fi.getString ......
JSPÄÚ½¨¶ÔÏó- -
¢Ù out - javax.servlet.jsp.jspWriter
out¶ÔÏóÓÃÓڰѽá¹ûÊä³öµ½ÍøÒ³ÉÏ¡£
·½·¨£º
1. void clear() ;
Çå³ýÊä³ö»º³åÇøµÄÄÚÈÝ£¬µ«ÊDz»Êä³öµ½¿Í»§¶Ë¡£
2. void clearBuffer() ;
Çå³ýÊä³ö»º³åÇøµÄÄÚÈÝ£¬²¢Êä³öµ½¿Í»§¶Ë¡£
3. void close() ;
¹Ø±ÕÊä³öÁ÷£¬Çå³ýËùÓÐÄÚÈÝ¡£
4. void flush() ;
Êä³ö»º³åÇøÀïÃæµÄÊý¾Ý¡£
5. int getBufferSize() ;
»ñÈ¡ÒÔkbΪµ¥Î»µÄĿǰ»º³åÇø´óС¡£
6. int getRemaining() ;
»ñÈ¡ÒÔkbΪµ¥Î»µÄ»º³åÇøÖÐδ±»Õ¼ÓõĿռä´óС¡£
7. boolean isAutoFlush() ;
ÊÇ·ñ×Ô¶¯Ë¢Ð»º³åÇø¡£
8. void newLine() ;
Êä³öÒ»¸ö»»ÐÐ×Ö·û¡£
9. void print( boolean b ) ;
void print( char c ) ;
void print( char[] s ) ;
v ......
ΪʲôGenericServletÔÚinit(ServletConfig config)»ù´¡ÉÏÔö¼ÓÁËÒ»¸öinit()·½·¨£¿
init()·½·¨±»GenericServlet.init(ServletConfig config)·½·¨µ÷Óá£
init()·½·¨·½±ãÁË¿ª·¢ÈËÔ±¶¨ÖÆServletµÄ³õʼ»¯£¬¶øÎÞÐëȥά»¤ServletConfig¶ÔÏóµÄ´æ´¢¹¤×÷¡£
ÖØÐ´GenericServlet.init(ServletConfig config)±ØÐëÒªÏÔʾµÄµ÷ÓÃsuper.init(config)·½·¨¡£
ServletContext.getContect(java.lang.String uripath)µÄ×÷ÓÃÊÇʲô£¿
·µ»ØÍ¬Ò»ServerÖÐÖ¸¶¨µÄpath¶ÔÓ¦µÄServletContext¶ÔÏó,ͨ¹ý¸Ã¶ÔÏó¿ÉÒÔʵÏÖÓëServerÖÐµÄÆäËûContext´ò½»µÀ¡£
uripath±ØÐëÊÇÒÔ"/"¿ªÊ¼£¨¸Ã·¾¶µÄº¬ÒåÊÇÏà¶ÔÓÚÕû¸öServletÎĵµµÄ¸ù·¾¶£¬¶ø²»Êǵ±Ç°ServletContextµÄ¸ù·¾¶£©¡£
ServletÉúÃüÖÜÆÚÊÇʲô£¿
Ò»°ãµÄServlet(GenericServlet,¼´ÓëÐÒéÎ޹صÄServlet)µÄÉúÃüÖÜÆÚ£ºinit() --> GenericServlet.service(ServletRequest req, ServletResponse res) --> destroy.
HttpServletµÄÉúÃüÖÜÆÚ: init() --> GenericServlet.service(ServletRequest req, ServletResponse res)---> service(HttpServletRequest req, HttpServletResponse resp) --> doXXXX()-->destroy.
ÓÐûÓбØÒªÖØÐ´Gen ......