﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>PHP博客-苏广贤-随笔分类-FlEAPHP</title><link>http://www.phpweblog.net/susam119/category/394.html</link><description>专注成就将来！</description><language>zh-cn</language><lastBuildDate>Sat, 15 Dec 2007 19:20:49 GMT</lastBuildDate><pubDate>Sat, 15 Dec 2007 19:20:49 GMT</pubDate><ttl>60</ttl><item><title>用Ext2+Fleaphp所开发的Crm系统登陆代码</title><link>http://www.phpweblog.net/susam119/archive/2007/12/15/2543.html</link><dc:creator>阿门119</dc:creator><author>阿门119</author><pubDate>Sat, 15 Dec 2007 14:27:00 GMT</pubDate><guid>http://www.phpweblog.net/susam119/archive/2007/12/15/2543.html</guid><wfw:comment>http://www.phpweblog.net/susam119/comments/2543.html</wfw:comment><comments>http://www.phpweblog.net/susam119/archive/2007/12/15/2543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/susam119/comments/commentRss/2543.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/susam119/services/trackbacks/2543.html</trackback:ping><description><![CDATA[先把登陆方面的放上来供大家参考，本人用Ext也不是很久，希望大家多多指点,代码写得不够精简，呵。<br>以下是Ext代码<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_22_2592_Open_Image onclick="this.style.display='none'; Codehighlighter1_22_2592_Open_Text.style.display='none'; Codehighlighter1_22_2592_Closed_Image.style.display='inline'; Codehighlighter1_22_2592_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_22_2592_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_22_2592_Closed_Text.style.display='none'; Codehighlighter1_22_2592_Open_Image.style.display='inline'; Codehighlighter1_22_2592_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #000000">Ext.onReady(</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">()</span><span id=Codehighlighter1_22_2592_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_22_2592_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.BLANK_IMAGE_URL</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'..</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Libs</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Js</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">resources</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">images</span><span style="COLOR: #000000">/</span><span style="COLOR: #0000ff">default</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">s.gif';<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img id=Codehighlighter1_124_223_Open_Image onclick="this.style.display='none'; Codehighlighter1_124_223_Open_Text.style.display='none'; Codehighlighter1_124_223_Closed_Image.style.display='inline'; Codehighlighter1_124_223_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_124_223_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_124_223_Closed_Text.style.display='none'; Codehighlighter1_124_223_Open_Image.style.display='inline'; Codehighlighter1_124_223_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">()</span><span id=Codehighlighter1_124_223_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_124_223_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.get('loading').remove();<br><img id=Codehighlighter1_203_215_Open_Image onclick="this.style.display='none'; Codehighlighter1_203_215_Open_Text.style.display='none'; Codehighlighter1_203_215_Closed_Image.style.display='inline'; Codehighlighter1_203_215_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_203_215_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_203_215_Closed_Text.style.display='none'; Codehighlighter1_203_215_Open_Image.style.display='inline'; Codehighlighter1_203_215_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.get('loading</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">mask').fadeOut(</span><span id=Codehighlighter1_203_215_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_203_215_Open_Text><span style="COLOR: #000000">{remove:</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">250</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Ext.QuickTips.init();<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.Field.prototype.msgTarget</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'side';<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_340_2562_Open_Image onclick="this.style.display='none'; Codehighlighter1_340_2562_Open_Text.style.display='none'; Codehighlighter1_340_2562_Closed_Image.style.display='inline'; Codehighlighter1_340_2562_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_340_2562_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_340_2562_Closed_Text.style.display='none'; Codehighlighter1_340_2562_Open_Image.style.display='inline'; Codehighlighter1_340_2562_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;lfm&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Ext.FormPanel(</span><span id=Codehighlighter1_340_2562_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_340_2562_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;labelAlign:'left',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;labelWidth:</span><span style="COLOR: #000000">80</span><span style="COLOR: #000000">,<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frame:</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">,<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buttonAlign:'left',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;'润际科技CRM管理系统',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bodyStyle:'padding:5px;',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width:</span><span style="COLOR: #000000">400</span><span style="COLOR: #000000">,<br><img id=Codehighlighter1_533_813_Open_Image onclick="this.style.display='none'; Codehighlighter1_533_813_Open_Text.style.display='none'; Codehighlighter1_533_813_Closed_Image.style.display='inline'; Codehighlighter1_533_813_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_533_813_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_533_813_Closed_Text.style.display='none'; Codehighlighter1_533_813_Open_Image.style.display='inline'; Codehighlighter1_533_813_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items:&nbsp;[</span><span id=Codehighlighter1_533_813_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_533_813_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;layout:'form',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;border:</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;labelSeparator:'：',<br><img id=Codehighlighter1_627_798_Open_Image onclick="this.style.display='none'; Codehighlighter1_627_798_Open_Text.style.display='none'; Codehighlighter1_627_798_Closed_Image.style.display='inline'; Codehighlighter1_627_798_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_627_798_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_627_798_Closed_Text.style.display='none'; Codehighlighter1_627_798_Open_Image.style.display='inline'; Codehighlighter1_627_798_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items:[</span><span id=Codehighlighter1_627_798_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_627_798_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xtype:'textfield',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldLabel:'帐号',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&nbsp;'username',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allowBlank:</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anchor:'</span><span style="COLOR: #000000">70</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">]<br><img id=Codehighlighter1_815_1133_Open_Image onclick="this.style.display='none'; Codehighlighter1_815_1133_Open_Text.style.display='none'; Codehighlighter1_815_1133_Closed_Image.style.display='inline'; Codehighlighter1_815_1133_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_815_1133_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_815_1133_Closed_Text.style.display='none'; Codehighlighter1_815_1133_Open_Image.style.display='inline'; Codehighlighter1_815_1133_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">,</span><span id=Codehighlighter1_815_1133_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_815_1133_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;layout:'form',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;border:</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;labelSeparator:'：',<br><img id=Codehighlighter1_909_1118_Open_Image onclick="this.style.display='none'; Codehighlighter1_909_1118_Open_Text.style.display='none'; Codehighlighter1_909_1118_Closed_Image.style.display='inline'; Codehighlighter1_909_1118_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_909_1118_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_909_1118_Closed_Text.style.display='none'; Codehighlighter1_909_1118_Open_Image.style.display='inline'; Codehighlighter1_909_1118_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items:[</span><span id=Codehighlighter1_909_1118_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_909_1118_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xtype:'textfield',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldLabel:'密码',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&nbsp;'password',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inputType:'password',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anchor:'</span><span style="COLOR: #000000">70</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allowBlank:</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">]<br><img id=Codehighlighter1_1135_1808_Open_Image onclick="this.style.display='none'; Codehighlighter1_1135_1808_Open_Text.style.display='none'; Codehighlighter1_1135_1808_Closed_Image.style.display='inline'; Codehighlighter1_1135_1808_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1135_1808_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1135_1808_Closed_Text.style.display='none'; Codehighlighter1_1135_1808_Open_Image.style.display='inline'; Codehighlighter1_1135_1808_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">,</span><span id=Codehighlighter1_1135_1808_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_1135_1808_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;layout:'column',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;border:</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,<br><img id=Codehighlighter1_1202_1536_Open_Image onclick="this.style.display='none'; Codehighlighter1_1202_1536_Open_Text.style.display='none'; Codehighlighter1_1202_1536_Closed_Image.style.display='inline'; Codehighlighter1_1202_1536_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1202_1536_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1202_1536_Closed_Text.style.display='none'; Codehighlighter1_1202_1536_Open_Image.style.display='inline'; Codehighlighter1_1202_1536_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items:[</span><span id=Codehighlighter1_1202_1536_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_1202_1536_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;layout:'form',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;columnWidth:.</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">,<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;border:</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;labelSeparator:'：',<br><img id=Codehighlighter1_1326_1523_Open_Image onclick="this.style.display='none'; Codehighlighter1_1326_1523_Open_Text.style.display='none'; Codehighlighter1_1326_1523_Closed_Image.style.display='inline'; Codehighlighter1_1326_1523_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1326_1523_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1326_1523_Closed_Text.style.display='none'; Codehighlighter1_1326_1523_Open_Image.style.display='inline'; Codehighlighter1_1326_1523_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items:[</span><span id=Codehighlighter1_1326_1523_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_1326_1523_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xtype:'textfield',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldLabel:'验证码',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&nbsp;'code',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anchor:'</span><span style="COLOR: #000000">88</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allowBlank:</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxLength:</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">]<br><img id=Codehighlighter1_1538_1793_Open_Image onclick="this.style.display='none'; Codehighlighter1_1538_1793_Open_Text.style.display='none'; Codehighlighter1_1538_1793_Closed_Image.style.display='inline'; Codehighlighter1_1538_1793_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1538_1793_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1538_1793_Closed_Text.style.display='none'; Codehighlighter1_1538_1793_Open_Image.style.display='inline'; Codehighlighter1_1538_1793_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">,</span><span id=Codehighlighter1_1538_1793_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_1538_1793_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;layout:'form',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;columnWidth:.</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;border:</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,<br><img id=Codehighlighter1_1632_1780_Open_Image onclick="this.style.display='none'; Codehighlighter1_1632_1780_Open_Text.style.display='none'; Codehighlighter1_1632_1780_Closed_Image.style.display='inline'; Codehighlighter1_1632_1780_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1632_1780_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1632_1780_Closed_Text.style.display='none'; Codehighlighter1_1632_1780_Open_Image.style.display='inline'; Codehighlighter1_1632_1780_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items:[</span><span id=Codehighlighter1_1632_1780_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_1632_1780_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xtype:'panel',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hideLabel:</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">,<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&nbsp;'codepanel',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html:'</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">img&nbsp;src</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">?action=code</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000">'<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">]<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">]<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">],<br><img id=Codehighlighter1_1830_2555_Open_Image onclick="this.style.display='none'; Codehighlighter1_1830_2555_Open_Text.style.display='none'; Codehighlighter1_1830_2555_Closed_Image.style.display='inline'; Codehighlighter1_1830_2555_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1830_2555_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1830_2555_Closed_Text.style.display='none'; Codehighlighter1_1830_2555_Open_Image.style.display='inline'; Codehighlighter1_1830_2555_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buttons:&nbsp;[</span><span id=Codehighlighter1_1830_2555_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_1830_2555_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text:'登陆',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:'submit',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style:'margin</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">left:42px;',<br><img id=Codehighlighter1_1952_2545_Open_Image onclick="this.style.display='none'; Codehighlighter1_1952_2545_Open_Text.style.display='none'; Codehighlighter1_1952_2545_Closed_Image.style.display='inline'; Codehighlighter1_1952_2545_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1952_2545_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1952_2545_Closed_Text.style.display='none'; Codehighlighter1_1952_2545_Open_Image.style.display='inline'; Codehighlighter1_1952_2545_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handler:&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">()</span><span id=Codehighlighter1_1952_2545_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_1952_2545_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_1988_2535_Open_Image onclick="this.style.display='none'; Codehighlighter1_1988_2535_Open_Text.style.display='none'; Codehighlighter1_1988_2535_Closed_Image.style.display='inline'; Codehighlighter1_1988_2535_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1988_2535_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1988_2535_Closed_Text.style.display='none'; Codehighlighter1_1988_2535_Open_Image.style.display='inline'; Codehighlighter1_1988_2535_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(lfm.form.isValid())</span><span id=Codehighlighter1_1988_2535_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_1988_2535_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_2029_2519_Open_Image onclick="this.style.display='none'; Codehighlighter1_2029_2519_Open_Text.style.display='none'; Codehighlighter1_2029_2519_Closed_Image.style.display='inline'; Codehighlighter1_2029_2519_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2029_2519_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2029_2519_Closed_Text.style.display='none'; Codehighlighter1_2029_2519_Open_Image.style.display='inline'; Codehighlighter1_2029_2519_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lfm.form.doAction('submit',</span><span id=Codehighlighter1_2029_2519_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_2029_2519_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:'</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">login',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params:'',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method:'post',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;waitTitle:'提示信息',<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;waitMsg:'登陆系统中<img src="http://www.phpweblog.net/Images/dot.gif">',<br><img id=Codehighlighter1_2217_2406_Open_Image onclick="this.style.display='none'; Codehighlighter1_2217_2406_Open_Text.style.display='none'; Codehighlighter1_2217_2406_Closed_Image.style.display='inline'; Codehighlighter1_2217_2406_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2217_2406_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2217_2406_Closed_Text.style.display='none'; Codehighlighter1_2217_2406_Open_Image.style.display='inline'; Codehighlighter1_2217_2406_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">(form,action)</span><span id=Codehighlighter1_2217_2406_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_2217_2406_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_2261_2319_Open_Image onclick="this.style.display='none'; Codehighlighter1_2261_2319_Open_Text.style.display='none'; Codehighlighter1_2261_2319_Closed_Image.style.display='inline'; Codehighlighter1_2261_2319_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2261_2319_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2261_2319_Closed_Text.style.display='none'; Codehighlighter1_2261_2319_Open_Image.style.display='inline'; Codehighlighter1_2261_2319_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(action.result.data</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">'登陆成功')</span><span id=Codehighlighter1_2261_2319_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_2261_2319_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.location</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">main';<br><img id=Codehighlighter1_2324_2392_Open_Image onclick="this.style.display='none'; Codehighlighter1_2324_2392_Open_Text.style.display='none'; Codehighlighter1_2324_2392_Closed_Image.style.display='inline'; Codehighlighter1_2324_2392_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2324_2392_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2324_2392_Closed_Text.style.display='none'; Codehighlighter1_2324_2392_Open_Image.style.display='inline'; Codehighlighter1_2324_2392_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #0000ff">else</span><span id=Codehighlighter1_2324_2392_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_2324_2392_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Msg.alert('提示信息',action.result.data);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">,<br><img id=Codehighlighter1_2439_2505_Open_Image onclick="this.style.display='none'; Codehighlighter1_2439_2505_Open_Text.style.display='none'; Codehighlighter1_2439_2505_Closed_Image.style.display='inline'; Codehighlighter1_2439_2505_Closed_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2439_2505_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2439_2505_Closed_Text.style.display='none'; Codehighlighter1_2439_2505_Open_Image.style.display='inline'; Codehighlighter1_2439_2505_Open_Text.style.display='inline';" src="http://www.phpweblog.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;failure:</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">()</span><span id=Codehighlighter1_2439_2505_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.phpweblog.net/Images/dot.gif"></span><span id=Codehighlighter1_2439_2505_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Msg.alert('提示信息','操作失败，请联系系统管理员！');<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">]<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;lfm.render('inner');<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">);</span></div>
<br>以下是Fleaphp的Controller代码<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&lt;?</span><span style="COLOR: #000000">php<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">///////////////////////////////////////////////////////////////////////////<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;这个文件是&nbsp;RangeCrm&nbsp;项目的一部分<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;Copyright&nbsp;(c)&nbsp;2007&nbsp;-&nbsp;2008&nbsp;www.erange.com.cn<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;要查看完整的版权信息和许可信息，请查看源代码中附带的&nbsp;COPYRIGHT&nbsp;文件，<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;或者访问&nbsp;http://www.erange.com.cn/&nbsp;获得详细信息。</span><span style="COLOR: #008000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//</span><span style="COLOR: #008000">///////////////////////////////////////////////////////////////////////////</span><span style="COLOR: #008000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>FLEA</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">loadClass(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Controller_Default</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;用户资料控制类<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;@package&nbsp;AUsers<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;@author&nbsp;苏广贤&nbsp;susam119@21cn.com<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;@version&nbsp;0.1<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Controller_AUsers&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;Controller_Default&nbsp;{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;数据对象<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;Table_AUsers<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$_tbAUsers</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;操作对象<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;Model_AUsers<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$_mlAUsers</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;数据对象<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;Table_AProfile<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$_tbAProfile</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;构造函数<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;__construct(){<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAUsers</span><span style="COLOR: #000000">=&amp;</span><span style="COLOR: #000000">FLEA</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">getSingleton(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Table_AUsers</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_mlAUsers</span><span style="COLOR: #000000">=&amp;</span><span style="COLOR: #000000">FLEA</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">getSingleton(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Model_AUsers</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAProfile</span><span style="COLOR: #000000">=&amp;</span><span style="COLOR: #000000">FLEA</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">getSingleton(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Table_AProfile</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;载入列表界面<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;actionIndex(){<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$rows</span><span style="COLOR: #000000">=</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">pager(</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAUsers</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">users_id&nbsp;desc</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$smarty</span><span style="COLOR: #000000">=</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_getView();<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$smarty</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">assign(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">js</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">APP_JS);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$smarty</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">assign(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">users</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$rows</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$smarty</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">display(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">admin/users.tpl</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #000000"><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>}<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">?&gt;</span></div>
以下是Fleaphp的Model代码<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&lt;?</span><span style="COLOR: #000000">php<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">///////////////////////////////////////////////////////////////////////////<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;这个文件是&nbsp;RangeCrm&nbsp;项目的一部分<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;Copyright&nbsp;(c)&nbsp;2007&nbsp;-&nbsp;2008&nbsp;www.erange.com.cn<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;要查看完整的版权信息和许可信息，请查看源代码中附带的&nbsp;COPYRIGHT&nbsp;文件，<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;或者访问&nbsp;http://www.erange.com.cn/&nbsp;获得详细信息。</span><span style="COLOR: #008000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//</span><span style="COLOR: #008000">///////////////////////////////////////////////////////////////////////////</span><span style="COLOR: #008000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>FLEA</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">loadClass(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Controller_Default</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;用户资料操作类<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;@package&nbsp;AUsers<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;@author&nbsp;苏广贤&nbsp;susam119@21cn.com<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;@version&nbsp;0.1<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Model_AUsers&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;Controller_Default&nbsp;{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;数据对象<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;Table_AUsers<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$_tbAUsers</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;构造函数<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;__construct(){<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAUsers</span><span style="COLOR: #000000">=&amp;</span><span style="COLOR: #000000">FLEA</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">getSingleton(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Table_AUsers</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;登陆函数<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;login(){<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$rules</span><span style="COLOR: #000000">=</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAUsers</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">meta;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$rules</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">USERNAME</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">notEmpty</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$rules</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">PASSWORD</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">notEmpty</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$verifier</span><span style="COLOR: #000000">=&amp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;FLEA_Helper_Verifier();<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">=</span><span style="COLOR: #800080">$verifier</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">checkAll(</span><span style="COLOR: #800080">$_POST</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$rules</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FLEA</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">loadClass(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">FLEA_Helper_ImgCode</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$imgcode</span><span style="COLOR: #000000">=&amp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;FLEA_Helper_ImgCode();<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #800080">$imgcode</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">check(</span><span style="COLOR: #800080">$_POST</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">code</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">])){<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">echo</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">{success:true,data:"验证码不正确"}</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">exit</span><span style="COLOR: #000000">();<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$user</span><span style="COLOR: #000000">=</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAUsers</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">findByUsername(</span><span style="COLOR: #800080">$_POST</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">username</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">]);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #800080">$user</span><span style="COLOR: #000000">){<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">echo</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">{success:true,data:"用户名错误"}</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">exit</span><span style="COLOR: #000000">();<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$pwd</span><span style="COLOR: #000000">=</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAUsers</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">checkPassword(</span><span style="COLOR: #800080">$_POST</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">password</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$user</span><span style="COLOR: #000000">[</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAUsers</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">passwordField]);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #800080">$pwd</span><span style="COLOR: #000000">){<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">echo</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">{success:true,data:"密码错误"}</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">exit</span><span style="COLOR: #000000">();<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$roles</span><span style="COLOR: #000000">=</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAUsers</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">fetchRoles(</span><span style="COLOR: #800080">$user</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$rbac</span><span style="COLOR: #000000">=&amp;</span><span style="COLOR: #000000">FLEA</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">getSingleton(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">FLEA_Com_RBAC</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$sessionUsers</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">array</span><span style="COLOR: #000000">(<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$user</span><span style="COLOR: #000000">[</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAUsers</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">primaryKey]</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$user</span><span style="COLOR: #000000">[</span><span style="COLOR: #800080">$this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">_tbAUsers</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">usernameField]<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$rbac</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setUser(</span><span style="COLOR: #800080">$sessionUsers</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$roles</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">echo</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">{success:true,data:"登陆成功"}</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #000000">}<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">?&gt;</span></div>
以下是Fleaphp的Table代码<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&lt;?</span><span style="COLOR: #000000">php<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">///////////////////////////////////////////////////////////////////////////<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;这个文件是&nbsp;RangeCrm&nbsp;项目的一部分<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;Copyright&nbsp;(c)&nbsp;2007&nbsp;-&nbsp;2008&nbsp;www.erange.com.cn<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;要查看完整的版权信息和许可信息，请查看源代码中附带的&nbsp;COPYRIGHT&nbsp;文件，<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//&nbsp;或者访问&nbsp;http://www.erange.com.cn/&nbsp;获得详细信息。</span><span style="COLOR: #008000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>//</span><span style="COLOR: #008000">///////////////////////////////////////////////////////////////////////////</span><span style="COLOR: #008000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>FLEA</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">loadClass(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">FLEA_Com_RBAC_UsersManager</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;用户资料数据类<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;@package&nbsp;AUsers<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;@author&nbsp;苏广贤&nbsp;susam119@21cn.com<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;*&nbsp;@version&nbsp;0.1<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Table_AUsers&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;FLEA_Com_RBAC_UsersManager&nbsp;{<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;数据表名<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;users<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$tableName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">users</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;数据表主键<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;users_id<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$primaryKey</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">users_id</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;多对多关联<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;array<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$manyToMany</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">array</span><span style="COLOR: #000000">(<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">tableClass</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Table_ARoles</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">joinTable</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">users_roles</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">foreignKey</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">users_id</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">assocforeignKey</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">roles_id</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">mappingName</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">roles</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;一对一关联<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;array<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$hasOne</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">array</span><span style="COLOR: #000000">(<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">tableClass</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Table_AProfile</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">foreignKey</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">users_id</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">mappingName</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">profile</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"><br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;);<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top>}<br><img src="http://www.phpweblog.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">?&gt;</span></div>
<img src ="http://www.phpweblog.net/susam119/aggbug/2543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/susam119/" target="_blank">阿门119</a> 2007-12-15 22:27 <a href="http://www.phpweblog.net/susam119/archive/2007/12/15/2543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开源 PHP 开发框架 - FleaPHP</title><link>http://www.phpweblog.net/susam119/archive/2007/12/07/2477.html</link><dc:creator>阿门119</dc:creator><author>阿门119</author><pubDate>Fri, 07 Dec 2007 01:17:00 GMT</pubDate><guid>http://www.phpweblog.net/susam119/archive/2007/12/07/2477.html</guid><wfw:comment>http://www.phpweblog.net/susam119/comments/2477.html</wfw:comment><comments>http://www.phpweblog.net/susam119/archive/2007/12/07/2477.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.phpweblog.net/susam119/comments/commentRss/2477.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/susam119/services/trackbacks/2477.html</trackback:ping><description><![CDATA[<div class=breadcrumb><a href="http://www.fleaphp.org.cn/">Home</a></div>
<h1 class=title>关于 FleaPHP</h1>
<div class=tabs></div>
<!-- begin content -->
<div class=node><span class=submitted>Submitted by admin on Sun, 2006-08-27 09:55.</span> <span class=taxonomy></span>
<div class=content>
<div class=table_of_contents>
<p><a href="http://www.qeeyuan.com/" target=_blank><img src="http://www.fleaphp.org.cn/media/btn_get_services_large.gif" border=0></a></p>
<p><strong>关于 FleaPHP</strong></p>
<ul>
    <li><a href="http://www.fleaphp.org.cn/index.php?q=about#goal">FleaPHP 的设计目标</a>
    <li><a href="http://www.fleaphp.org.cn/index.php?q=about#features">FleaPHP 的主要特征</a>
    <li><a href="http://www.fleaphp.org.cn/index.php?q=about#free">自由的 FleaPHP</a>
    <li><a href="http://www.fleaphp.org.cn/index.php?q=about#history">FleaPHP的起源</a>
    <li><a href="http://www.fleaphp.org.cn/index.php?q=about#future">未来的发展</a> </li>
