<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>陈书艺—Creative,Calmness,Passion,Unremitting,Belief &#187; MooPHP</title>
	<atom:link href="http://www.cnedwin.com/tag/moophp/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cnedwin.com</link>
	<description>Edwin Chen's Blog</description>
	<lastBuildDate>Mon, 29 Jun 2009 11:05:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MooPHP 0.91.178 alpha版本发布下载</title>
		<link>http://www.cnedwin.com/30.html</link>
		<comments>http://www.cnedwin.com/30.html#comments</comments>
		<pubDate>Thu, 22 May 2008 04:16:37 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[技术探讨]]></category>
		<category><![CDATA[行业动态]]></category>
		<category><![CDATA[MooPHP]]></category>
		<category><![CDATA[开发框架]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://www.cnedwin.com/?p=30</guid>
		<description><![CDATA[开发简介
从整个PHP产业来看，随着PHP语言的日益流行，PHP的市场占有率不断提高，各种PHP框架也层出不穷。通过借鉴.Net、Java、Ruby On Rails等语言的开发思想，使得PHP在快速开发、企业应用等方面逐渐站在了Web开发语言的前端。
纵观国外的Zend Framework、CakePHP；国内的FleaPHP、ThinkPHP等这些优秀的PHP开源框架，我们不难发现它们对于PHP初学者还不够友 好。较高的入门难度和庞大的体系，已经不能完全满足当前PHP业界日益增长的多种多样的PHP需求。这些PHP开发框架都是非常出色的，但是由于文档、设 计思想、开发模式、入门难度中的一点或者几点降低了它们的广泛适用性，同时也为其他PHP开发框架提供了发展的机会。由此，MooPHP应运而生。

实际上，从国外到国内各大PHP专业论坛关于PHP的讨论相当激烈，对于技术永无止境的追求让我们乐此不疲，但是我们应该想到：为PHP初学者提供更大的 帮助会对整个PHP业界产生更大的推动力。我敬佩国内外做开源软件和开源框架的朋友们，让我们一起伴随MooPHP为整个开源世界共享自己的一份力量。
MooPHP简介
MooPHP，全名是More &#38; Original PHP Framwork。从MooPHP的全名我们就可以感受到MooPHP框架的设计理念：在安全、高效、稳定、易用的前提下，还原PHP语言的原生态；以松 耦合的方式，进一步增强了MooPHP的扩展性。MooPHP除了核心之外，基于其本身松耦合的特性，非常容易进行外围的扩展。More
MooPHP框架采用在所有开源协议中几乎是最“自由”的BSD协议。赋予使用者更高的使用权和决策权。所以选择MooPHP来做为项目的基础架构，完全不用担心遇到许可协议问题。
MooPHP框架下载
下载地址： 	 		 			 MooPHP 0.91.178 alpha.zip (59.98 KB)
 MooPHP 0.91.178 alpha.zip (59.98 KB)
下载次数: 19
2008-5-22 11:07

MooPHP框架相关文档

MooPHP框架简介
MooPHP框架编码规范
MooPHP框架文件结构
MooPHP框架模板语法
MooPHP框架后台
MooPHP框架上传类类使用
MooPHP框架图片类使用
MooPHP框架文件操作类语法
MooPHP框架数据库类语法
MooPHP框架验证码类使用

MooPHP框架教程文档

MooPHP框架十分钟创建Blog程序

发布后记
这是一个开源项目，她的存在是我们整个团队对于开源事业的执着向往和不断的追求。她是一个新生的婴儿需要我们的努力和您的支持，我们热切的希望志同道合的您能为她提供更多发展的空间。欢迎所有热爱开源事业的朋友们、一起加入进来。
这是一个alpha版本，通过这次发布，我们希望能够得到很多很多的反馈和很多很多的建议，然后加快MooPHP框架的速度和进程。
您可以分享一下在您体验MooPHP的过程中的心得和经验在：http://www.ismole.net/forum-16-1.html
同时也欢迎您制作属于自己的作品，并撰写一些教程哦
当然，当您发现MooPHP的错误，或者有您迫切希望增强的功能和需求，可以到这里提出：http://www.ismole.net/forum-17-1.html
同时感谢我们所有在下面抢沙发的团队成员。
QQ群：52740589 MooPHP交流群
]]></description>
			<content:encoded><![CDATA[<p><strong>开发简介</strong><br />
从整个PHP产业来看，随着PHP语言的日益流行，PHP的市场占有率不断提高，各种PHP框架也层出不穷。通过借鉴.Net、Java、Ruby On Rails等语言的开发思想，使得PHP在快速开发、企业应用等方面逐渐站在了Web开发语言的前端。</p>
<p>纵观国外的Zend Framework、CakePHP；国内的FleaPHP、ThinkPHP等这些优秀的PHP开源框架，我们不难发现它们对于PHP初学者还不够友 好。较高的入门难度和庞大的体系，已经不能完全满足当前PHP业界日益增长的多种多样的PHP需求。这些PHP开发框架都是非常出色的，但是由于文档、设 计思想、开发模式、入门难度中的一点或者几点降低了它们的广泛适用性，同时也为其他PHP开发框架提供了发展的机会。由此，MooPHP应运而生。</p>
<p><span id="more-30"></span></p>
<p>实际上，从国外到国内各大PHP专业论坛关于PHP的讨论相当激烈，对于技术永无止境的追求让我们乐此不疲，但是我们应该想到：为PHP初学者提供更大的 帮助会对整个PHP业界产生更大的推动力。我敬佩国内外做开源软件和开源框架的朋友们，让我们一起伴随MooPHP为整个开源世界共享自己的一份力量。</p>
<p><strong>MooPHP简介</strong><br />
MooPHP，全名是More &amp; Original PHP Framwork。从MooPHP的全名我们就可以感受到MooPHP框架的设计理念：在安全、高效、稳定、易用的前提下，还原PHP语言的原生态；以松 耦合的方式，进一步增强了MooPHP的扩展性。MooPHP除了核心之外，基于其本身松耦合的特性，非常容易进行外围的扩展。<a href="http://www.moophp.net/introduction" target="_blank">More</a></p>
<p>MooPHP框架采用在所有开源协议中几乎是最“自由”的BSD协议。赋予使用者更高的使用权和决策权。所以选择MooPHP来做为项目的基础架构，完全不用担心遇到许可协议问题。</p>
<p><strong>MooPHP框架下载</strong><br />
<span style="color: darkolivegreen;">下载地址</span>： 	 		 			<img class="absmiddle" src="http://www.ismole.net/images/attachicons/zip.gif" border="0" alt="" /> <span id="attach_543" style="white-space: nowrap;" onmouseover="showMenu(this.id)"><a href="http://www.ismole.net/attachment.php?aid=543&amp;k=5c784129cb10b4b215df749baf6d9fe6&amp;t=1211429718" target="_blank"><strong>MooPHP 0.91.178 alpha.zip</strong></a> (59.98 KB)</span></p>
<div id="attach_543_menu" class="t_attach" style="position: absolute; z-index: 50; clip: rect(auto, auto, auto, auto); left: 311px; top: 729px; display: none;"><img class="absmiddle" src="http://www.ismole.net/images/attachicons/zip.gif" border="0" alt="" /> <a href="http://www.ismole.net/attachment.php?aid=543&amp;k=5c784129cb10b4b215df749baf6d9fe6&amp;t=1211429718" target="_blank"><strong>MooPHP 0.91.178 alpha.zip</strong></a> (59.98 KB)<br />
下载次数: 19</p>
<div class="t_smallfont">2008-5-22 11:07</div>
</div>
<p><strong>MooPHP框架相关文档</strong></p>
<ul>
<li><a href="http://www.moophp.net/introduction" target="_blank">MooPHP框架简介</a></li>
<li><a href="http://www.moophp.net/phpcoding" target="_blank">MooPHP框架编码规范</a></li>
<li><a href="http://www.moophp.net/documents/systemfiles" target="_blank">MooPHP框架文件结构</a></li>
<li><a href="http://www.moophp.net/documents/templatesyntax" target="_blank">MooPHP框架模板语法</a></li>
<li><a href="http://www.moophp.net/documents/adminclasss" target="_blank">MooPHP框架后台</a></li>
<li><a href="http://www.moophp.net/documents/uploadclass" target="_blank">MooPHP框架上传类类使用</a></li>
<li><a href="http://www.moophp.net/documents/imageclass" target="_blank">MooPHP框架图片类使用</a></li>
<li><a href="http://www.moophp.net/documents/fileclasssyntax" target="_blank">MooPHP框架文件操作类语法</a></li>
<li><a href="http://www.moophp.net/documents/mysqlclasssyntax" target="_blank">MooPHP框架数据库类语法</a></li>
<li><a href="http://www.moophp.net/documents/seccodeclasssyntax" target="_blank">MooPHP框架验证码类使用</a></li>
</ul>
<p><strong>MooPHP框架教程文档</strong></p>
<ul>
<li><a href="http://www.ismole.net/thread-671-1-1.html" target="_blank">MooPHP框架十分钟创建Blog程序</a></li>
</ul>
<p><strong>发布后记</strong><br />
这是一个开源项目，她的存在是我们整个团队对于开源事业的执着向往和不断的追求。她是一个新生的婴儿需要我们的努力和您的支持，我们热切的希望志同道合的您能为她提供更多发展的空间。欢迎所有热爱开源事业的朋友们、一起加入进来。</p>
<p>这是一个alpha版本，通过这次发布，我们希望能够得到很多很多的反馈和很多很多的建议，然后加快MooPHP框架的速度和进程。<br />
您可以分享一下在您体验MooPHP的过程中的心得和经验在：<a href="http://www.ismole.net/forum-16-1.html" target="_blank">http://www.ismole.net/forum-16-1.html</a><br />
同时也欢迎您制作属于自己的作品，并撰写一些教程哦<br />
当然，当您发现MooPHP的错误，或者有您迫切希望增强的功能和需求，可以到这里提出：<a href="http://www.ismole.net/forum-17-1.html" target="_blank">http://www.ismole.net/forum-17-1.html</a></p>
<p>同时感谢我们所有在下面抢沙发的团队成员。</p>
<p>QQ群：52740589 MooPHP交流群</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cnedwin.com/30.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP文件缓存的性能测试</title>
		<link>http://www.cnedwin.com/27.html</link>
		<comments>http://www.cnedwin.com/27.html#comments</comments>
		<pubDate>Wed, 14 May 2008 10:57:18 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[技术探讨]]></category>
		<category><![CDATA[MooPHP]]></category>
		<category><![CDATA[性能]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://www.cnedwin.com/?p=27</guid>
		<description><![CDATA[前言：
在开发MooPHP的过程中，为了寻找更为高效的缓存方式，对两种最常用的缓存方式进行了测试。
PHP常用缓存方式：
第一种，把需要缓存的数据进行处理，形成PHP可以直接执行的文件。在需要缓存数据的时候，通过include方式引入，并使用。
第二种，把需要的数据通过serialize函数序列化后直接保存到文件。在需要使用缓存数据的时候，通过反序列化读入文件内容并复制给需要的变量，然后使用。
测试结果：
通过测试我们发现，第二种也就是serialize缓存数据的方式更加高效。（数据略去，最后提供了文章地址下载，大家可以自行测试）
原因分析：
include方式读取缓存的时候，PHP需要执行几个过程
1.读取文件
2.解析所Include的文件
3.执行，给变量赋值

而serialize序列化方式读取缓存的时候：
1.读取数据
2.反序列化数据内容
3.给变量赋值
从以上内容对比的话，可能是由于解析PHP文件内的数组需要的时间超过unserialize反序列化数组的时间。如果你有兴趣可以查看《PHP filesystem相关函数和include require的性能效率研究》：http://www.ccvita.com/163.html
测试文件代码：
下载地址：MooPHP-CacheTest.zip
原创地址：http://www.ccvita.com/311.html  有新的研究心得会在这里更新。
CacheTest_IncludeFile.php

&#60; ?php
$t1 = gettimeofday();
for ($i = 0; $i &#60; 10000; $i++){
include(&#8221;CacheTest_IncludeData.php&#8221;);
}
$t2 = gettimeofday();
echo ($t2['sec'] &#8211; $t1['sec']) * 1000 + ($t2['usec'] &#8211; $t1['usec']) / 1000 . &#8220;\n&#8221;;


CacheTest_SerializeFile.php

&#60; ?php
function read_cache($filename) {
if(@$fp = fopen($filename, &#8216;r&#8217;)) {
@$data = fread($fp,filesize($cachefile));
fclose($fp);
}
return $s;
}
$t1 = gettimeofday();
for ($i = 0; $i &#60; 10000; $i++){
$x = read_cache(&#8221;CacheTest_SerializeData.php&#8221;);
$x_r = unserialize($x);
}
$t2 = gettimeofday();
echo [...]]]></description>
			<content:encoded><![CDATA[<p><strong>前言</strong>：<br />
在开发MooPHP的过程中，为了寻找更为高效的缓存方式，对两种最常用的缓存方式进行了测试。</p>
<p><strong>PHP常用缓存方式</strong>：<br />
第一种，把需要缓存的数据进行处理，形成PHP可以直接执行的文件。在需要缓存数据的时候，通过include方式引入，并使用。<br />
第二种，把需要的数据通过serialize函数序列化后直接保存到文件。在需要使用缓存数据的时候，通过反序列化读入文件内容并复制给需要的变量，然后使用。</p>
<p><strong>测试结果</strong>：<br />
通过测试我们发现，第二种也就是serialize缓存数据的方式更加高效。（数据略去，最后提供了文章地址下载，大家可以自行测试）</p>
<p><strong>原因分析</strong>：<br />
include方式读取缓存的时候，PHP需要执行几个过程<br />
1.读取文件<br />
2.解析所Include的文件<br />
3.执行，给变量赋值</p>
<p><span id="more-27"></span></p>
<p>而serialize序列化方式读取缓存的时候：<br />
1.读取数据<br />
2.反序列化数据内容<br />
3.给变量赋值</p>
<p>从以上内容对比的话，可能是由于解析PHP文件内的数组需要的时间超过unserialize反序列化数组的时间。如果你有兴趣可以查看《<a href="http://www.ccvita.com/163.html">PHP filesystem相关函数和include require的性能效率研究</a>》：http://www.ccvita.com/163.html</p>
<p><strong>测试文件代码</strong>：<br />
下载地址：<a href="http://www.ccvita.com/demo/download/MooPHP-CacheTest.zip">MooPHP-CacheTest.zip</a><br />
原创地址：http://www.ccvita.com/311.html  有新的研究心得会在这里更新。<br />
CacheTest_IncludeFile.php</p>
<div class="hl-surround">
<div class="hl-main">&lt; ?php</p>
<p>$t1 = gettimeofday();</p>
<p>for ($i = 0; $i &lt; 10000; $i++){<br />
include(&#8221;CacheTest_IncludeData.php&#8221;);<br />
}</p>
<p>$t2 = gettimeofday();</p>
<p>echo ($t2['sec'] &#8211; $t1['sec']) * 1000 + ($t2['usec'] &#8211; $t1['usec']) / 1000 . &#8220;\n&#8221;;</p>
</div>
</div>
<p>CacheTest_SerializeFile.php</p>
<div class="hl-surround">
<div class="hl-main">&lt; ?php</p>
<p>function read_cache($filename) {</p>
<p>if(@$fp = fopen($filename, &#8216;r&#8217;)) {<br />
@$data = fread($fp,filesize($cachefile));<br />
fclose($fp);<br />
}<br />
return $s;<br />
}</p>
<p>$t1 = gettimeofday();</p>
<p>for ($i = 0; $i &lt; 10000; $i++){<br />
$x = read_cache(&#8221;CacheTest_SerializeData.php&#8221;);<br />
$x_r = unserialize($x);<br />
}</p>
<p>$t2 = gettimeofday();</p>
<p>echo ($t2['sec'] &#8211; $t1['sec']) * 1000 + ($t2['usec'] &#8211; $t1['usec']) / 1000 . &#8220;\n&#8221;;</p>
</div>
</div>
<p><strong>总结分析</strong>：<br />
第一种，include缓存的方式<br />
优点：增加数据的保密性，和安全性，缓存内容不会被外界发现。<br />
缺点：速度相对较慢。<br />
用途：保存禁止系统外部得知的数据，比如web系统的设置，甚至MySQL信息等的保存</p>
<p>第二种，serialize序列化缓存的方式<br />
优点：速度较快。<br />
缺点：缓存系统文件路径一点曝光，缓存内容会泄露。<br />
用途：缓存最新文章，相关文章等不担心外部得知的数据的时候，可以使用这种方式。</p>
<p><strong>备注</strong>：<br />
当装了ea、apc等PHP内存缓存之后，第一种通过include读取缓存的方式速度会高于第二种serialize序列化缓存的方式。所以在MooPHP框架中，我们对于非敏感信息采用第二种方式缓存；敏感信息采用第一种方式缓存。有关MooPHP的介绍可以参考《<a href="http://www.ccvita.com/295.html">MooPHP框架简介</a>》这篇文章（地址：http://www.ccvita.com/295.html）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cnedwin.com/27.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MooPHP开发框架简介</title>
		<link>http://www.cnedwin.com/12.html</link>
		<comments>http://www.cnedwin.com/12.html#comments</comments>
		<pubDate>Thu, 17 Apr 2008 09:49:59 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[技术探讨]]></category>
		<category><![CDATA[行业动态]]></category>
		<category><![CDATA[MooPHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[奇矩互动]]></category>
		<category><![CDATA[开发框架]]></category>

		<guid isPermaLink="false">http://www.cnedwin.com/?p=12</guid>
		<description><![CDATA[====== MooPHP框架简介 ======
===== 序言 =====
从整个PHP产业来看，随着PHP语言的日益流行，PHP的市场占有率不断提高，各种PHP框架也层出不穷。通过借鉴.Net、Java、Ruby On Rails等语言的开发思想，使得PHP在快速开发、企业应用等方面逐渐站在了Web开发语言的前端。
纵观国外的Zend Framework、CakePHP；国内的FleaPHP、ThinkPHP等这些优秀的PHP开源框架，我们不难发现它们对于PHP初学者还不够友好。较高的入门难度和庞大的体系，已经不能完全满足当前PHP业界日益增长的多种多样的PHP需求。这些PHP开发框架都是非常出色的，但是由于文档、设计思想、开发模式、入门难度中的一点或者几点降低了它们的广泛适用性，同时也为其他PHP开发框架提供了发展的机会。由此，MooPHP应运而生。
实际上，从国外到国内各大PHP专业论坛关于PHP的讨论相当激烈，对于技术永无止境的追求让我们乐此不疲，但是我们应该想到：为PHP初学者提供更大的帮助会对整个PHP业界产生更大的推动力。我敬佩国内外做开源软件和开源框架的朋友们，让我们一起伴随MooPHP为整个开源世界共享自己的一份力量。

===== MooPHP简介 =====
MooPHP，全名是More &#38; Original PHP Framwork。从MooPHP的全名我们就可以感受到MooPHP框架的设计理念：在安全、高效、稳定、易用的前提下，还原PHP语言的原生态；以松耦合的方式，进一步增强了MooPHP的扩展性。与Zend Framework、FleaPHP等PHP开发框架一样，MooPHP除了核心之外，基于其本身松耦合的特性，非常容易进行外围的扩展。
不可否认，在PHP社区宣布停止对PHP4支持的今天，PHP4的程序仍然占据着主要的地位。MooPHP以其原生态的PHP语言，很好的使用了PHP4、PHP5等多种PHP运行环境，并良好的运行于各种服务器构架中。
==== 语法特点 ====
下面仅以一例来说明MooPHP的语法特点。
=== 安全 ===
PHP程序的漏洞可以说有一半以上是由于变量的未过滤或者未初始化造成的，尤其是数字型变量。在MooPHP中，通过MooGetGPC函数对GPC变量的获得途径和方法做了硬性规定，以保证获得的数据是合法、有效、纯洁的数据。
&#60;code=php&#62;
/**
* 获取GPC变量。对于type为integer的变量强制转化为数字型
* @param string $key &#8211; 权限表达式
* @param string $type &#8211; integer 数字类型；string 字符串类型；array 数组类型
* @param string $var &#8211; R $REQUEST变量；G $GET变量；P $POST变量；C $COOKIE变量
* @return string 返回经过过滤或者初始化的GPC变量
*/
function MooGetGPC($key, $type = &#8216;integer&#8217;, $var = &#8216;R&#8217;) {
switch($var) {
case &#8216;G&#8217;: [...]]]></description>
			<content:encoded><![CDATA[<p>====== MooPHP框架简介 ======<br />
===== 序言 =====<br />
从整个PHP产业来看，随着PHP语言的日益流行，PHP的市场占有率不断提高，各种PHP框架也层出不穷。通过借鉴.Net、Java、Ruby On Rails等语言的开发思想，使得PHP在快速开发、企业应用等方面逐渐站在了Web开发语言的前端。</p>
<p>纵观国外的Zend Framework、CakePHP；国内的FleaPHP、ThinkPHP等这些优秀的PHP开源框架，我们不难发现它们对于PHP初学者还不够友好。较高的入门难度和庞大的体系，已经不能完全满足当前PHP业界日益增长的多种多样的PHP需求。这些PHP开发框架都是非常出色的，但是由于文档、设计思想、开发模式、入门难度中的一点或者几点降低了它们的广泛适用性，同时也为其他PHP开发框架提供了发展的机会。由此，MooPHP应运而生。</p>
<p>实际上，从国外到国内各大PHP专业论坛关于PHP的讨论相当激烈，对于技术永无止境的追求让我们乐此不疲，但是我们应该想到：为PHP初学者提供更大的帮助会对整个PHP业界产生更大的推动力。我敬佩国内外做开源软件和开源框架的朋友们，让我们一起伴随MooPHP为整个开源世界共享自己的一份力量。</p>
<p><span id="more-12"></span></p>
<p>===== MooPHP简介 =====<br />
MooPHP，全名是More &amp; Original PHP Framwork。从MooPHP的全名我们就可以感受到MooPHP框架的设计理念：在安全、高效、稳定、易用的前提下，还原PHP语言的原生态；以松耦合的方式，进一步增强了MooPHP的扩展性。与Zend Framework、FleaPHP等PHP开发框架一样，MooPHP除了核心之外，基于其本身松耦合的特性，非常容易进行外围的扩展。</p>
<p>不可否认，在PHP社区宣布停止对PHP4支持的今天，PHP4的程序仍然占据着主要的地位。MooPHP以其原生态的PHP语言，很好的使用了PHP4、PHP5等多种PHP运行环境，并良好的运行于各种服务器构架中。</p>
<p>==== 语法特点 ====<br />
下面仅以一例来说明MooPHP的语法特点。<br />
=== 安全 ===<br />
PHP程序的漏洞可以说有一半以上是由于变量的未过滤或者未初始化造成的，尤其是数字型变量。在MooPHP中，通过MooGetGPC函数对GPC变量的获得途径和方法做了硬性规定，以保证获得的数据是合法、有效、纯洁的数据。<br />
&lt;code=php&gt;<br />
/**<br />
* 获取GPC变量。对于type为integer的变量强制转化为数字型<br />
* @param string $key &#8211; 权限表达式<br />
* @param string $type &#8211; integer 数字类型；string 字符串类型；array 数组类型<br />
* @param string $var &#8211; R $REQUEST变量；G $GET变量；P $POST变量；C $COOKIE变量<br />
* @return string 返回经过过滤或者初始化的GPC变量<br />
*/<br />
function MooGetGPC($key, $type = &#8216;integer&#8217;, $var = &#8216;R&#8217;) {<br />
switch($var) {<br />
case &#8216;G&#8217;: $var = &amp;$_GET; break;<br />
case &#8216;P&#8217;: $var = &amp;$_POST; break;<br />
case &#8216;C&#8217;: $var = &amp;$_COOKIE; break;<br />
case &#8216;R&#8217;: $var = &amp;$_REQUEST; break;<br />
}<br />
switch($type) {<br />
case &#8216;integer&#8217;:<br />
$return = intval($var[$key]);<br />
break;<br />
case &#8217;string&#8217;:<br />
$return = isset($var[$key]) ? $var[$key] : NULL;<br />
break;<br />
case &#8216;array&#8217;:<br />
$return = isset($var[$key]) ? $var[$key] : array();<br />
break;<br />
default:<br />
$return = intval($var[$key]);<br />
}<br />
return $return;<br />
}</p>
<p>/**<br />
* 为变量或者数组添加转义<br />
* @param string $value &#8211; 字符串或者数组变量<br />
* @return array<br />
*/<br />
function MooAddslashes($value) {<br />
return $value = is_array($value) ? array_map(&#8217;MooAddslashes&#8217;, $value) : addslashes($value);<br />
}<br />
&lt;/code&gt;</p>
<p>=== 易用 ===<br />
下面的MooWriteFile函数，将PHP中的fopen、flock、fwrite、fclose等四个文件操作函数合并为一。由于文件操作在PHP开发中的常用性，MooPHP更将常用文件以及文件夹操作封装起来，极大的方便了PHP开发。<br />
&lt;code=php&gt;<br />
/**<br />
* 写文件<br />
* @param string $file &#8211; 需要写入的文件，系统的绝对路径加文件名<br />
* @param string $content &#8211; 学要写入的内容<br />
* @param string $mod &#8211; 写入模式，默认为w<br />
* @return boolean 返回是否写入成功<br />
*/<br />
function MooWriteFile($file, $content, $mod = &#8216;w&#8217;) {<br />
if(@$fp = @fopen($file, $mod)) {<br />
@flock($fp, 2);<br />
@fwrite($fp, $content);<br />
@fclose($fp);<br />
return true;<br />
}<br />
}<br />
&lt;/code&gt;</p>
<p>=== 稳定 ===<br />
MooPHP是其创始人及其团队两年以来，通过大大小小几十件案例、四次重新架构并最终定型而来的。她凝聚着一个团队对于PHP快速开发以及项目公司培训PHP初学者的独特理解。并且通过持续研究和更深入的探讨，具有长远的发展历史和多年经验的精华积累。</p>
<p>更为惊喜的是，MooPHP已经有了一个稳定的团队，并且由商业公司提供资金支持。这可以保证MooPHP项目具有稳定、可持续的发展，采用MooPHP作为应用程序基础架构是您不二的选择。</p>
<p>=== 高效 ===<br />
MooPHP核心主文件MooPHP/MooPHP.php文件真正核心代码，不超过200行。并有模板缓存，生成静态等一系列成熟的解决方案。高效一直是我们的追求，并付诸于MooPHP实践。</p>
<p>更多的技术细节将不再继续阐述，如果您有兴趣可以参阅MooPHP文档中心：http://www.moophp.net</p>
<p>==== 兼容性 ====<br />
PHP5代表着PHP未来的发展方向，但现实情况是即便在全世界范围内而言，PHP4的市场占有率也是不可忽视的很重要一部分。所以，MooPHP的当前版本仍然基于PHP4开发，虽然没法利用PHP5的一些新特性，却最大程度的保护了开发者的前期技术投资。</p>
<p>==== 完全中文化 ====<br />
MooPHP是国内开发者创建的，所以从源代码注释到文档，所有的一切都是中文。这对于学习使用框架的开发者来说，将提供巨大的便利。即便有问题，也可以在QQ群和论坛上得到及时反馈。</p>
<p>==== 扩展性高 ====<br />
在前面的介绍中，我们已经知道MooPHP以松耦合的体系搭建起了整个框架。松耦合的主要特点就是更灵活，在此架构的支持下，加上MooPHP从开始就已经注意到了扩展性的重要性，MooPHP的扩展性可想而知。</p>
<p>==== BSD协议 ====<br />
MooPHP开源PHP开发框架采用所有开源协议中，几乎是最“自由”的BSD协议。赋予使用者更高的使用权和决策权。有关BSD协议的详细信息，请参考：http://www.opensource.org/licenses/bsd-license.php 。选择MooPHP来做为项目的基础架构，完全不用担心遇到许可协议问题。</p>
<p>==== 模板体系 ====<br />
经过深入的研究和细致的探寻，MooPHP从其他成熟模板引擎吸取了大量经验和实例，放弃采用任何成熟的模板引擎，而是集众家之所长独立研发了MooTemplate模板引擎。并将其在MooPHP框架中实现。</p>
<p>MooTemplate模板引擎不仅解决了困扰已久的速度瓶颈问题，而且模板中包含丰富易用的逻辑功能，又完美的实现了模板的可扩展性，使得一个模板足以容纳一个页面的全部信息，而不必再像以往那样必须用十几个小模板才能完成一个具有逻辑功能的页面。将为界面的扩充带来极大方便——只需修改模板就可实现一些基本的页面功能而不必改动程序。</p>
<p>MooTemplate模板引擎主要特点如下：</p>
<p>* 在模板内实现了数据输出，如输出常量、输出变量。<br />
* 在模板内实现了条件判断，涉及的模板标签有{if}、{else}、{elseif}、{/if}<br />
* 在模板内实现了数组循环、数组嵌套循环，涉及的模板标签有{loop}、{/loop}<br />
* 在模板内实现了嵌套子模板template标签，涉及的模板标签有{template}<br />
* 在模板内实现了PHP语法中的包含文件，涉及的模板标签有{include}<br />
* 在模板内实现了PHP语法中的for循环，涉及的模板标签有{for}、{/for}<br />
* 在模板内实现了模板内书写PHP语法，涉及的模板标签有{php}<br />
* 在模板内实现了数据查询block标签，涉及的模板标签有{block}（独创的**可扩展**标签）</p>
<p>更多详情，请查阅：http://www.moophp.net/documents/templatesyntax</p>
<p>==== 数据库访问 ====<br />
MooPHP封装了常用的MySQL、SQLite等数据库的常用操作。并仍旧按照原生态的思想，不对SQL查询进行过多的干扰，极大的提高了MooPHP在数据库方面的适用性和易用性。</p>
<p>==== 后台体系 ====<br />
我们一向是追求快捷开发项目，而一般的项目都需要有一个管理的后台。所以基于此需求，MooPHP提供了一个快捷的构建管理后台的后台类。后台类使用非常的方便灵活。你需要做的就是关注你具体细节实现的部分。 以下就是构建一个常用管理后台界面的代码：<br />
&lt;code=php&gt;<br />
//note 加载MooPHP框架<br />
require dirname(__FILE__) . &#8216;/MooPHP/MooPHP.php&#8217;;</p>
<p>//note 菜单的配置信息<br />
require MOOPHP_ROOT.&#8217;/../Moo-admin/menu.inc.php&#8217;;</p>
<p>//note  载入MooAdminTemplate类<br />
$admin = MooAutoLoad(&#8217;MooAdminTemplate&#8217;);</p>
<p>//note 取得动作和菜单变量<br />
$menu = MooGetGPC(&#8217;menu&#8217;, &#8217;string&#8217;);<br />
$action = MooGetGPC(&#8217;action&#8217;, &#8217;string&#8217;);<br />
$operation = MooGetGPC(&#8217;operation&#8217;, &#8217;string&#8217;);</p>
<p>//note 根据条件输出菜单<br />
if($menu == &#8216;topMenu&#8217;) {<br />
//note 构造头部菜单<br />
$admin-&gt;topMenu($topMenu);</p>
<p>} elseif ($menu  == &#8216;leftMenu&#8217;) {<br />
//note 构造左侧边菜单<br />
$admin-&gt;leftMenu($leftMenu);</p>
<p>} elseif (!$menu &amp;&amp; !$action) {<br />
//note 初始化框架页面<br />
$admin-&gt;frame(&#8217;?menu=topMenu&#8217;, &#8216;?menu=leftMenu&#8217;, &#8216;?action=basic&#8217;);<br />
}</p>
<p>//note 头部信息<br />
$admin-&gt;adminHeader();</p>
<p>//note 加载需要模块 此处省略相关变量过滤过程<br />
if(file_exists(MOOPHP_ROOT.&#8217;/../Moo-admin/&#8217;.$action.&#8217;.inc.php&#8217;)) {<br />
require MOOPHP_ROOT.&#8217;/../Moo-admin/&#8217;.$action.&#8217;.inc.php&#8217;;<br />
}</p>
<p>//note 尾部信息<br />
$admin-&gt;adminFooter();<br />
&lt;/code&gt;</p>
<p>===== 后记 =====<br />
其实PHP框架都有大同小异的地方，框架的目的或在于提高开发效率、或规范团队开发、或者是其他目的。但是最核心的目的永远是方便PHP开发，本着这个目的，MooPHP一直在努力。</p>
<p>如果您对MooPHP感兴趣，不妨到<a href="http://www.moophp.net">http://www.moophp.net</a> <a href="http://www.ismole.net">http://www.ismole.net</a>上更加深入的了解。我们也热切的希望更多的PHP开发者加入到MooPHP的行列中来。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cnedwin.com/12.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
