• 2017-07-26 ThinkPHP简单使用


    ThinkPHP是什么?有何优点?

    ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架,ThinkPHP为WEB应用开发提供了强有力的支持,这些支持包括:

    * MVC支持-基于多层模型(M)、视图(V)、控制器(C)的设计模式
    * ORM支持-提供了全功能和高性能的ORM支持,支持大部分数据库
    * 模板引擎支持-内置了高性能的基于标签库和XML标签的编译型模板引擎
    * RESTFul支持-通过REST控制器扩展提供了RESTFul支持,为你打造全新的URL设计和访问体验
    * 云平台支持-提供了对新浪SAE平台和百度BAE平台的强力支持,具备“横跨性”和“平滑性”,支持本地化开发和调试以及部署切换,让你轻松过渡,打造全新的开发体验。
    * CLI支持-支持基于命令行的应用开发
    * RPC支持-提供包括PHPRpc、HProse、jsonRPC和Yar在内远程调用解决方案
    * MongoDb支持-提供NoSQL的支持
    * 缓存支持-提供了包括文件、数据库、Memcache、Xcache、Redis等多种类型的缓存支持

    简单应用

    我们使用ThinkPHP3.2版本为例,下载地址:http://www.thinkphp.cn/download/543.html。下载后解压,里面我们需要ThinkPHP这个文件夹

    把它放在我们网站的目录下,然后在根目录下建立index.php文件作为入口文件,里面写如下代码:

    define('APP_DEBUG',True);
    
    //定义项目目录
    define('APP_PATH','./Shop/');
    
    //载入框架入口文件
    require './ThinkPHP/ThinkPHP.php';

    第二步的目录根据自己的需要设置即可,我们这里用Shop。然后去浏览器运行index.php,会出现一个欢迎页面,然后我们的文件会自动生成相应的文件夹

     打开生成的文件夹会发现还有很多文件夹,里面是模块文件夹,打开Home文件夹,里面还有文件夹,是控制器文件、视图文件等等。

    打开Controller文件夹,里面是控制器文件,打开IndexController.class文件夹,修改如下代码:

    //命名空间
    namespace HomeController;
    use ThinkController;
    //继承Controller类
    class IndexController extends Controller {
        public function index(){
            $arr = array(
                array('id'=>1,'title'=>'今天周五','content'=>'今天周五','time'=>'2017-07-26 14:34:33','status'=>1),
                array('id'=>2,'title'=>'今天周五1','content'=>'今天周五1','time'=>'2017-07-25 14:34:33','status'=>2),
                array('id'=>3,'title'=>'今天周五2','content'=>'今天周五2','time'=>'2017-07-24 14:34:33','status'=>2),
                array('id'=>4,'title'=>'今天周五3','content'=>'今天周五3','time'=>'2017-07-23 14:34:33','status'=>1)
            );
            $this->assign('arr',$arr);
            $this->display();
        }
    }

    我们先传虚拟数据,后面我们再传真实数据,定义一个控制器,我们就需要在view文件夹下建立一个相应的文件夹,在该文件夹下建立与方法名一致的html文件作为视图文件。

    在视图文件内写入我们想要的代码就可以了。

     <html>
     <head><title>列表页面</title></head>
     <body></body>
        <table border=1 cellspacing=0 width=400>
            <th>id</th>
            <th>title</th>
            <th>content</th>
            <th>time</th>
            <th>status</th>
            <foreach name="arr" item="vo">
            <tr>
                <td>{$vo.id}</td>
                <td>{$vo.title}</td>
                <td>{$vo.content}</td>
                <td>{$vo.time}</td>
                <td>{$vo.status}</td>
            </tr>
            </foreach>
        </table>
     </body>
     </html>

    注意上面有foreach的用法,<foreach name="上一个页面传入的值名称" item="自定义值名">{自定义值名.key}</foreach>。 

    连接数据库

    找到对应的conf文件夹

    打开里面的conf.php文件,代码是这样的

    然后我们写入连库代码:

    //数据库配置信息
    'DB_TYPE'   => 'mysql', // 数据库类型
    'DB_HOST'   => 'localhost', // 服务器地址
    'DB_NAME'   => 'thinkphp', // 数据库名
    'DB_USER'   => 'root', // 用户名
    'DB_PWD'    => '123456', // 密码
    'DB_PORT'   => 3306, // 端口
    'DB_PREFIX' => 'think_', // 数据库表前缀 
    'DB_CHARSET'=> 'utf8', // 字符集
    'DB_DEBUG'  =>  TRUE, // 数据库调试模式 开启后可以记录SQL日志 3.2.3新增

    在控制器文件里面 用M('表名')获得一个对象,然后用该对象调用select方法即可获取表数据。

    <?php
    //命名空间
    namespace HomeController;
    use ThinkController;
    //继承Controller类
    class IndexController extends Controller {
        public function index(){
            $res = M('news');
            $row = $res->select();
            //print_r($row);die();
            $this->assign('arr',$row);
            $this->display();
        }
    }
  • 相关阅读:
    基于Linux OpenJDK Debian的发行版的JAVA_HOME环境变量的正确目标是什么?
    redhat linux卸载默认的openjdk与安装sun的jdk
    更换介质:请把标有…… DVD 的盘片插入驱动器“/media/cdrom/”再按回车键“ 解决方法
    mysql 导出表结构和表数据 mysqldump用法
    转怎么让VI支持中文显示
    debian 更换sh的默认链接为bash
    基于percona-monitoring-plugins实现Zabbix的MySQL多端口自动发现监控
    elasticsearch中client.transport.sniff的使用方法和注意事项
    网络大数据分析 -- 使用 ElasticSearch + LogStash + Kibana 来可视化网络流量
    Parsing Netflow using Kibana via Logstash to ElasticSearch
  • 原文地址:https://www.cnblogs.com/zhangxu-fasu/p/11251368.html
Copyright © 2020-2023  润新知