大体看了一下,觉得ThinkPHP真是一个不错的框架。我个人认为使用框架最大的好处是:它给你做了很多事情,而且做得很好!
ThinkPHP目前版本到了3.2,没敢用最新的,使用3.1作为学习目标,因为资料查阅起来相对多一些 :-)
现在在ThinkPHP基础上还了OneThink、WeiPHP,都是很不错的开源框架,谢谢作者的辛苦付出!
-------------------------------------------华丽的开始分割线------------------------------------------------------------------
言归正传,开始学习。
首先到官网下载需要的包:
http://www.thinkphp.cn/
解压到网站目录下,然后在网站根目录下建立一个简单的入口文件:index.php:
<?php //定义项目名称和路径 define(\'APP_NAME\', \'App\'); define(\'APP_PATH\', \'./App/\'); define(\'APP_DEBUG\',TRUE); // 加载框架入口文件 require( "./ThinkPHP/ThinkPHP.php");
详细的介绍请参考官方文档,在此不再抄一遍了。
然后在浏览器中访问:
http://localhost
哇,看到了吗?竟然运行起来了!
:)
欢迎使用 ThinkPHP!
就这么简单到没有朋友!
运行后系统会自动给你生成各种目录及缺省的框架文件,我喜欢 :-)
好吧,我们要故意做得复杂一点,将项目建立前台和后台:
在App/Conf中的config.php中配置一下:
<?php return array( //\'配置项\'=>\'配置值\' \'URL_MODEL\' =>3, // 如果你的环境不支持PATHINFO 请设置为3 \'DB_TYPE\' => \'mysql\', \'DB_HOST\' => \'localhost\', \'DB_NAME\' => \'studyphp\', \'DB_USER\' => \'root\', \'DB_PWD\' => \'\', \'DB_PORT\' => \'3306\', \'DB_PREFIX\' => \'think_\', \'APP_AUTOLOAD_PATH\' => \'@.TagLib\', \'APP_GROUP_LIST\' => \'Home,Admin\', \'DEFAULT_GROUP\' => \'Home\', \'APP_GROUP_MODE\' => 1, \'SHOW_PAGE_TRACE\' => 1//显示调试信息 ); ?>
在App下建立Modules目录,然后在Modules下依次建立Home,在Home中依次建立:Action、Model、Tpl目录。然后在Action中建立一个索引文件:
IndexAction.class.php:
<?php class IndexAction extends Action{ public function index(){ echo \'Hello,ThinkPHP !\'; } }
好了,再访问http://localhost:
Hello,ThinkPHP !
我们的项目已经可以分组管理了!当然,Admin组的建立同Home,这里不再描述。
什么?模板输出的太简单?好吧,我们搞个漂亮点的显示,在Tpl中建立Index目录,在Index目录下建立一个index.html文件:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ThinkPHP</title> </head> <body> <div class="main"> <h2>{$hello}</h2> </div> </body> </html>
这回满意了?
恩,我承认,我只是将要输出的字体简单处理了一下:
<h2>{$hello}</h2>
来,修改一下后台(有后台,是不是腰板比较硬?说的是腰板噢)
<?php class IndexAction extends Action{ public function index(){ $hello=\'Hello,ThinkPHP !\'; $this->assign(\'hello\',$hello); $this->display(); } }
这回算这个示例算是比较完整了,我们使用了框架,程序分了组,设置了输出模板,一个简单的从后台到前台的系统就建立起来了。
等等,上面配置的数据库干嘛?后面会用得上。
-------------------------------------------华丽的结束分割线------------------------------------------------------------------
且听下回分解!