Smarty 入门

Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同一个人。例如,你正在创建一个用于浏览新闻的网页,新闻标题,标签栏,作者和内容等都是内容要素,他们并不包含应该怎样去呈现。在Smarty的程序里,这些被忽略了。模板设计者们编辑模板,组合使用html标签和模板标签去格式化这些要素的输出(html表格,背景色,字体大小,样式表,等等)。有一天程序员想要改变文章检索的方式(也就是程序逻辑的改变)。这个改变不影响模板设计者,内容仍将准确的输出到模板。同样的,哪天美工吃多了想要完全重做界面,也不会影响到程序逻辑。因此,程序员可以改变逻辑而不需要重新构建模板,模板设计者可以改变模板而不影响到逻辑。

Smarty的安装很简单,只需把下载来的压缩包中的libs目拷入网站目录,然后简单配置下就行了。所谓的配置也就是设置几个目录的位置。

PHP_PDO 简介

php5原来内建的sqlite扩展只支持sqlite2,对sqlite3的支持可以用多种方法实现,我觉得最方便的还是pdo,只需在安装配置php时,设置pdo_sqlite扩展,不需要安装其他的东西。当然功能能也许不及专门的sqlite3扩展。根据官方文档逐渐翻译学习!
http://cn2.php.net/manual/en/intro.pdo.php

PHP Data Objects (PDO)扩展是PHP中一个轻量级的、统一的数据接口。每种数据库依靠特定的正则函数驱动PDO接口,能反映出数据库特征。注意:你不能单独仅依靠PDO扩展来访问任何数据库;你必须使用特定数据库PDO驱动来访问数据库服务器。

PDO提供一个数据访问层,意思是,不管你使用那种数据库,都可以用同样的函数执行查询和获取结果。PDO不提供数据库抽象,如果你需要该功能应该使用成熟的抽象。

PDO是在PHP5.1 中引入,也可以作为PHP5.0的PECL扩展;PDO需要PHP5核心中的新的面现对象特征,所以不能在以前的版本中运行。

The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database-specific features as regular extension functions. Note that you cannot perform any database functions using the PDO extension by itself; you must use a database-specific PDO driver to access a database server.

PDO provides a data-access abstraction layer, which means that, regardless of which database you're using, you use the same functions to issue queries and fetch data. PDO does not provide a database abstraction; it doesn't rewrite SQL or emulate missing features. You should use a full-blown abstraction layer if you need that facility.

PDO ships with PHP 5.1, and is available as a PECL extension for PHP 5.0; PDO requires the new OO features in the core of PHP 5, and so will not run with earlier versions of PHP.

sqlite数据库

最开始学习PHP编程的时候,一直希望linux下有个能与win下的access数据库类似的小型独立数据库,不需要安装相应的服务,想用就可以直接使用。由于E文有限,当时找了一圈都没发现合适的,也知道一点关于sqlite,但是不透彻。我一直以为sqlite是一种介于大型数据库如mysql与用户界面的一个中间缓存,所以没太多关注,自己做的些小程序都是基于win平台下的php+access,因为不需要用到mysql这种数据库.

SQLite 是 D. Richard Hipp 用 C 语言编写的开源嵌入式数据库引擎。它是完全独立的,不具有外部依赖性。它是作为 PHP V4.3 中的一个选项引入的,构建在 PHP V5 中。SQLite 支持多数 SQL92 标准,可以在所有主要的操作系统上运行,并且支持大多数计算机语言。SQLite 还非常健壮。其创建者保守地估计 SQLite 可以处理每天负担多达 100,00 次点击率的 Web 站点,并且 SQLite 有时候可以处理 10 倍于上述数字的负载。

SQLite 对 SQL92 标准的支持包括索引、限制、触发和查看。SQLite 不支持外键限制,但支持原子的、一致的、独立和持久 (ACID) 的事务(后面会提供有关 ACID 的更多信息)。这意味着事务是原子的,因为它们要么完全执行,要么根本不执行。事务也是一致的,因为在不一致的状态中,该数据库从未被保留。事务还是独立 的,所以,如果在同一时间在同一数据库上有两个执行操作的事务,那么这两个事务是互不干扰的。而且事务是持久性的,所以,该数据库能够在崩溃和断电时幸免 于难,不会丢失数据或损坏。SQLite 通过数据库级上的独占性和共享锁定来实现独立事务处理。这意味着当多个进程和线程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进 程或线程向数据库执行写入操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操作将不会再发生。
当然还有个选择是http://www.sleepycat.com,不过还不大清楚Berkeley DB的详细情况,用的人好像不多。

LightTPD for Windows

lighttpd是一个非常不错的http服务器,一直在linux下使用,就是没找到windows下的版本。曾经有些高手也曾编译过源码,生成了windows下的LightTPD ,但是效果不理想,今天突然发现了这个LightTPD for Windows,也不是官方的。是由匈牙利的人编译的,不知道效果怎么样,先下个来试试。
下载地址
http://en.wlmp-project.net/downloads.php?cat=lighty
注意有以下几个版本可以选择,下完后就可以直接安装。
With OpenSSL support
Without OpenSSL support
Snapshots (stable)
Snapshots (testing)
这个网站上还有集成的webserver
WLMP Webserver Package
A LightTPD based web server package built for Windows based systems. The package also contains the following components: OpenSSL, MySQL, PHP, MiniPerl and phpMyAdmin.

LightTPD的主页 http://www.lighttpd.net/