solar for windows xp

本文已同步发表到论坛:http://solarphp.org.cn/viewtopic.php?f=6&t=104,要下载附件请移步到论坛下载。

想了很久还是决定兼容xp,毕竟XP的用户数仍然很大。

相信有人已经试过了,其实在xp下是可以运行solar的,用复制粘贴方式同步文件(include和source目录之前同步)就行。只不过目前在xp下确实用不了CLI工具。而CLI工具是开发最有力的助手,如果缺少这个助手将是一个巨大的败笔。

那么在windows xp不支持symlink的情况下如何实现CLI工具呢?对了,可能你已经猜到了,就是用CLI工具复制同步文件。只要文件同步了Solar就可以正常工作了,这就再也与平台无关了。

分析: 其实solar类库提供的是一个运行环境,在solar中的这个概念尤其明显,如:布署的时候只需要上传Vendor文件夹即可。如果你再看得仔细点,可以这样理解,通过浏览器运行solar使用的文件(夹)是:docroot、 include;而使用CLI工具运行solar的时候使用的文件(夹)是:script、/source/solar下的Solar目录及 Solar.php。而在linux及win 7中include下所有文件(夹)都是指向source下相应文件的符号链接,这就把上面提到的两部分结合起来了,所以如果你随意改动任何一方的文件都会马上、无延时的同步到另一方,因为它们其实就是一个文件。XP是不支持symlink的,如何联系这两部分呢?我给的解决方案就是不联系,只在特定事件触发情况下才联系。使用这种思路处理之后有几点改变:

  1. 工作目录不再是/source/vendor/,而是/include/Vendor,当然包括Solar(其实Solar类库本身也是一个 Vendor)
  2. 只在使用unlink-vendor命令的时候同步文件,i.e. , 把inlude下相关文件同步到source/目录下。如:使用script\solar unlink-vendor Acme之后include目录下的Acme文件夹将会被删除,而sourc/acme/Acme中的文件将是最新的文件版本。
  3. 特别注意,使用unlink-vendor命令之前,你需要手动同步docroot/public/Vendor目录下的文件,i.e. , 把它们拷贝到相应Vendor下的Public目录下面。

使用方法:

  1. 请下载solar-system-win-latest,并下载附件中的两个文件覆盖相应的文件(/source /solar/Solar/Symlink.php; /source/solar/Solar/Cli/UnlinkVendor.php)
  2. 按照要求配置好环境
  3. 使用link-vendor Solar命令,这将会把/source/solar下面的文件及目录都拷贝到/include下面
  4. 使用make-vendor Acme, make-app Acme\_App\_Blog,make-model Acme\_Model\_*等操作
  5. 开发程序
  6. 布署之前,

(1)把docroot/public/Vendor下面的文件手动同步到include/Vendor。 (2) 使用unlike-vendor Vendor命令同步文件

  1. 布署,把/source/vendor目录迁移到服务器上使用link-vendor Vendor命令即可。