</ul>
</div>
<p>FleaPHP 并不是心血来潮的结果，而是作者在 Web 开发中不断探索的成果。虽然 FleaPHP 缺乏 Zend Framework 那样巨大的号召力，也没有 CakePHP 和 Symfony 那样庞大的社区。但 FleaPHP 仍然是一个值得你花时间去了解、去学习的框架。</p>
<hr>
<div><br><a name=goal></a></div>
<h2>FleaPHP 的设计目标</h2>
<p>FleaPHP 致力于减少开发者创建 Web 应用程序的工作量，并降低开发难度和强度，提高开发效率。</p>
<ul>
    <li>快速、轻量级，避免臃肿的结构带来的性能损失
    <p>由于 PHP 是解释执行，如果花费太多资源在框架本身，显然不适合的。就像一台计算机如果把大量的资源都花在操作系统上了，而应用程序能够得到的资源却少得可怜，显然是无法让用户接受的。</p>
    <li>可扩展、开放性的架构，允许开发者引入自己的组件或者任何成熟的工具库
    <p>框架虽然提供了许多组件，但不可能完全满足用户的需求。因此，框架本身应该是松散耦合、可扩展的。开发者可以很简单的为框架加入新的组件。同时，框架的逐步发展也不应该影响框架的核心基础。最后，开放性的架构让开发者在框架中引入其他组件或者工具库时不会遇到任何困难。例如开发者可能会使用 Smarty 来做模板引擎，以及 PEAR 中的一些库来简化开发工作。</p>
    <li>尽可能少的契约，但同时提供足够的自动化能力，减轻开发强度
    <p>虽然契约式编程，可以让框架本身的设计变得更简单，开发者也能从框架获得更多的帮助。但太过严格的规则和约定会明显降低框架的适应性，为此需要对两者进行适当的平衡。FleaPHP设计时采用尽可能少的契约，通过更复杂的实现来实现一些自动化能力。或者以最少量的配置信息来帮助框架为开发者提供服务。</p>
    <li>高度灵活的解决方案，提供开发应用程序的大多数基本组件
    <p>虽然现在已经有许许多多出色的工具库可供选择。但对于一些平常的需求来说，这些工具库可能具有过度杀伤能力（也就是说工具库本身提供了远远超过需求的功能）。由此带来了学习难度增大、性能降低等问题。为此，FleaPHP 框架提供了一组轻量级的基本组件。这些组件被设计为拥有基本的功能和可扩展。 例如 FleaPHP 附带的基于角色的权限验证组件虽然不如 phpGACL 这样的库功能强大，但却能够解决平常开发都会遇到的典型权限验证问题，并允许开发者自行扩展这个组件。</p>
    </li>
