<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>litephp's doc</title>
<link rel="stylesheet" href="./static/style.css" type="text/css" media="screen" charset="utf-8">
</head>
<body>
<a href="https://github.com/hit9/litephp"><img style="position: absolute; top: 0; right: 0; border: 0;z-index:12" src="./static/img/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
<h1>litephp's doc</h1>
<p>author:<a href="http://hit9.org">hit9</a></p>
<p>email:hide@address.com</p>
<p>github:@hit9</p>
<p>note:litephpçè¯æ³åthinkphpå¾å.使¯thinkphpç®éçå¤</p>
<div class="toc">
<ul>
<li><a href="#1">1.å¼å§ä¸ä¸ªé¡¹ç®</a></li>
<li><a href="#2hello-world">2.Hello World</a></li>
<li><a href="#3">3.ç®å½ç»æ</a></li>
<li><a href="#4url">4.urlç»æ</a></li>
<li><a href="#5">5.å½åè§å</a><ul>
<li><a href="#1_1">1.æ§å¶å¨</a></li>
<li><a href="#2">2.模å</a></li>
<li><a href="#3_1">3.æ°å»ºä¸ä¸ªæ¨¡æ¿</a></li>
</ul>
</li>
<li><a href="#6">6.å¿«éå®ä¾å</a></li>
<li><a href="#7">7.é
ç½®æä»¶</a></li>
<li><a href="#8">8.ä½¿ç¨æ°æ®åºæä½ç±»</a></li>
<li><a href="#9">9.ä½¿ç¨æ¨¡æ¿å¼æ</a></li>
<li><a href="#10">10.使ç¨è¾å
¥æ ¼å¼æ£æ¥ç±»</a></li>
</ul>
</div>
<h2 id="1">1.å¼å§ä¸ä¸ªé¡¹ç®</h2>
<div class="codehilite"><pre><span class="n">mkdir</span> <span class="n">myproject</span>
<span class="n">cd</span> <span class="n">myproject</span>
<span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="p">.</span><span class="n">com</span><span class="o">/</span><span class="n">hit9</span><span class="o">/</span><span class="n">litephp</span> <span class="n">Core</span>
<span class="n">mkdir</span> <span class="n">C</span> <span class="n">M</span> <span class="n">V</span> <span class="n">V_c</span> #建ç«å¿
è¦ç项ç®ä¸çç®å½
<span class="n">touch</span> <span class="n">index</span><span class="p">.</span><span class="n">php</span>#建ç«å
¥å£æä»¶
</pre></div>
<p>å
¶ä¸å
¥å£æä»¶index.phpå
容为:</p>
<div class="codehilite"><pre><span class="cp"><?php</span>
<span class="cm">/*</span>
<span class="cm"> *file:index.php</span>
<span class="cm"> */</span>
<span class="nx">header</span><span class="p">(</span><span class="s2">"Content-type:text/html;charset=utf-8"</span><span class="p">);</span>
<span class="nb">define</span><span class="p">(</span><span class="s1">'CORE_PATH'</span><span class="p">,</span><span class="s1">'Core/'</span><span class="p">);</span><span class="c1">//å®ä¹æ¡æ¶çç®å½ç¸å¯¹äºå
¥å£æä»¶çè·¯å¾</span>
<span class="k">require_once</span><span class="p">(</span><span class="nx">CORE_PATH</span><span class="o">.</span><span class="s1">'core.php'</span><span class="p">);</span><span class="c1">#导å
¥æ¡æ¶</span>
<span class="nx">C</span><span class="o">::</span><span class="na">run</span><span class="p">();</span><span class="c1">#åå请æ±</span>
</pre></div>
<h2 id="2hello-world">2.Hello World</h2>
<div class="codehilite"><pre><span class="n">touch</span> <span class="n">C</span><span class="o">/</span><span class="n">index</span><span class="p">.</span><span class="n">class</span><span class="p">.</span><span class="n">php</span>
</pre></div>
<p>index.php:</p>
<div class="codehilite"><pre><span class="cp"><?php</span>
<span class="k">class</span> <span class="nc">Cindex</span> <span class="k">extends</span> <span class="nx">C</span><span class="p">{</span>
<span class="k">function</span> <span class="nf">index</span><span class="p">(){</span>
<span class="k">echo</span> <span class="s1">'Hello World'</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></div>
<p>访é®http://url-to-your-project/index.phpæ¥çhello world</p>
<h2 id="3">3.ç®å½ç»æ</h2>
<p>å°±ä¸é¢çhello world, ç®å½ç»ææ¯:</p>
<div class="codehilite"><pre><span class="n">myproject</span>
âââ <span class="n">C</span> #模åç®å½<span class="p">,</span>åæ¾æ§å¶å¨æä»¶
â  âââ <span class="n">index</span><span class="p">.</span><span class="n">class</span><span class="p">.</span><span class="n">php</span>
âââ <span class="n">index</span><span class="p">.</span><span class="n">php</span> #å
¥å£æä»¶
âââ <span class="n">Core</span><span class="o">/</span> #æ¡æ¶ç®å½
âââ <span class="n">M</span><span class="o">/</span> #模åç®å½<span class="p">,</span> æ§å¶åºå±æ°æ®åº
âââ <span class="n">V</span><span class="o">/</span> #è§å¾ç®å½<span class="p">,</span> åæ¾æ¨¡æ¿æä»¶
âââ <span class="n">V_c</span><span class="o">/</span> #模æ¿çç¼åæä»¶ç®å½
</pre></div>
<h2 id="4url">4.urlç»æ</h2>
<p>index.php?c=control&a=action</p>
<p>ä¸é¢çurlå°è°ç¨C/ç®å½ä¸çcontrol.class.phpçCcontrolç±»çactionæ¹æ³.</p>
<p>é»è®¤çæ§å¶å¨æ¯index, é»è®¤çæä½æ¹æ³æ¯index</p>
<h2 id="5">5.å½åè§å</h2>
<h3 id="1_1">1.æ§å¶å¨</h3>
<p>æ°å»ºä¸ä¸ªæ§å¶å¨sample. éè¦å¨Cç®å½ä¸å»ºç«ä¸ä¸ªåå为sample.class.phpçæä»¶, æä»¶å
éè¦å®ä¹ä¸ä¸ªåå为Csampleç类并继æ¿C:</p>
<div class="codehilite"><pre><span class="x">class Csample extends C</span>
</pre></div>
<h3 id="2">2.模å</h3>
<p>æ°å»ºä¸ä¸ªæ¨¡åé·åäºæ°å»ºä¸ä¸ªæ§å¶å¨.ç¸åºçæä»¶ä¸ºM/sample.class.php, 类为:</p>
<div class="codehilite"><pre><span class="x">class Msample extends M</span>
</pre></div>
<h3 id="3_1">3.æ°å»ºä¸ä¸ªæ¨¡æ¿</h3>
<p>æ°å»ºä¸ä¸ªæ¨¡æ¿, å¨Vç®å½ä¸å»ºç«æä»¶sample.htmlå³å¯</p>
<h2 id="6">6.å¿«éå®ä¾å</h2>
<p>å¯ä»¥å¨é¡¹ç®ä¸çä»»ä½å°æ¹ä½¿ç¨è¿ä¸¤ä¸ªå½æ°æ¥å¿«éå®ä¾å:</p>
<ol>
<li>C($name) æ¥å®ä¾åä¸ä¸ªæ§å¶å¨å¯¹è±¡$name</li>
<li>M($name) æ¥å®ä¾åä¸ä¸ªæ¨¡å$name</li>
</ol>
<h2 id="7">7.é
ç½®æä»¶</h2>
<p>é
ç½®æä»¶å¨æ¡æ¶ç®å½ä¸çconfig.phpä¸.ä¸ä¾å³Core/config.php</p>
<p>æ¡æ¶çé
置项ä»
æä¸ä¸ª:</p>
<div class="codehilite"><pre><span class="x">define('ERROR_REPORT', false); //å
³éé误è¾åº. é»è®¤å¼å¯</span>
</pre></div>
<h2 id="8">8.ä½¿ç¨æ°æ®åºæä½ç±»</h2>
<p>æ°æ®åºæä½ç±»çè¯æ³åwiki请è§:<a href="http://hit9.org/wiki/php-mysql-orm/">http://hit9.org</a></p>
<p><strong>litephpä¸ç模ååæ°æ®åºä¸ç表å(ä¸å¸¦åç¼)对åº, å¹¶ä¸é»è®¤ä¸»é®æ¯'id'</strong></p>
<p>é
ç½®:</p>
<p>ä½¿ç¨æ°æ®åºæä½ç±»éè¦å好é
ç½®å°æ¡æ¶ç®å½/config.php:</p>
<div class="codehilite"><pre><span class="cp"><?php</span>
<span class="nb">define</span><span class="p">(</span><span class="s1">'DB_HOST'</span><span class="p">,</span><span class="s1">'localhost'</span><span class="p">);</span>
<span class="nb">define</span><span class="p">(</span><span class="s1">'DB_NAME'</span><span class="p">,</span><span class="s1">'mydb'</span><span class="p">);</span>
<span class="nb">define</span><span class="p">(</span><span class="s1">'DB_USER'</span><span class="p">,</span><span class="s1">'root'</span><span class="p">);</span>
<span class="nb">define</span><span class="p">(</span><span class="s1">'DB_PASSWD'</span><span class="p">,</span><span class="s1">'123456'</span><span class="p">);</span>
<span class="nb">define</span><span class="p">(</span><span class="s1">'TABLE_PREFIX'</span><span class="p">,</span><span class="s1">'t_'</span><span class="p">);</span>
<span class="nb">define</span><span class="p">(</span><span class="s1">'DB_CHAR_SET'</span><span class="p">,</span><span class="s1">'utf8'</span><span class="p">);</span>
<span class="nb">define</span><span class="p">(</span><span class="s1">'QUERY_ERROR'</span><span class="p">,</span><span class="k">true</span><span class="p">);</span>
</pre></div>
<p>ä¸é¢æ¯ä¸ä¸ªæ·»å æ°æ®çä¾å:</p>
<p>æ°å»ºä¸ä¸ªæ°æ®åºmydb, 并建ç«ä¸ä¸ªè¡¨t_user(表åç¼æ¯t_):</p>
<div class="codehilite"><pre><span class="k">create</span> <span class="k">database</span> <span class="n">mydb</span><span class="p">;</span>
<span class="n">use</span> <span class="n">mydb</span><span class="p">;</span>
<span class="k">create</span> <span class="k">table</span> <span class="n">t_user</span><span class="p">(</span>
<span class="n">name</span> <span class="nb">char</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span>
<span class="n">email</span> <span class="nb">char</span><span class="p">(</span><span class="mi">30</span><span class="p">),</span>
<span class="n">id</span> <span class="nb">int</span> <span class="k">primary</span> <span class="k">key</span> <span class="n">auto_increment</span>
<span class="p">);</span>
</pre></div>
<p>æ°å»ºä¸ä¸ªæ¨¡åuser:</p>
<div class="codehilite"><pre><span class="cp"><?php</span>
<span class="cm">/*file:M/user.class.php */</span>
<span class="k">class</span> <span class="nc">Muser</span> <span class="k">extends</span> <span class="nx">M</span><span class="p">{</span>
<span class="p">}</span>
</pre></div>
<p>卿§å¶å¨index䏿°å»ºä¸ä¸ªæ¹æ³add:</p>
<div class="codehilite"><pre><span class="cp"><?php</span>
<span class="cm">/*file:C/index.class.php */</span>
<span class="k">class</span> <span class="nc">Cindex</span> <span class="k">extends</span> <span class="nx">C</span><span class="p">{</span>
<span class="k">function</span> <span class="nf">add</span><span class="p">(){</span>
<span class="nv">$user</span><span class="o">=</span><span class="nx">M</span><span class="p">(</span><span class="s1">'user'</span><span class="p">);</span>
<span class="nv">$user</span><span class="o">-></span><span class="na">db</span><span class="o">-></span><span class="na">name</span><span class="o">=</span><span class="s1">'å°æ'</span><span class="p">;</span>
<span class="nv">$user</span><span class="o">-></span><span class="na">db</span><span class="o">-></span><span class="na">email</span><span class="o">=</span><span class="s1">'hide@address.com'</span><span class="p">;</span>
<span class="nv">$user</span><span class="o">-></span><span class="na">db</span><span class="o">-></span><span class="na">add</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></div>
<p>访é®index.php?a=addå³å¯æ·»å 䏿¡æ°æ®å°æ°æ®åºmydb</p>
<p><strong>å¦æè¡¨ä¸»é®ä¸æ¯'id', åªéå¨user模å䏿·»å ä¸ä¸ªå段å³å¯:<code>public $primary_key = 'my_key';</code></strong></p>
<h2 id="9">9.ä½¿ç¨æ¨¡æ¿å¼æ</h2>
<p>éè¦çé
置项:</p>
<div class="codehilite"><pre><span class="x">define('TPL_DIR','V');//æ¨¡æ¿æä»¶çåæ¾ç®å½, éè¦å¯è¯»æé</span>
<span class="x">define('TPL_C_DIR','V_c');//æ¨¡æ¿æä»¶çç¼åç®å½, éè¦å¯åæé</span>
<span class="x">define('TPL_REAL', true); //æ¯å¦å¼å¯å®æ¶ç¼è¯</span>
</pre></div>
<p>æ¨¡æ¿æä»¶çåç¼æ¯.html</p>
<p>æ°å»ºä¸ä¸ªæ¨¡æ¿æä»¶sample.html:</p>
<div class="codehilite"><pre><span class="nt"><html></span>
<span class="nt"><body></span>
ä½ å¥½!{$name}
<span class="nt"></body></span>
<span class="nt"></html></span>
</pre></div>
<p>å¨indexæ§å¶å¨ä¸å»ºç«ä¸ä¸ªgreet()æ¹æ³:</p>
<div class="codehilite"><pre><span class="cp"><?php</span>
<span class="k">function</span> <span class="nf">greet</span><span class="p">(){</span>
<span class="nv">$this</span><span class="o">-></span><span class="na">tpl</span><span class="o">-></span><span class="na">assign</span><span class="p">(</span><span class="s1">'name'</span><span class="p">,</span><span class="s1">'å°æ'</span><span class="p">);</span>
<span class="nv">$this</span><span class="o">-></span><span class="na">tpl</span><span class="o">-></span><span class="na">display</span><span class="p">(</span><span class="s1">'sample'</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<p>访é®index.php?a=greetå³å¯çå°'ä½ å¥½!å°æ'</p>
<p>å
³äºtplçç¨æ³:</p>
<div class="codehilite"><pre><span class="x">* {loop $array $key $value}..........{/loop} 循ç¯</span>
<span class="x">* {loop $array $value}..........{/loop} 循ç¯</span>
<span class="x">* {if condition}...{elseif condition}..{else}..{/if} ifæ¡ä»¶è¯å¥</span>
<span class="x">* {$val} è¾åºåéå¼</span>
<span class="x">* {eval echo "ok";} è¿è¡PHP代ç </span>
<span class="x">* {template file} å
å«å¦å¤ä¸ä¸ªæ¨¡ç</span>
<span class="x">* å¯¹è±¡æ¹æ³:</span>
<span class="x">* setTplDir($dir)</span>
<span class="x">* setReal($real)</span>
<span class="x">* setExtName($ext)</span>
<span class="x">* setTmpDir($dir)</span>
<span class="x">* setU(&$dispatcher)</span>
<span class="x">* assign($name, $value=null)</span>
<span class="x">* getVal($name)</span>
<span class="x">* saveHtml($tFile, $html)</span>
<span class="x">* display($tFile)</span>
</pre></div>
<h2 id="10">10.使ç¨è¾å
¥æ ¼å¼æ£æ¥ç±»</h2>
<p>æ éé
ç½®.</p>
<p>æ¯å¦æä»¬éè¦æ·»å ä¸ä¸ªè¡¨åçæ°æ®å°æ°æ®åº.</p>
<p>建ç«ä¸ä¸ªè¡¨åV/add.html:</p>
<div class="codehilite"><pre><span class="nt"><form</span> <span class="na">action=</span><span class="s">"?a=do_add"</span> <span class="na">method=</span><span class="s">"post"</span> <span class="na">accept-charset=</span><span class="s">"utf-8"</span><span class="nt">></span>
<span class="nt"><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">name=</span><span class="s">"name"</span> <span class="na">value=</span><span class="s">""</span><span class="nt">></span>
<span class="nt"><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">name=</span><span class="s">"email"</span> <span class="na">value=</span><span class="s">""</span><span class="nt">></span>
<span class="nt"><p><input</span> <span class="na">type=</span><span class="s">"submit"</span> <span class="na">value=</span><span class="s">"Continue &rarr;"</span><span class="nt">></p></span>
<span class="nt"></form></span>
</pre></div>
<p>å¨index模å䏿·»å ä¸ä¸ªdo_addæ¹æ³æ¥æ¶postæ°æ®:</p>
<div class="codehilite"><pre><span class="cp"><?php</span>
<span class="k">class</span> <span class="nc">Cindex</span> <span class="k">extends</span> <span class="nx">C</span><span class="p">{</span>
<span class="k">function</span> <span class="nf">form</span><span class="p">(){</span>
<span class="nv">$this</span><span class="o">-></span><span class="na">tpl</span><span class="o">-></span><span class="na">display</span><span class="p">(</span><span class="s1">'add'</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">function</span> <span class="nf">do_add</span><span class="p">(){</span>
<span class="nv">$filter</span><span class="o">=</span><span class="k">array</span><span class="p">(</span>
<span class="k">array</span><span class="p">(</span><span class="s1">'name'</span><span class="p">,</span><span class="s1">'username'</span><span class="p">),</span>
<span class="k">array</span><span class="p">(</span><span class="s1">'email'</span><span class="p">,</span><span class="s1">'email'</span><span class="p">)</span>
<span class="p">);</span><span class="c1">//è¿æ»¤è§å</span>
<span class="nv">$data</span><span class="o">=</span><span class="nv">$this</span><span class="o">-></span><span class="na">input</span><span class="o">-></span><span class="na">create</span><span class="p">(</span><span class="nv">$filter</span><span class="p">);</span><span class="c1">//åå»ºåæ³æ°æ®(æ°ç»),æä¸ä¸ªä¸åæ³å³è¿åfalse</span>
<span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nv">$data</span><span class="p">)</span> <span class="k">echo</span> <span class="nv">$this</span><span class="o">-></span><span class="na">input</span><span class="o">-></span><span class="na">error_field</span><span class="p">;</span><span class="c1">//å¦ææ£æ¥å°éæ³æ°æ®,æ¾ç¤ºéæ³æ°æ®ç表ååæ®µ</span>
<span class="k">else</span><span class="p">{</span><span class="c1">// å¦å,å
¨é¨åæ³.æ·»å å°æ°æ®åº</span>
<span class="nx">M</span><span class="p">(</span><span class="s1">'user'</span><span class="p">)</span><span class="o">-></span><span class="na">db</span><span class="o">-></span><span class="na">add</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></div>
<p>访é®index.php?a=formæ¥ç表åå¹¶å¡«åæ°æ®åæµè¯.</p>
<p>éªè¯è§åçæ°ç»è¯æ³å¦ä¸:</p>
<div class="codehilite"><pre><span class="n">array</span><span class="p">(</span>
<span class="n">array</span><span class="p">(</span>åæ®µåç§°<span class="p">,</span> éªè¯è§å<span class="p">),</span>
<span class="n">array</span><span class="p">(</span>åæ®µåç§°<span class="p">,</span> éªè¯è§å<span class="p">),</span>
<span class="p">...</span>
<span class="p">);</span>
</pre></div>
<p>表åéªè¯ç±»å
ç½®çéªè¯è§åæ:</p>
<p>username, email, notempty, url, phone, ip, date, color, pic, tel</p>
<p>妿éè¦éªè¯çè§åä¸å¨ä¸è¿°ä¹å, å¯ä»¥è¿ä¹ç¨:</p>
<p>æ¯å¦æä»¬åªéè¦nameåæ®µç¬¦åæ£å<code>^he</code>çæ°æ®æ¯åæ³ç.nameçéªè¯è§åå¯ä»¥è¿ä¹å:</p>
<div class="codehilite"><pre><span class="n">array</span><span class="p">(</span><span class="s">'name'</span><span class="p">,</span><span class="s">'preg_match("/^he/",$name)'</span><span class="p">),</span>
</pre></div>
<p>ä¹å°±æ¯è¯´array(åæ®µ, éªè¯è§å)ä¸çéªè¯è§åå¯ä»¥æ¯ä¸ä¸ªè¿åå¸å°çåå¼çphp代ç (å符串).å
¶ä¸çåé($name)ä¼è¢«æ¿æ¢æå段name对åºçå¼.</p>
<p>忝å¦, æä»¬éè¦nameåæ®µç¬¦åé¿åº¦å¤§äº6çæ°æ®æ¯åæ³ç.nameçéªè¯è§åå¯ä»¥æ¯:</p>
<div class="codehilite"><pre><span class="n">array</span><span class="p">(</span><span class="s">'name'</span><span class="p">,</span> <span class="s">'strlen($name)>6'</span><span class="p">),</span>
</pre></div>
<!-- Duoshuo Comment BEGIN -->
<div class="ds-thread" data-thread-key=""
data-title="" data-author-key="" data-url=""></div>
<script type="text/javascript">
var duoshuoQuery = {short_name:"hit9github"};
(function() {
var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = 'http://static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0]
|| document.getElementsByTagName('body')[0]).appendChild(ds);
})();
</script>
<!-- Duoshuo Comment END -->
</body>
</html>