第一天 信手拈来无意句-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.zipThinkPHP官网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加进去,看一看喽吐舌头


0 0