</ul>
<hr>
<div><br><a name=features></a></div>
<h2>FleaPHP 的主要特征</h2>
<p>除了 MVC 模式实现、Dispatcher 调度器、模板引擎等常见功能外，FleaPHP 框架还拥有许多独一无二的特点：</p>
<ul>
    <li>简单、容易理解的 MVC 模型
    <p>不像其他流行的框架，FleaPHP 提供的 MVC 模型注重简单和容易理解。例如 FleaPHP 不要求开发者从特定的类派生自己的控制器类和业务模型类。</p>
    <li>易于使用、高度自动化的数据库 CRUD 操作
    <p>FleaPHP 采用 TableDataGateway 设计模式来封装数据表操作。FLEA_Db_TableDataGateway 类不但提供了容易使用的 CRUD 操作，还实现了数据表之间的关联操作。同时，FleaPHP 没有像其他框架那样将每一行记录都封装为一个对象（毫无疑问这会产生明显的性能问题），而是利用 PHP 强大的数组来保存和传递数据。</p>
    <li>尽可能少的配置
    <p>虽然像数据库联接信息等配置仍然是不可少的，但 FleaPHP 应用程序通常只需要设置几个选项，即可在各种环境中运行良好。而且 FleaPHP 的所有设置都采用 PHP 数组来保存，不但容易理解，而且省掉了解析、缓存等不必要的过程，提高了性能。</p>
    <li>高度可配置能力
    <p>虽然 FleaPHP 自动化程度很高，但 FleaPHP 同时也拥有高度的可配置能力。通过覆盖 FleaPHP 默认的选项，开发者可以获得最大程度的灵活性。让开发者可以在适应现有代码、保持开发习惯等各方面获得好处。</p>
    <li>自动化的数据验证和转义
    <p>即便不做任何处理，程序将数据通过 FLEA_Db_TableDataGateway 提交到数据库前。FleaPHP 也会自动对数据进行验证，并转义特殊字符，最大程度消除 SQL 注入攻击。</p>
    <li>丰富的助手对象和组件
    <p>FleaPHP 附带了一些非常实用的助手对象，从生成图像验证码、处理文件上传到通用数据验证等。这些助手对象大多是一些独立的对象，完全不依赖于 FleaPHP 框架本身。因此开发者不但可以在 FleaPHP 之外使用这些助手对象，也可以方便的加入自己的助手对象。 组件是比助手对象更为复杂的可重用单元。这些组件包括基于角色的用户管理、脚手架等。利用这些组件，开发者可以很快的完成一些常见任务，并能在这些组件基础上扩展出功能更复杂的组件。</p>
    <li>与 Smarty 集成
    <p>只需要修改几个选项，FleaPHP 应用程序就可以和流行的 Smarty 模版引擎集成。</p>
    <li>100% FREE
    <p>当然，最后一点就是 FleaPHP 是一个完全开放源代码和文档（不是那种滑稽的删除了所有注释仅能运行的代码）、不限制使用的项目。你可以自由的学习、使用 FleaPHP，也可以在自己的应用程序中使用 FleaPHP。不管你的应用程序是否是商业应用，都不需要公开你的源代码，从最大程度上保护了你的知识产权。不过如果你愿意将代码反馈到社区，那么大家都会感谢你。</p>
    </li>
