<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[使用Phar来打包发布PHP程序]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Mon, 29 Sep 2014 06:21:01 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：PHP学Java的jar文件一样可以打包，有点意思。<br/>——<br/>简单来说，Phar就是把Java界的jar概念移植到了PHP界。<br/>Phar可以将一组PHP文件进行打包，还可以创建默认执行的stub（或者叫做 bootstrap loader），Phar可以选择是否进行压缩，可选gzip和bzip2格式。<br/>下面举例说明如何创建和使用Phar：<br/>假设我们的项目名称是user，包含三个文件：<br/>user/user.class.php<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
class user &#123;
&nbsp;&nbsp;&nbsp;&nbsp;private $name=&quot;anonymous&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;private $email=&quot;anonymous@nonexists.com&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;public function set_email($email) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email=$email;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;public function set_name($name) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;name=$name;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;public function introduce() &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;My name is $this-&gt;name and my email address is $this-&gt;email.&#92;n&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&#125;
</textarea><br/>user/user.func.php<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
require_once &quot;user.class.php&quot;;
function make_user($name,$email) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;$u=new user();
&nbsp;&nbsp;&nbsp;&nbsp;$u-&gt;set_name($name);
&nbsp;&nbsp;&nbsp;&nbsp;$u-&gt;set_email($email);
&nbsp;&nbsp;&nbsp;&nbsp;return $u;
&#125;
function dump_user($u) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;$u-&gt;introduce();
&#125;
</textarea><br/>user/test.php<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
require_once &quot;user.class.php&quot;;
$u=new user();
$u-&gt;set_name(&quot;laomeng&quot;);
$u-&gt;set_email(&quot;laomeng@163.com&quot;);
$u-&gt;introduce();
</textarea><br/>然后我们使用如下PHP程序创建Phar文件：<br/>make_phar.php<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
$phar = new Phar(&#039;user.phar&#039;, 0, &#039;user.phar&#039;);
$phar-&gt;buildFromDirectory(dirname(__FILE__) . &#039;/user&#039;);
$phar-&gt;setStub($phar-&gt;createDefaultStub(&#039;test.php&#039;, &#039;test.php&#039;));
$phar-&gt;compressFiles(Phar::GZ);
</textarea><br/>执行 php make_phar.php后，可以在当前目录发现一个叫做user.phar的文件。<br/>我们可以直接执行user.phar文件：<br/>php user.phar，这个相当于执行user/test.php<br/>我们还可以引用此文件：<br/>test_phar.php<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
require_once &quot;user.phar&quot;;
require_once &quot;phar://user.phar/user.class.php&quot;;
$u=new user();
$u-&gt;set_name(&quot;mengguang&quot;);
$u-&gt;set_email(&quot;mengguang@gmail.com&quot;);
$u-&gt;introduce();
require_once &quot;phar://user.phar/user.func.php&quot;;
$u=make_user(&quot;xiaomeng&quot;,&quot;xiaomeng@163.com&quot;);
dump_user($u);
</textarea><br/>摘自：<br/>http://xmgu2008.blog.163.com/blog/static/1391223802014225101912694/<br/>参考资料：<br/>https://php.net/manual/en/book.phar.php
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 使用Phar来打包发布PHP程序]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>