首頁  >  文章  >  後端開發  >  thinkphp的一些小知識

thinkphp的一些小知識

炎欲天舞
炎欲天舞原創
2017-08-07 09:16:381666瀏覽

在使用thinkphp搭建後台的時候,有很多的參數需要去配置,有的記不住還要去查找,這裡把一些基本的參數整理一下,還有些零碎的知識點,與大家共勉,希望能方便大家。

友情提示:這些設定是thinkphp3.2.3的一個專案的安全性以及便於維護,通常用一個入口文件,而前後台分開的情況,在定義的時,在設定檔中更改程式碼。可以出現一個後台文件入口,前後台分開,方便管理。也可直接複製Home資料夾,變更控制器和模型裡的命名空間。

2.設定視圖檔案的後綴


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

3.連接資料庫

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

4.簡單實用的取得伺服器資訊


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

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的參數,才能夠運作。

$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;

以上是thinkphp的一些小知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:php實作佇列下一篇:php實作佇列