<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # 框架基礎知識 [TOC] ## 目錄結構 project 應用部署目錄 2.├─application 應用目錄(可設置) 3.│ ├─common 公共模塊目錄(可更改) 4.│ ├─index 模塊目錄(可更改) 5.│ │ ├─config.php 模塊配置文件 6.│ │ ├─common.php 模塊函數文件 7.│ │ ├─controller 控制器目錄 8.│ │ ├─model 模型目錄 9.│ │ ├─view 視圖目錄 10.│ │ └─ ... 更多類庫目錄 11.│ ├─command.php 命令行工具配置文件 12.│ ├─common.php 應用公共(函數)文件 13.│ ├─config.php 應用(公共)配置文件 14.│ ├─database.php 數據庫配置文件 15.│ ├─tags.php 應用行為擴展定義文件 16.│ └─route.php 路由配置文件 17.├─extend 擴展類庫目錄(可定義) 18.├─public WEB 部署目錄(對外訪問目錄) 19.│ ├─static 靜態資源存放目錄(css,js,image) 20.│ ├─index.php 應用入口文件 21.│ ├─router.php 快速測試文件 22.│ └─.htaccess 用于 apache 的重寫 23.├─runtime 應用的運行時目錄(可寫,可設置) 24.├─vendor 第三方類庫目錄(Composer) 25.├─thinkphp 框架系統目錄 26.│ ├─lang 語言包目錄 27.│ ├─library 框架核心類庫目錄 28.│ │ ├─think Think 類庫包目錄 29.│ │ └─traits 系統 Traits 目錄 30.│ ├─tpl 系統模板目錄 31.│ ├─.htaccess 用于 apache 的重寫 32.│ ├─.travis.yml CI 定義文件 33.│ ├─base.php 基礎定義文件 34.│ ├─composer.json composer 定義文件 35.│ ├─console.php 控制臺入口文件 36.│ ├─convention.php 慣例配置文件 37.│ ├─helper.php 助手函數文件(可選) 38.│ ├─LICENSE.txt 授權說明文件 39.│ ├─phpunit.xml 單元測試配置文件 40.│ [├─README.md](http://xn--README-2n7cpi.md) README 文件 41.│ └─start.php 框架引導文件 42.├─build.php 自動生成定義文件(參考) 43.├─composer.json composer 定義文件 44.├─LICENSE.txt 授權說明文件 [45.├─README.md](http://45.xn--README-2n7cpi.md) README 文件 46.├─think 命令行入口文件 ## 配置文件 在Tinkphp中的配置加載的順序 慣例配置->應用配置->擴展配置->場景配置->模塊配置->動態配置 框架主配文件(慣性配置) thinkphp/convention.php 最頂層 應用公共配置文件 application/config.php application/database.php 對整個應用生效 模塊配置只對當前模塊生效 自定義配置文件 `自定義配置文件需要修改入口文件,代碼如下` 玩轉配置文件只需要記住:`think/Config.php類` 或者 `config`助手函數 配置文件的格式: ``` //正常配置文件 return [ 'template' =>[ 'layout_on' => true, 'layout_name' => 'layout', ], ]; //自定義配置文件,需要修改入口文件 define('CONF_PATH', __DIR__ . '/../config/'); define('CONF_EXT', '.ini[xml][json]'); //動態配置文件 think\Config::set('peizhi','我是動態配置'); ``` 配置文件生效的順序:最先加載的會被最后加載的覆蓋掉(`也就是最后加載的生效`),一般我們不會去操作框架主配,而是操作應用和模塊配置文件。 ## 函數文件 框架函數文件 thinkphp/helper.php 公共應用函數文件 application/common.php 模塊函數文件 application/模塊目錄/common.php 與配置文件一樣,都不建議去修改主程,而是去修改應用于模塊的函數文件。在那種情況下我們會使用到函數文件呢?比如我們需要去加密我們的密碼,那么就可以把它寫成一個公共的函數方便使用。 函數文件的格式: ``` if(!function_exists('FunMd5')) { function FunMd5($password) { $str = '我熱愛著我的祖國,我愛中國'; return md5(md5($password).$str); } } ``` ## 命名空間 PHP5.3加入命名空間,命名空間一個最明確的目的就是解決重名問題,PHP中不允許兩個函數或者類出現相同的名字,否則會產生一個致命的錯誤。這種情況下只要避免命名重復就可以解決,**Thinkphp中的命名空間通常與目錄關聯一起。Tinkphp中的自動加載機制會把類的命名空間做成加載的一部分**。 Thinkphp中命名空間使用: * [ ] 聲明命名空間 使用namespace關鍵字 * [ ] 引入指定的類 使用use關鍵字 ?命名空間\\類名稱 * [ ] 完全限定式訪問 ?在使用類時,\\完整命名空間\\類名稱(繼承和實例化) * [ ] 如果一個類沒有命名空間,使用 \\類名 ## 隱藏入口文件 ThinkphpURL采用的PATH\_INFO方式 URL訪問的格式:[http://域名/入口文件/模塊名/控制器名稱/操作方法名稱/參數名/參數值](http://xn--eqrt2g/%E5%85%A5%E5%8F%A3%E6%96%87%E4%BB%B6/%E6%A8%A1%E5%9D%97%E5%90%8D/%E6%8E%A7%E5%88%B6%E5%99%A8%E5%90%8D%E7%A7%B0/%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95%E5%90%8D%E7%A7%B0/%E5%8F%82%E6%95%B0%E5%90%8D/%E5%8F%82%E6%95%B0%E5%80%BC) 在ThinkPHP5.0中,出于優化的URL訪問原則,還支持通過URL重寫隱藏入口文件,在對外訪問目錄pulibc/.htaccess,我們可以修改它從而實現隱藏入口文件。注意一點Thinkphp5.0版本已經不再支持傳統的URL訪問模式。 修改后的代碼: ``` <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?(實踐上就是在這里加上一個?)/$1 [QSA,PT,L] </IfModule> ``` 重新URL后我們訪問就不在需要入口文件了,那么又有一個問題在我們URL訪問時URL區分大小寫嘛?默認是不區分大小寫的,如有需求可以修改application/config.php里面的配置關閉URL的自動轉換。 關閉URL的自動轉換: ``` 'url_convert' => false, ``` ## 調試模式 開發時應當開啟調試模式,這樣有利于我們的開發。在5.0.10以前調試模式是自動開始前的,5.0.10+以后需要手動開啟。且注意:調試模式開啟為全局作用,不支持單獨開啟。在application/config.php開啟調試模式 開始調試模式: ``` // 應用調試模式 'app_debug' => true // trace 調試模式 'app_trace' => true ``` ## 設置默認訪問模塊 我們打開URL訪問入口文件,沒有控制器與方法也能正常訪問就是利用了Thinkphp中提供的默認模塊。application/config.php可以修改默認訪問的模塊。 修改默認訪問模塊: ``` // 默認模塊名 'default_module' => 'home', // 禁止訪問模塊 'deny_module_list' => ['common'], // 默認控制器名 'default_controller' => 'Index', // 默認操作名 'default_action' => 'index', ``` ## 配置數據庫連接信息 在Thinkphp中數據庫的連接是通過修改配置文件來設置的,在application/database.php修改 ``` // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數據庫名 'database' => 'my', // 用戶名 'username' => 'root', // 密碼 'password' => 'root', // 端口 'hostport' => '3306', // 連接dsn 'dsn' => '', // 數據庫連接參數 'params' => [], // 數據庫編碼默認采用utf8 'charset' => 'utf8', // 數據庫表前綴 'prefix' => 'my_', // 自動寫入時間戳字段 'auto_timestamp' => true, #如果開啟了時間戳自動寫入,那么數據表中必須添加二個字段:create_time和update_time 如果有表名跟配置項的不一致,thinkphp也為我們提供了一個$table屬性來設置完整表名稱 class User { protected $table = '完整的表名稱'; } ``` ## 頁面重定向 詳細見手冊:控制器->跳轉與重定向 ``` // 成功時跳轉 $this -> success(“提示信息”,“跳轉地址”,“返回數據”,“等待時間”,“header信息”); // 失敗時跳轉 等待時間默認3s。 跳轉地址可以不寫,默認跳轉回上一頁 $this -> error(“提示信息”,“跳轉地址”,“返回數據”,“等待時間”,“header信息”); // 重定向跳轉:用于直接跳轉,不顯示提示信息。 $this -> redirect(“跳轉地址”,“請求參數”,“http code”); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看