</ul>
<p>请记住，FleaPHP 是一个持续发展的框架，随时有新特性被加入到框架中。你现在需要，但 FleaPHP 尚未提供的功能，也许不久以后就出现在 FleaPHP 中了。当然，这需要你积极参与 FleaPHP 的发展，提出你的建议和意见。</p>
<hr>
<div><br><a name=free></a></div>
<h2>自由的 FleaPHP</h2>
<p>FleaPHP 是一个遵循 BSD 协议发布的开放源代码应用程序开发框架。你可以免费获取 FleaPHP 框架，并应用到自己的开发工作中。与流行的 GPL 协议不同，FleaPHP 遵循的 BSD 协议不要求开发者将基于 FleaPHP 框架开发的应用程序公布于众。这很好的保护了开发者及其所属企业的利益。更进一步，即便你基于 FleaPHP 实现了自己的产品或者对 FleaPHP 进行了修改以满足自己的需求。你仍然不需要公布你的劳动成果。</p>
<p>下面是关于 BSD 协议的简单介绍：</p>
<p>BSD 开源协议是一个给于使用者很大自由的协议。可以自由的使用，修改源代码，也可以将修改后的代码作为开源或者专有软件再发布。当你发布使用了 BSD 协议的代码，或者以 BSD 协议代码为基础做二次开发自己的产品时，需要满足三个条件：</p>
<ul>
    <li>如果再发布的产品中包含源代码，则在源代码中必须带有原来代码中的 BSD 协议。
    <li>如果再发布的只是二进制类库/软件，则需要在类库/软件的文档和版权声明中包含原来代码中的 BSD 协议。
    <li>不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 </li>
