thinkPHP5.0 路由 先後端分離 綁定模塊 隱藏入口文件

 1.先後端分離

  a、在網站public目錄下新建admin.phpphp

  b、打開admin.phphtml

        <?php
// [ 應用入口文件 ]
// 定義應用目錄
      define('APP_PATH', __DIR__ . '/../application/');
      // 加載框架引導文件
      require __DIR__ . '/../thinkphp/start.php';

2.綁定模塊

  一、實現功能thinkphp

    index.php 這個入口文件 只能去前臺模塊apache

    admin.php 這個入口文件 只能去後臺模塊   建議後臺的入口文件稍微複雜些後端

  二、如何實現數組

    在入口文件中  app

define('BIND_MODULE','index');//綁定前臺模塊

 

define('BIND_MODULE','admin');//綁定後臺模塊

  三、url地址框架

    a、入口綁定模塊以前前後端分離

      http://www.tp5.com/入口文件/模塊/控制器/操做iview

    b、入口綁定模塊以後

      http://www.tp5.com/入口文件/控制器/操做

3.隱藏入口文件

  一、開始apache 的重寫   F:\phpStudy\PHPTutorial\Apache\conf\httpd.conf

    # 把註釋去掉      

    更改後:LoadModule rewrite_module modules/mod_rewrite.so

  二、設置訪問權限    AllowOverride       none改成All

  三、入口文件 ,在網站public目錄下新建.htaccess  

//phpstudy的第一種寫法
<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>
//第一種方法很差使的話 使用第二種方法
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule>

 

  四、重啓服務 

  五、url地址變化

    a、隱藏以前

       http://www.tp5.com/index.php/Index/test

    b、隱藏以後

      http://www.tp5.com/Index/test

tp5.0路由學習注意:路由的優勢:1.簡化url地址,方便記憶   2.有利於搜索引擎的優化

  Route::rule('路由表達式','路由地址','請求類型','路由參數(數組)','變量規則(數組)');

  1.支持三種方式的url解析規則

  2.路由只針對應用,不針對模塊,所以路由的設置也是針對應用下面的全部模塊。

  3.若是有些模塊不想使用路由   關閉後臺模塊,在後臺入口文件添加下面這句話,寫在

加載框架引導文件以後  不然報錯
// 加載框架引導文件
require __DIR__ . '/../thinkphp/start.php';

 

//關閉admin模塊下的路由
\think\App::route(false);

 

   四、路由模式

      a、普通模式

          1.關閉路由,徹底使用默認的PATH_INFO方式URL

          2.形式:http://www.tp5.com/admin.php/Index/index

          3.如何配置:

             //是否開啓路由

              ‘url_route_on’    => false,

            //是否強制使用路由

              'url_route_must'  => false,

      b、混合模式

          1.定義:開啓路由,並使用路由定義+默認 PATH_INFO 方式的混合

          2.如何設置

             //是否開啓路由

              ‘url_route_on’    => true,

            //是否強制使用路由

              'url_route_must'  => false,

      c、強制模式 

          1.定義:

            開啓路由,並設置必須定義路由才能訪問

          2.如何設置 

             //是否開啓路由

              ‘url_route_on’    => true,

            //是否強制使用路由

              'url_route_must'  =>true, 

    五、設置路由-動態單個註冊

        a、設置路由文件

          application\route.php 

        b.、如何設置

