杰拉斯的博客

10个步骤让你成为高效的Web开发者

杰拉斯 杰拉斯 | 时间:2012-10-26, Fri | 21,207 views
心路历程, 前端开发, 后台技术 

要成为高产、高效的 Web 开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果。

下面是 10 个提高效率的步骤,虽然不能保证解决你在开发中的所有问题,但至少是非常实用的,可以简化你的 Web 开发流程,使开发的每一个环节快速、流畅。还可以帮助你节省大量的时间,以便开发更多、更好的项目。

1. 使用 Web 开发框架

一个良好的 Web 开发框架,可以帮助你:

  • 解决常见的 Web 开发问题,如标准的 Web 页面布局、Web 表单处理、浏览器兼容性解决等)。
  • 测试 Web 开发的 bug、安全和性能
  • 使代码重用更容易,因为有一个统一的 API。
  • 社区开发的插件和工具,可以进一步增强开发(jQuery 有很多非常棒的插件,比如用户界面、图像和网页排版等)。
  • 遵循编码的最佳实践和伟大的编程设计模式,你甚至不用去思考
  • 有开发社区和用户的支持,你可以获取帮助以及进行协作。
  • 初学者使用起来非常容易。

所有这些好处都可以节省你的时间以及提高项目的质量。

(阅读全文…)

nginx下实现pathinfo及WordPress、Typecho永久链接(伪静态)

杰拉斯 杰拉斯 | 时间:2012-10-18, Thu | 22,843 views
后台技术 

今晚配置了下LNMP环境下的阿里云服务器,将网站(使用的是自己写的BasePHP Beta框架)部署完毕后发现伪静态功能未能启用,才发现原来nginx并不像apache那样可以直接支持pathinfo,因此百度了一下,找到了启用pathinfo的解决方案。

打开nginx.conf配置文件,找到类似如下代码的地方(不同版本的nginx可能稍有不同,但相差不远):

location ~ \.php$
	{
		#原有代码
	}	

将其改成:

#去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo
location ~ \.php
	{
		#原有代码
		
 		#定义变量 $path_info
		set $path_info "";
 		#定义变量 $real_script_name,用于存放真实地址
		set $real_script_name $fastcgi_script_name;
		#如果地址与引号内的正则表达式匹配
		if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
			#将文件地址赋值给变量 $real_script_name
			set $real_script_name $1;
			#将文件地址后的参数赋值给变量 $path_info
			set $path_info $2;
		}
		#配置fastcgi的一些参数
		fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
		fastcgi_param SCRIPT_NAME $real_script_name;
		fastcgi_param PATH_INFO $path_info;
	}

这样,nginx服务器就可以支持pathinfo了。

2013年11月10日补充

nginx 0.7及以上已支持pathinfo,不需要模拟实现,但注意

location ~ .*\.php$

应该改成:

location ~ .*\.php(\/.*)*$

才能够匹配到含有pathinfo信息的路径。

(阅读全文…)

PHP autoload 函数

杰拉斯 杰拉斯 | 时间:2012-10-09, Tue | 5,170 views
后台技术 

(1) autoload机制概述

在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。下面是一个实际的例子:

/* Person.class.php */ 
name = $name; 
   $this->age = $age; 
  } 
} 
?>

/* no_autoload.php */ 

在这个例子中,no-autoload.php文件需要使用Person类,它使用了require_once将其包含,然后就可以直接使用Person类来实例化一个对象。

但随着项目规模的不断扩大,使用这种方式会带来一些隐含的问题:如果一个PHP文件需要使用很多其它类,那么就需要很多的require/include语句,这样有可能会造成遗漏或者包含进不必要的类文件。如果大量的文件都需要使用其它的类,那么要保证每个文件都包含正确的类文件肯定是一个噩梦。

(阅读全文…)

[SEO]利用Ping服务通知搜索引擎博客更新的原理与代码实现

杰拉斯 杰拉斯 | 时间:2012-08-14, Tue | 38,057 views
后台技术 

什么是Ping服务

Ping服务是基于XML_RPC标准协议的更新通告服务,当博客内容发生更新时,可以向搜索引擎发出通知,而搜索引擎接收到通知后将派出蜘蛛对博客进行更新或收录。

如何Ping服务

Ping服务的使用方式有两种,一种是利用搜索引擎的博客提交页面进行提交,第二种是使用博客程序中的Ping功能,如WordPress自带的更新服务(设置-撰写-更新服务),或者Typecho Ping插件。具体的提交地址请参考《[SEO]在线Ping服务地址与RPC服务地址集合》

(阅读全文…)

[SEO]Typecho Ping自动更新服务插件(兼容SAE)

杰拉斯 杰拉斯 | 时间:2012-08-14, Tue | 54,170 views
后台技术 

写在前面

博客改版从WordPress转到Typecho也有半个月了,对于一个站长来说SEO自然是一件非常重要的事,但却苦于Typecho中没有WordPress中的更新服务,于是从各方搜集资料,自己写了一个Typecho Ping插件,经过半个月的试用及改进,现将Typecho Ping v1.1.0版本发布,与大家共同分享。

(阅读全文…)