</ul>
<p>BSD 协议鼓励代码共享，但需要尊重代码作者的著作权。BSD 由于允许使用者修改和重新发布代码，也允许使用或在 BSD 代码上开发商业软件发布和销售，因此是对商业集成很友好的协议。很多的公司企业在选用开源产品的时候都首选 BSD 协议，因为可以完全控制这些第三方的代码，在必要的时候可以修改或者二次开发。</p>
<hr>
<div><br><a name=history></a></div>
<h2>FleaPHP的起源</h2>
<p>两年多以前，我开始涉及使用 PHP 开发 Web 应用的工作。在反复编写一些过程式代码后，我彻底厌倦了这种开发方式，开始怀念 C++ 中的面向对象设计。这时，正好在 ChinaUnix 上看到了<a href="http://bbs.chinaunix.net/forum/viewtopic.php?t=224412">shukebeita兄的精华贴</a>。在这篇帖子里，shukebeita 提出了一种面向对象的 PHP 应用开发方式。虽然只有一个雏形，但这已经让我受益匪浅。</p>
<p><img style="FLOAT: left; MARGIN-BOTTOM: 8px; MARGIN-RIGHT: 8px" alt="" src="http://www.fleaphp.org.cn/media/pfc3_logo.png"> 随后，我根据 shukebeita 的思路实现了 PFC 的第一个版本（当时命名为轻量级 OO 框架）。其实说起来，根本不能称之为框架，仅仅只有两个类。但已经实现了一个简单但实用的核心结构。现在回过头来看，PFC1 实际上实现了一个 Dispatcher 模式，根据 HTTP 请求中的 action 参数调用不同的代码。</p>
<p>在接下来的两年时间，PFC 不断翻新，最终发展到了 PFC3。该版本的 PFC 已经完整的实现了 Dispatcher、MVC 模式，并且引入了 ViewDriver 抽象层、基于角色的权限验证、采用 Provider 模式实现的用户和角色信息管理、一个简单的但带有缓存功能模板引擎等内容。期间曾经试图将 PFC 发扬光大（笑），可惜由于工作变动和个人原因，项目进度非常缓慢，最后终于放弃了。但导致 PFC 放弃的主要原因并不是因为进度缓慢，而是因为我看到了 Web 应用开发的杀手 —— Ruby on Rails。</p>
<h3>Ruby on Rails</h3>
<p><img style="FLOAT: left; MARGIN-BOTTOM: 8px; MARGIN-RIGHT: 8px" alt="" src="http://www.fleaphp.org.cn/media/ror_logo.png"> <a href="http://www.rubyonrails.org/">Ruby on Rails</a>（后文简称 RoR）是一个采用 Ruby 语言实现的快速、轻便的 Web 应用开发框架，通过契约式编程大大简化了 Web 应用的开发工作。</p>
<p>所谓契约式编程，基本思想就是开发者必须严格遵守框架确定的一些规则和模式（例如对象命名、数据库主键字段命名等）。由于这些规则和模式的存在，框架可以自动完成许多以前需要开发者自己处理的工作。例如根据特定的名字，获取业务对象或者数据表操作对象。更主要的原因是 RoR 实现了 ActiveRecord 模式，并且在这个基础模式之上，扩展了许多便于开发者操作数据库的方法。</p>
<p>虽然 ActiveRecord 只能处理 Create（建立）、Read（读取）、Update（更新）、Delete（删除）等数据表操作，以及一对一、一对多和多对多等几种有限的数据表间关联关系。但我们平时开发的大量应用程序，CRUD 又何尝不是其中的主要内容呢。因此，RoR 为开发者解决了大部分日常任务，让开发者可以集中精力到更关键的地方，例如业务流程的实现。</p>
<p>在我看到 RoR 后，明白 PFC 虽然已经解决了 MVC 模式、权限验证等任务，但最主要的数据库访问却没有提供任何能够简化开发的解决方案。经过反复考虑，我终止了 PFC 系列，开始了一个&#8220;全新&#8221;的框架设计。</p>
<h3>Flea1 与 FleaPHP</h3>
<p>最初，这个新框架沿用了PFC系列的命名方式，命名为 flea1（也就是 FLEA 第一版）。在这个版本中，我试验了一些想法，并取得了不错的效果。</p>
<p>不过，我没有采用严格的 ActiveRecord 模式，而是采用了类似<a href="http://www.cakephp.org/">CakePHP</a>，一个类似 RoR 的 PHP 框架的 Model 设计。这种设计既实现了 CRUD 操作，又实现了数据表间的关联操作。将这个最初版本的 flea1 框架应用到实际工作中后，马上取得了立竿见影的效果。数据库访问工作被大大简化，甚至连数据库访问代码都不用写了。而且对于数据表之间的关联，也能完成自动化的处理。</p>
<p>接下来，我拿到了《企业应用架构模式》这本经典的设计模式书籍。经过仔细研究，并实际测试。我发现在 PHP 里面使用 ActiveRecord 模式并不是一个很好的选择。因为 ActiveRecord 实际上是针对数据表里面的每一个数据行构造一个对象。这样一来，对于 PHP 这种面向对象能力不强（尤其是 PHP4）的脚本语言来说，带来了许多棘手的问题。</p>
<div><img alt="" src="http://www.fleaphp.org.cn/media/flea_logo_small.gif"></div>
<p>最终，flea1 的设计方案进行了一些调整，确定为现在的架构，并且框架命名为 FleaPHP。</p>
<hr>
<div><br><a name=future></a></div>
<h2>未来的发展</h2>
<p>FleaPHP 在外来将继续保持简单易用、高度模块化的特点，但同时通过可插入的模块形式提供更多的功能。</p>
<p>FleaPHP 项目的短期目标：</p>
<ul>
    <li>完善文档
    <p>一个成功的项目，离不开完善的文档和技术支持。目前，FleaPHP 的核心和主要功能已经日趋稳定，但文档还很匮乏。所以，近期 FleaPHP 项目组的主要工作就是完善文档，确保开发者能够尽快掌握 FleaPHP 的使用。文档目前正在撰写的包括开发指南和一些系列文章。</p>
    <li>支持更多的数据库系统
    <p>目前，FleaPHP 仅能支持 MySQL 数据库。但由于 FleaPHP 的数据库抽象层非常简单，所以短期内即可增加对多种数据库的支持。</p>
    </li>