//引入系統類
use think\Route;
//定義路由規則
//設置了路由以後,就不能使用PATH_INFO模式訪問了
//註冊路由訪問到index模塊Index控制器index方法 Route::rule('/','index/Index/index');
//註冊路由訪問到index模塊Index控制器test方法
Route::rule('test','index/Index/test');

         c、路由的形式

          1.靜態地址路由

            // 註冊路由test  訪問到Index模塊index控制器test方法

              Route::rule('test','index/Index/test');

          2.給路由帶參數

            //註冊帶參數路由

            //http://www.tp5.com/course/1   路由模式

            //http://www.tp5.com/index/Index/course/id/1  普通模式

            Route::rule('course/:id','index/Index/course');

            //若是路由設置兩個參數,必須帶兩個參數

              Route::rule('time/:year/:mouth','index/Index/shijian');

          3.可選參數路由

            //http://www.tp5.com/time/2017

            //http://www.tp5.com/time/2018/5

            Route::rule('time/:year/[:mouth]','index/Index/shijian');

           四、全動態路由(不建議使用)       

              Route::rule(':a/:b','index/Index/dongtai');

 

          5.徹底匹配路由     

              //http://www.tp5.com/wanquan   能夠訪問
              //http"//www.tp5.com/wanquan/ada/asf/a/f 不能夠訪問    

              Route::rule('wanquan$','index/Index/wanquan');

 

          6.路由額外帶參數

              Route::rule('test1','index/Index/test1?id=12&name=adasfds');

 

    

        d、設置請求類型   

          一、tp中請求類型

              get、post、put、delete

          二、Route::rule()  默認支持全部請求類型 

          三、設置全部請求  

//支持get請求
Route::rule('type','index/Index/type','get');
Route::get('type','index/Index/type');

//支持post請求
Route::rule('type','index/Index/type','post');
Route::post('type','index/Index/type');

//同時支持get和post
Route::rule('type','index/Index/type','get|post');

//支持全部請求
Route::rule('type','index/Index/type','*');
Route::any('type','index/Index/type');

//支持put請求
Route::rule('type','index/Index/type','put');
Route::put('type','index/Index/type');

//支持delete請求
Route::rule('type','index/Index/type','delete');
Route::delete('type','index/Index/type');

 

 

       四、如何模擬put和delete請求

<form action="" method="post">  post 重要
    <p>
        <input type="hidden" name="_method" value="PUT"> **隱藏域重要
        <input type="text" name="name">
    </p>
    <p>
        <input type="submit" value="提交">
    </p>
</form>

 

    六、設置路由-動態批量註冊

      a、基本格式

Route::rule([
'路由規則1'=>'路由地址和參數',
'路由規則2'=>['路由地址和參數','匹配參數(數組)','變量規則(數組)']
...
],'','請求類型','匹配參數(數組)','變量規則');

 

      b、使用    

Route::rule([
    'test'   =>  'index/Index/test',
    'course/:id'  =>  'index/Index/course'
]);
Route::get([
    'test'   =>  'index/Index/test',
    'course/:id'  =>  'index/Index/course'
]);

    七、設置路由-配置文件批量註冊

return [
    'test'   =>  'index/Index/test',
    'course/:id'  =>  'index/Index/course'
];

    八、變量規則   

//設置路由參數id必須是數字,必須1到3位
Route::rule('course/:id','index/Index/course','get',[],["id" => "\d{1,3}"]);

    九、路由參數

//路由參數method  請求方式必須是get
//路由參數ext 主要設置路由的後綴
Route::rule('course/:id','index/Index/course','get',['method'=>'get','ext'=>'html'],["id" => "\d{1,3}"]);

 

     十、資源路由

      a、後臺功能

        add頁面、展現頁面、刪除功能、修改頁面、修改功能、增長功能

       a、聲明資源路由    

Route::resource('blog','index/Blog');

 

       b、會自動註冊七個路由規則

    十一、設置快捷路由

      a、聲明

Route::controller('user','index/User');

 

       b、使用: 

namespace app\index\controller;

class User {
    public function getInfo()
    {
    }
    
    public function getPhone()
    {
    }
    
    public function postInfo()
    {
    }
    
    public function putInfo()
    {
    }
    
    public function deleteInfo()
    {
    }
}

 

       c、URL訪問

get http://localhost/user/info
get http://localhost/user/phone
post http://localhost/user/info
put http://localhost/user/info
delete http://localhost/user/info

    十二、生成URL地址

       a、系統類

        use think\url

        url::build('index/Index/index');

       b、系統方法

        url('index/Index/index');

       c、使用

          看手冊詳細介紹

相關文章
相關標籤/搜索