• thinkphp零碎小知识


    在使用thinkphp搭建后台的时候,有很多的参数需要去配置,有的记不住还要去查找,这里把一些基本的参数整理一下,还有些零碎的知识点,与大家共勉,希望能方便大家。

    友情提示:这些配置是 thinkphp3.2.3的哦~~

    1.分离前后台

    //定义应用目录
    define('BIND_MODULE','Admin');
    define('App_PATH','./Application');
    

    为了一个项目的安全性以及便于维护,通常用一个入口文件,而前后台分开的情况,在定义的时,在配置文件中更改代码。可以出现一个后台文件入口,前后台分开,方便管理。也可直接复制Home文件夹,更改控制器和模型里的命名空间。

    2.设置视图文件的后缀

    	'TMPL_TEMPLATE_SUFFIX' => '.php', // 默认模板文件后缀
    

    3.连接数据库

    	'DB_TYPE'   => 'mysql', // 数据库类型
    	'DB_HOST'   => 'localhost', // 服务器地址
    	'DB_NAME'   => 'wish', // 数据库名
    	'DB_USER'   => 'root', // 用户名
    	'DB_PWD'    => 'root', // 密码
    	'DB_PORT'   => 3306, // 端口
    	'DB_PREFIX' => 'tp_', // 数据库表前缀
    

    4.简单实用的获取服务器信息

    
    $info = array(
                '操作系统'=>PHP_OS,
                '运行环境'=>$_SERVER["SERVER_SOFTWARE"],
                '主机名'=>$_SERVER['SERVER_NAME'],
                'WEB服务端口'=>$_SERVER['SERVER_PORT'],
                '网站文档目录'=>$_SERVER["DOCUMENT_ROOT"],
                '浏览器信息'=>substr($_SERVER['HTTP_USER_AGENT'], 0, 40),
                '通信协议'=>$_SERVER['SERVER_PROTOCOL'],
                '请求方法'=>$_SERVER['REQUEST_METHOD'],
                'ThinkPHP版本'=>THINK_VERSION,
                '上传附件限制'=>ini_get('upload_max_filesize'),
                '执行时间限制'=>ini_get('max_execution_time').'秒',
                '服务器时间'=>date("Y年n月j日 H:i:s"),
                '北京时间'=>gmdate("Y年n月j日 H:i:s",time()+8*3600),
                '服务器域名/IP'=>$_SERVER['SERVER_NAME'].' [ '.gethostbyname($_SERVER['SERVER_NAME']).' ]',
                '用户的IP地址'=>$_SERVER['REMOTE_ADDR'],
                '剩余空间'=>round((disk_free_space(".")/(1024*1024)),2).'M',
            );
            $this->info=$info;
    

    5. thinkphp 构造函数 _ initialize() 和__construct()

    在php的内置函数中不存在 _ initialize()的构造方法,只存在 __ construct()构造方法,子类如果有自己的构造函数( __ construct()),则调用自己的进行初始化,如果没有,则调用父类的构造函数进行自己的初始化。当子类和父类都有 __ construct()函数的时候,如果要在初始化子类的时候同时调用父类的 __ constrcut(),则可以在子类中使用parent:: __ construct()。
    ThinkPHP中的 _ initialize()的出现只是方便程序员在写子类的时候避免频繁的使用parent:: __ construct(),同时正确的调用框架内父类的构造器,所以,我们在ThnikPHP中初始化子类的时候要用 _ initialize(),而不用 __ construct()。

    6. redirect方法

    该方法调用了 U 函数来生成实际的 URL 重定向地址,同项目分组中的URL访问一样,redirect 中跨分组跳转只是多了一个分组项目名称的概念,可以在 redirect 中使用路由,redirect 方法的参数用法和 U函数 的用法一致.可参考 U函数 生成URL地址相关部分内容。
    与success/error的区别:
    redirect 是使用的 PHP header 重定向,而 success/error 是使用的 html meta http-equiv='Refresh' 属性跳转。
    redirect 无模板页面,输出的提示信息是直接在函数内 echo 输出的,而 success/error 有对应的模板。
    redirect 与 success/error 都可以实现页面的跳转,只是 redirect 可以无延时重定向,具体采用哪种视具体情况而定。

    7. thinkphp 文件上传

    在使用thinkphp来设置上传文件的目录时,可能会出现错误,显示找不到制定的那个文件夹,但是在配置中却明明已经用savePath来进行设置,但就是不起作用。
    错误的原因是仅仅设置upload的savePath的参数是不行的,还要对upload的根目录rootPath进行设置。或者说,仅仅只设置rootPath的参数,这样才能够起作用。

     $upload=new ThinkUpload(); //实例化上传类
     $upload->maxSize=3145728;  //设置附件上传大小
     $upload->exts=array('jpg','gif','png','jpeg'); //设置附件上传类型
     $upload->savePath='./Public/Uploads/'; //设置附件上传目录
     //这个rootPath根目录千万不能忘记设置,要不savePath会找不到相应的文件夹
     $upload->rootPath='/.';
    
  • 相关阅读:
    png格式的img元素直接设置背景色、border-radius等属性,不需再包裹div造成冗余
    :before伪元素的灵活用法——前置元素的装饰
    linear-gradient在实战项目中的灵活运用——position和size的深入理解
    算法之单向链表
    awk(二)
    awk(一)
    grep与正则表达式
    编程原理
    Shell-bash的基本特性
    DNS域名轮循业务监控
  • 原文地址:https://www.cnblogs.com/wtyhome/p/7290990.html
Copyright © 2020-2023  润新知