</ul>
<p>FleaPHP 项目的长期目标：</p>
<ul>
    <li>以插件形式提供更多的功能
    <p>由于 FleaPHP 开放式的结构，开发者可以很方便的为 FleaPHP 提供更多的插件。这些将要增加的插件包括完整的 Ajax 支持。</p>
    <li>吸收开发者参与，将 FleaPHP 建设为一个成功的社区开源项目 </li>
</ul>
<p>如果你有热情，并且有能力为 FleaPHP 做贡献，我们随时都欢迎你加入 FleaPHP 开发者团队！</p>
<hr>
</div>
</div>
<img src ="http://www.phpweblog.net/susam119/aggbug/2477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/susam119/" target="_blank">阿门119</a> 2007-12-07 09:17 <a href="http://www.phpweblog.net/susam119/archive/2007/12/07/2477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[实例代码] 浅谈FleaPHP中的表关联！</title><link>http://www.phpweblog.net/susam119/archive/2007/12/07/2476.html</link><dc:creator>阿门119</dc:creator><author>阿门119</author><pubDate>Fri, 07 Dec 2007 01:11:00 GMT</pubDate><guid>http://www.phpweblog.net/susam119/archive/2007/12/07/2476.html</guid><wfw:comment>http://www.phpweblog.net/susam119/comments/2476.html</wfw:comment><comments>http://www.phpweblog.net/susam119/archive/2007/12/07/2476.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/susam119/comments/commentRss/2476.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/susam119/services/trackbacks/2476.html</trackback:ping><description><![CDATA[<div class=t_msgfont id=postmessage_9835>我也是个<span class=t_tag onclick=tagshow(event) href="tag.php?name=FleaPHP">FleaPHP</span><span class=t_tag onclick=tagshow(event) href="tag.php?name=%E5%88%9D%E5%AD%A6%E8%80%85">初学者</span>，初写关于<span class=t_tag onclick=tagshow(event) href="tag.php?name=FleaPHP">FleaPHP</span>的文章，当作是我学习<span class=t_tag onclick=tagshow(event) href="tag.php?name=FleaPHP">FleaPHP</span>时的心得笔记吧！<br><br>&nbsp; &nbsp;&nbsp; &nbsp;在关系<span class=t_tag onclick=tagshow(event) href="tag.php?name=%E6%95%B0%E6%8D%AE%E5%BA%93">数据库</span>应用中，都离不开表与表的<strong><font color=#ff0000>关联</font></strong>，表与表之间建立了<strong><font color=#ff0000>关联</font></strong>关系后就可以提供很多方便的操作了，比如我要查询一个学生的信息，如果不建立学生与班级的关系的话，那么，只可以显示出学生的基本信息，而学生是属于某一个班级的，我现在想知道这个学生的信息与该学生所在的班级的信息，甚至是该学生的任课老师等信息，建立了学生表，与班级表，老师表之间的关系就方便好多了，用一个学生ID就可以查找出所有相<strong><font color=#ff0000>关联</font></strong>的数据。<br><br>在FleaPHP中，支持以下四种<strong><font color=#ff0000>关联</font></strong>关系：<br>
<ul>
    <li>HAS_ONE
    <li>HAS_MANY
    <li>MANY_TO_MANY
    <li>BELONGS_TO</li>
