第一天 信手拈来无意句-ThinkPHP手把手快速拼接网站(一)
来源:互联网 发布:手机app推广联盟源码 编辑:程序博客网 时间:2024/04/30 05:51
5月30日,晴。“流光容易把人抛,红了樱桃,绿了芭蕉。”
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架。本文手把手快速搭建一个网站小应用,信手拈来,聊以抛砖引玉,增加大家学习PHP框架的兴趣,提高开发效率。
一、准备工作
对于大多数程序猿来说,界面设计都搞得丑陋不堪,还是“拿来主义”,网上找个免费模板一用。
1、下载个前端模板,Expanding_Portfolio.zip
2、下载个后台模板,admin-templates.rar
前后台模板下载地址:http://download.csdn.net/detail/zwszws/8773601
3、下载thinkphp框架文件ThinkPHP3.1.3完整版ThinkPHP_full.zip:ThinkPHP官网http://www.thinkphp.cn/
4、下载PHP程序集成包phpStudy(PHP 5.2.17),无须配置即可使用,是非常方便。具体使用参看产品说明书。
二、创建前后端应用框架
1、在D:\phpStudyB\WWW目录下创建工程MyFirstThinkPHP_1(说白了就是一个文件夹)。
2、把ThinkPHP_full.zip框架文件里面的ThinkPHP整个拷贝到工程目录MyFirstThinkPHP_1下面。
3、生成前端框架home——编写home.php
<?phpdefine('THINK_PATH','./ThinkPHP/');define('APP_PATH','./home/');define('APP_NAME','home');define('APP_DEBUG',true);requireTHINK_PATH.'ThinkPHP.php';?>
用define定义几个常量定义分别指明了:
a. ThinkPHP框架的路径
b. 前台应用程序目录
c. 前台应用程序名称
d. 开启调试模式
e. 包含ThinkPHP框架下的ThinkPHP.php文件
把home.php放在工程目录MyFirstThinkPHP_1下面,MyFirstThinkPHP_1下面有两个文件:
注意:在Zend Studio IDE中导入thinkPHP核心包错误提示的改正方法:把getAll的访问级别改成public
<span style="font-size:12px;">public function getAll() {...}</span>
浏览器里面输入:http://localhost/MyFirstThinkPHP_1/home.php,出现
此时,工程目录MyFirstThinkPHP_1 下面多出一个文件夹home:
打开home目录,内容如下:
生成的项目目录结构和系统目录类似,各个文件夹的含义如下:
其中主要关注四个文件夹:
a. Conf 存放工程配置文件。
b. Lib (核心文件!存放MVC模式的模型类和控制器类)
c. Tpl(存放模板文件,前面下载的前端模板放在此处)
d. Runtime(存放运行时文件,比如缓存、数据库表缓存)
4、生成后台框架admin——编写admin.php
<?phpdefine('THINK_PATH','./ThinkPHP/');define('APP_PATH','./admin/');define('APP_NAME','admin');define('APP_DEBUG',true);requireTHINK_PATH.'ThinkPHP.php';?>用define定义几个常量定义分别指明了:
a. ThinkPHP框架的路径
b. 后台应用程序目录
c. 后台应用程序名称
d. 开启调试模式
e. 包含ThinkPHP框架下的ThinkPHP.php文件
同样,把admin.php放在工程目录MyFirstThinkPHP_1下面,浏览器里面输入:http://localhost/MyFirstThinkPHP_1/admin.php,出现:
同样,工程目录MyFirstThinkPHP_1下面多出一个文件夹admin:
三、创建前台工程的入口文件-index.php,放在工程目录MyFirstThinkPHP_1下面
<?phpdefine ( 'THINK_PATH', './ThinkPHP/' );define ( 'APP_PATH', './home/' );define ( 'APP_NAME', 'home' );define ( 'STRIP_RUNTIME_SPACE', false );define ( 'APP_DEBUG', true );define ( '__PUBLIC__', '__ROOT__/public/' );require THINK_PATH . 'ThinkPHP.php';?>其中:
define ( 'STRIP_RUNTIME_SPACE', false ); //保留编译文件的空白和注释 define ( '__PUBLIC__', '__ROOT__/public/' );//站点公共目录
然后,在浏览器中访问这个入口文件:http://localhost/MyFirstThinkPHP_1/index.php
一般Web服务器的默认文件是index.php,所以我们可以不需要在URL地址中加上index.php。运行后我们会看到欢迎页面.
四、理解PATHINFO模式
PATHINFO模式 是系统的默认URL模式。
格式:http://serverName/appName/module/action/id/1/
参数module表示模块,参数action表示操作
对于本例中这个入口文件可以写成:http://localhost/MyFirstThinkPHP_1/index.php/Index/index
因为Index是模块,定义在\home\Lib\Action\IndexAction.class.php
<?php// 本类由系统自动生成,仅供测试用途class IndexAction extends Action { public function index(){$this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8'); }}这是一个控制器类,控制器必须继承Action类。
控制器类的命名规范是:模块名+Action.class.php (模块名采用驼峰法并且首字母大写)。
那么,很明显模块是Index(系统的默认),对应的控制器就是项目目录下面的Lib/Action/IndexAction.class.php,类名和文件名一致。
默认操作是index()方法。初次生成项目目录结构的时候,系统已经默认生成了一个默认控制器(就是之前看到的欢迎页面),我们把index方法改成下面的代码:
class IndexAction extends Action { public function index(){ echo 'hello,world!'; }}再次访问:http://localhost/MyFirstThinkPHP_1/index.php/Index/index
五、理解视图
ThinkPHP在输出时如果不指定模板,则会采用系统默认的定位规则,其定义规范是 Tpl/模块名/操作名.html,所以,Index模块的index操作的默认模板文件位于项目目录下面的Tpl/Index/index.html。
在home\Tpl下面新建文件夹Index(也就是模块名),在其下面新建index.html
<html> <head> <title>hello {$name}</title> </head> <body> hello, {$name}! </body></html>要输出视图,必须在控制器方法中进行模板渲染输出操作,修改IndexAction.class.php
<?phpclass IndexAction extends Action { public function index(){ $this->name = 'thinkphp'; // 进行模板变量赋值 $this->display(); }}display方法中我们没有指定任何模板,所以按照系统默认的规则输出了Index/index.html模板文件。
至此,准备工作和基本知识就就完成了,下一篇就把前端模板Expanding_Portfolio.zip加进去,看一看喽!
- 第一天 信手拈来无意句-ThinkPHP手把手快速拼接网站(一)
- 第三天 ThinkPHP手把手快速拼接网站(三)
- 第五天 ThinkPHP手把手快速拼接网站(五)
- 第四天 ThinkPHP手把手快速拼接网站(四)
- 第六天 ThinkPHP手把手快速拼接网站(六)
- 第二天 天生韵味入千家-ThinkPHP手把手快速拼接网站(二)
- 编写SQL注意事项----一天一句(一)
- 手撕代码(一)快速排序
- Thinkphp 学习笔记【第一天】
- thinkPHP学习_第一天
- 编写SQL注意事项----一天一句(二)
- 编写SQL注意事项----一天一句(三)
- 编写SQL注意事项----一天一句(四)
- 无意中的网站检测
- 每天10句口语英语-第一天
- 使用ThinkPHP框架快速搭建网站(通俗易懂)
- 小菜鸟学习Thinkphp第一天
- ThinkPhp框架学习之入门第一天
- 漳州验血鉴别胎儿性别
- 漳州验血鉴别胎儿性别中介
- 浙江验血测性别
- 浙江验血测性别中介
- 浙江验血查男女
- 第一天 信手拈来无意句-ThinkPHP手把手快速拼接网站(一)
- iOS中的事件
- 君子周而不比,小人比而不周
- ubuntu 和windows双系统启动顺序的修改
- 我的IT 路还很长(大一计科学生的计划安排)
- STL List 整理
- Boost Asio 异步TCP服务器框架
- Android开发---摇一摇功能
- 标准c++库和stl库,boost库,qt库的总结(一)