</ul>
<br>&nbsp; &nbsp;&nbsp; &nbsp;分别对应FLEA_Db_TableDataGateway表中的 $<span class=t_tag onclick=tagshow(event) href="tag.php?name=hasOne">hasOne</span>,$hasMany,$manyToMany,$belongsTo 属性<br><br>我们下面就用 老师，学生，学生档案，班级的例子说说这几个关系。<br><br>以下是<span class=t_tag onclick=tagshow(event) href="tag.php?name=SQL">SQL</span><span class=t_tag onclick=tagshow(event) href="tag.php?name=%E4%BB%A3%E7%A0%81">代码</span>：
<div class=blockcode><span class=headactions onclick="copycode($('code0'));">复制内容到剪贴板</span>
<h5>代码:</h5>
<code id=code0>//学生表<br>Create TABLE `testDB`.`student` (<br>&nbsp;&nbsp;`stu_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>&nbsp;&nbsp;`stu_name` VARCHAR(20) NOT NULL,<br>&nbsp;&nbsp;`stu_class_id` INTEGER UNSIGNED NOT NULL,<br>&nbsp;&nbsp;PRIMARY KEY (`stu_id`)<br>)<br><br>//学生档案表<br>Create TABLE `testDB`.`stu_record` (<br>&nbsp;&nbsp;`record_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>&nbsp;&nbsp;`stu_id` INTEGER UNSIGNED NOT NULL,<br>&nbsp;&nbsp;`family_add` VARCHAR(150) NULL,<br>&nbsp;&nbsp;`family_tel` VARCHAR(20) NULL,<br>&nbsp;&nbsp;PRIMARY KEY (`record_id`)<br>)<br><br>//教师表<br>Create TABLE `testDB`.`teacher` (<br>&nbsp;&nbsp;`teacher_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>&nbsp;&nbsp;`teacher_name` VARCHAR(20) NOT NULL,<br>&nbsp;&nbsp;PRIMARY KEY (`teacher_id`)<br>)<br><br>//班级表<br>Create TABLE `testDB`.`classes` (<br>&nbsp;&nbsp;`class_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>&nbsp;&nbsp;`class_name` VARCHAR(20) NOT NULL,<br>&nbsp;&nbsp;PRIMARY KEY (`class_id`)<br>)<br><br>//由于教师与班级是多对多关系，所有建立一个中间连接表以表示该<strong><font color=#ff0000>关联</font></strong><br>Create TABLE `testDB`.`link_teacher_classes` (<br>&nbsp;&nbsp;`link_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>&nbsp;&nbsp;`teacher_id` INTEGER UNSIGNED NOT NULL,<br>&nbsp;&nbsp;`class_id` INTEGER UNSIGNED NOT NULL,<br>&nbsp;&nbsp;PRIMARY KEY (`link_id`)<br>)</code></div>
现在，建好表之后，我们还要写几个继承自FLEA_Db_TableDataGateway父类的类，以对应数据库中的Student，Teacher，Classes表（连接表不用了）如下：
<div class=blockcode><span class=headactions onclick="copycode($('code1'));">复制内容到剪贴板</span>
<h5>代码:</h5>
<code id=code1>//学生表对应的类<br>class Model_Student extends FLEA_Db_TableDataGateway{<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $tableName = 'student';<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $primaryKey = 'stu_id';<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;这是一对一关系，一个学生对应唯一的一个Record档案<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;tableClass 对应要与之<strong><font color=#ff0000>关联</font></strong>一对一的表的对象类，即档案表的类<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;foreignKey是在档案表中，对应学生表的一个外键接连字段，<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;用该字段标识该档案属于哪个学生<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;mappingName 就是用于在你查询学生信息时，学生档案字段的别名<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;*/<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $hasOne = array(<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'tableClass' =&gt; 'Model_Record',<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'foreignKey' =&gt; 'stu_id',<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'mappingName' =&gt; 'record'<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;);<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;这是从属关系，一个学生属于某一个班级，换过来说就是班级与学生一对多，<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;一个班级有多个学生，而学生就只属于一个班级<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;tableClass 指定该类要与之有从属关系的类，这里是班级类<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;foreignKey 这里指定的是该表里的连接外表的字段，这里是学生表的班级ID字段<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;注意：这里的foreignKey指的是本表的字段，而上面hasOne关系中的foreignKey<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;指的是外表中的字段，要注意区分清楚<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;mappingName这里就不多说了，跟上面的一样，也是用于显示区分的别名<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;*/<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $belongsTo = array(<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; array(<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;'tableClass' =&gt; 'Model_Classes',<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;'foreignKey' =&gt; 'stu_class_id',<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;'mappingName' =&gt; 'class'<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;)<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;);<br>}<br><br>//档案表对应的类<br>class Model_Record extends FLEA_Db_TableDataGateway{<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $tableName = 'stu_record';<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $primaryKey = 'record_id';<br>}<br><br>//教师表对应的类<br>class Model_Teacher extends FLEA_Db_TableDataGateway{<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $tableName = 'teacher';<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $primaryKey = 'teacher_id';<br><br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;这里确立了教师与班级的多对多关系，一个教师可以教多个班级<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;而一个班级也有多个教师<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;tableClass 指定要建立多对多关系的表的类<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;joinTable 这个属性要注意一个，这个是指定教师表与班级表关系的连接表<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;由于二维表的数据结构的原因，所以多对多关系要用一个中间表（即连接表）来表示<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;连接表中就指明两个表各自的主键ID就可以了，以两个字段作复合主键，如不用复合<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;主键，就新增加一个字段作主键也可，这没关系<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;*/<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $manyToMany = array(<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; array(<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;'tableClass' =&gt; 'Model_Classes',<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;'mappingName' =&gt; 'class',<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;'joinTable' =&gt; 'link_teacher_classes',<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;)<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;);<br>}<br><br>class Model_Classes extends FLEA_Db_TableDataGateway{<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $tableName = 'classes';<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $primaryKey = 'class_id';<br><br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;这里确立了班级与学生的一对多关系<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;tableClass 指定该表的类要与哪个表的类建立一对多关系<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;foreignKey 外键ID，这里即指定学生表中定义的班级ID，这个是外表的字段<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;*/<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $hasMany = array(<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; array(<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;'tableClass' =&gt; 'Model_Student',<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;'foreignKey' =&gt; 'stu_class_id',<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;'mappingName' =&gt; 'students'<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;)<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;);<br><br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var $manyToMany = array(<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 由于多对多关系是双向的，所以班级表也可以定义上与教师表的多对多关系<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 也可以不写，看需求而定，比如你想查看某个班级信息时，一并显示该班<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 有多少个任课老师的话，那就在这个班级类里加上关系，我这里就不写了。。。<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;);<br>}</code></div>
以上的代码就建立好了关系了，现在只管使用就是了。<br>不过还提醒大家一点，在每个关系里，都有一个 &#8216;enabled&#8217; 的属性，如果设置为 <span class=t_tag onclick=tagshow(event) href="tag.php?name=false">false</span>的话，则是将该关系禁掉，所以查询出来的结果就没有该关系的相应数据，这样可以节省效率，按需要时才打开相应的<strong><font color=#ff0000>关联</font></strong>，该属性默认为true 可以如下设置：
<div class=blockcode><span class=headactions onclick="copycode($('code2'));">复制内容到剪贴板</span>
<h5>代码:</h5>
<code id=code2>array(<br>&nbsp; &nbsp; 'tableClass' =&gt; 'Model_Student',<br>&nbsp; &nbsp; 'foreignKey' =&gt; 'stu_class_id',<br>&nbsp; &nbsp; 'mappingName' =&gt; 'students',<br>&nbsp; &nbsp; &#8216;enabled&#8217; =&gt; false<br>)</code></div>
现在我们来测试一下数据。（事先自行插入几行数据用以测试）
<div class=blockcode><span class=headactions onclick="copycode($('code3'));">复制内容到剪贴板</span>
<h5>代码:</h5>
<code id=code3>$classManager = FLEA::getSingleton('Model_Classes');<br>$class =&amp; $classManager-&gt;find(array('class_id' =&gt; 1));<br>dump($class);</code></div>
出现结果如下：<br><br><img alt="" src="http://www.jiangzone.com.cn/attachments/month_0710/u20071029181042.PNG" onload="attachimg(this, 'load')" border=0><br><br>&nbsp; &nbsp;&nbsp; &nbsp;这个例子已含盖了这四个<strong><font color=#ff0000>关联</font></strong>关系的基本用法了，其它的就由你们来探索了，不久后，我将会发表一下这此<strong><font color=#ff0000>关联</font></strong>方面的高级应用，有时间的话会写写这方面的东西。敬请期待！</div>
<img src ="http://www.phpweblog.net/susam119/aggbug/2476.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/susam119/" target="_blank">阿门119</a> 2007-12-07 09:11 <a href="http://www.phpweblog.net/susam119/archive/2007/12/07/2476.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何定义关联表</title><link>http://www.phpweblog.net/susam119/archive/2007/12/07/2475.html</link><dc:creator>阿门119</dc:creator><author>阿门119</author><pubDate>Fri, 07 Dec 2007 01:10:00 GMT</pubDate><guid>http://www.phpweblog.net/susam119/archive/2007/12/07/2475.html</guid><wfw:comment>http://www.phpweblog.net/susam119/comments/2475.html</wfw:comment><comments>http://www.phpweblog.net/susam119/archive/2007/12/07/2475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/susam119/comments/commentRss/2475.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/susam119/services/trackbacks/2475.html</trackback:ping><description><![CDATA[<h2>[TDG] 如何定义表关联？</h2>
<div class=t_msgfont id=postmessage_2519>$belongsTo<br><br>定义从属<strong><font color=#ff0000>关联</font></strong><br><br>1、外键放置在主表中；&nbsp;&nbsp;<br>2、保存时不会自动更新<strong><font color=#ff0000>关联</font></strong>表的记录；&nbsp;&nbsp;<br>3、删除时也不会更新<strong><font color=#ff0000>关联</font></strong>表的记录。<br><br><span class=t_tag onclick=tagshow(event) href="tag.php?name=%E7%A4%BA%E4%BE%8B">示例</span>：&nbsp;&nbsp;<br>多个文章都属于某一个栏目。<br><br>格式一：&nbsp;&nbsp;<br><br>&nbsp; &nbsp; * class Articles<br>&nbsp; &nbsp; * {<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;var $belongsTo = array(<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; array(<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'tableClass'&nbsp;&nbsp;=&gt; 'Columns',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'foreignKey'&nbsp;&nbsp;=&gt; 'column_id',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'mappingName' =&gt; 'column'<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;);<br>&nbsp; &nbsp; * }<br><br><br><br>在上面的格式中，foreignKey 表示在当前表中用什么字段存储对<strong><font color=#ff0000>关联</font></strong>表的主键引用。&nbsp;&nbsp;<br>mappingName 表示在主表的返回结果中，以什么名字保存<strong><font color=#ff0000>关联</font></strong>表的数据。&nbsp;&nbsp;<br>如果不提供 mappingName 参数，则假定使用 tableClass。<br><br>格式二：&nbsp;&nbsp;<br><br>&nbsp; &nbsp; * class Articles<br>&nbsp; &nbsp; * {<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;var $belongsTo = 'Columns';<br>&nbsp; &nbsp; * }<br><br><br><br>格式二是一种简化写法。foreignKey 字段名将和<strong><font color=#ff0000>关联</font></strong>表的主键字段名相同。<br><br>============================<br><br>$hasMany<br><br>定义一对多<strong><font color=#ff0000>关联</font></strong><br><br>1、外键保存在<strong><font color=#ff0000>关联</font></strong>表中；&nbsp;&nbsp;<br>2、保存时自动更新<strong><font color=#ff0000>关联</font></strong>表的记录；&nbsp;&nbsp;<br>3、删除主表记录时自动删除<strong><font color=#ff0000>关联</font></strong>记录。<br><br>示例：&nbsp;&nbsp;<br>每个用户（user）有多张订单 order。<br><br>格式一：&nbsp;&nbsp;<br><br>&nbsp; &nbsp; * class Users<br>&nbsp; &nbsp; * {<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;var $hasMany = array(<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; array(<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'tableClass'&nbsp;&nbsp;=&gt; 'Orders',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'foreignKey'&nbsp;&nbsp;=&gt; 'user_id',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'mappingName' =&gt; 'orders',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;);<br>&nbsp; &nbsp; * }<br><br><br><br>在一对多关系中，当前表并不包含对<strong><font color=#ff0000>关联</font></strong>表的主键引用。&nbsp;&nbsp;<br>而是在<strong><font color=#ff0000>关联</font></strong>表中保存对当前表的主键引用。<br>在上面的格式中，foreignKey 指示在<strong><font color=#ff0000>关联</font></strong>表中用什么字段存储对当前表的主键引用。&nbsp;&nbsp;<br>mappingName 表示在主表的返回结果中，以什么名字保存<strong><font color=#ff0000>关联</font></strong>表的数据。&nbsp;&nbsp;<br>如果不提供 mappingName 参数，则假定使用 tableClass。<br><br>格式二：&nbsp;&nbsp;<br><br>&nbsp; &nbsp; * class Users<br>&nbsp; &nbsp; * {<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;var $hasMany = 'Orders';<br>&nbsp; &nbsp; * }<br><br><br><br>简化写法中，foreignKey 字段名将和当前表的主键字段名相同。<br><br>============================<br><br>$<span class=t_tag onclick=tagshow(event) href="tag.php?name=hasOne">hasOne</span><br><br>定义一对一<strong><font color=#ff0000>关联</font></strong><br>1、外键放置在<strong><font color=#ff0000>关联</font></strong>表中；<br>2、保存时如果有<strong><font color=#ff0000>关联</font></strong>对象，则自动创建或更新<strong><font color=#ff0000>关联</font></strong>表的记录；&nbsp;&nbsp;<br>3、删除主表记录时自动删除<strong><font color=#ff0000>关联</font></strong>记录。<br><br>示例：&nbsp;&nbsp;<br>当前表为 users，用于存储用户账户。而每个用户账户有且只有一个对应的个人信息（profile）记录。<br><br>格式一：&nbsp;&nbsp;<br><br>&nbsp; &nbsp; * class Users<br>&nbsp; &nbsp; * {<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;var $hasOne = array(<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; array(<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'tableClass'&nbsp;&nbsp;=&gt; 'Profiles',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'foreignKey'&nbsp;&nbsp;=&gt; 'profile_id',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'mappingName' =&gt; 'profile',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;);<br>&nbsp; &nbsp; * }<br><br><br><br>在上面的格式中，foreignKey 表示在<strong><font color=#ff0000>关联</font></strong>表中用什么字段存储对主表的主键引用。&nbsp;&nbsp;mappingName 表示在主表的返回结果中，以什么名字保存<strong><font color=#ff0000>关联</font></strong>表的数据。&nbsp;&nbsp;如果不提供 mappingName 参数，则假定使用 tableClass。<br><br>格式二：&nbsp;&nbsp;<br><br>&nbsp; &nbsp; * class Users<br>&nbsp; &nbsp; * {<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;var $hasOne = 'Profiles';<br>&nbsp; &nbsp; * }<br><br><br><br>格式二是一种简化写法。foreignKey 字段名将和主表的主键字段名名相同。<br><br>============================<br><br><br>$manyToMany<br>&nbsp; &nbsp;&nbsp; &nbsp; <br>定义多对多<strong><font color=#ff0000>关联</font></strong><br><br>1、外键保存在中间表里面；<br>2、保存时自动更新中间表；&nbsp;&nbsp;<br>3、删除主表记录时自动删除中间表的相关记录。<br><br>示例：&nbsp;&nbsp;<br>每个成员（member）可以拥有多个<span class=t_tag onclick=tagshow(event) href="tag.php?name=%E8%A7%92%E8%89%B2">角色</span>（role），而每个<span class=t_tag onclick=tagshow(event) href="tag.php?name=%E8%A7%92%E8%89%B2">角色</span>也可以指定给多个成员。<br><br>格式一：&nbsp;&nbsp;<br><br>&nbsp; &nbsp; * class Members<br>&nbsp; &nbsp; * {<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;var $manyToMany = array(<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; array(<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'tableClass'&nbsp; &nbsp;&nbsp; &nbsp;=&gt; 'Roles',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'joinTable'&nbsp; &nbsp;&nbsp; &nbsp; =&gt; 'member_roles',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'foreignKey'&nbsp; &nbsp;&nbsp; &nbsp;=&gt; 'member_id',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'assocforeignKey' =&gt; 'role_id',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;'mappingName'&nbsp; &nbsp;&nbsp;&nbsp;=&gt; 'roles',<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;);<br>&nbsp; &nbsp; * }<br><br><br><br>在多对多关系中，当前表并不包含对<strong><font color=#ff0000>关联</font></strong>表的主键引用。&nbsp;&nbsp;<br>而是在一个中间表里面保存对当前表和<strong><font color=#ff0000>关联</font></strong>表的主键引用。<br>在上面的格式中，joinTable 表示中间表的名字。foreignKey 和&nbsp;&nbsp;<br>assocforeignKey 分别表示在中间表里面用什么字段存储对主表和&nbsp;&nbsp;<br><strong><font color=#ff0000>关联</font></strong>表主键字段的引用。<br><br>mappingName 表示在主表的返回结果中，以什么名字保存<strong><font color=#ff0000>关联</font></strong>表的数据。&nbsp;&nbsp;<br>如果不提供 mappingName 参数，则假定使用 tableClass。<br><br>格式二：&nbsp;&nbsp;<br><br>&nbsp; &nbsp; * class Members<br>&nbsp; &nbsp; * {<br>&nbsp; &nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;var $manyToMany = 'Roles';<br>&nbsp; &nbsp; * }<br><br><br><br>简化写法中，foreignKey 字段名将和当前表的主键字段名相同。<br>assocforeignKey字段名称则和<strong><font color=#ff0000>关联</font></strong>数据表的主键字段名相同。<br>而中间表名称将用FLEA_Db_TableDataGateway::getMidtableName() 方法计算。</div>
<img src ="http://www.phpweblog.net/susam119/aggbug/2475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/susam119/" target="_blank">阿门119</a> 2007-12-07 09:10 <a href="http://www.phpweblog.net/susam119/archive/2007/12/07/2475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>