<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. PHP MVC框架路由學習筆記

    時間:2025-08-26 20:13:57 php語言

    PHP MVC框架路由學習筆記

      文章主要介紹了PHP MVC框架路由學習筆記的相關資料,需要的朋友可以參考下。

    PHP MVC框架路由學習筆記

      提到PHP開發web,自然離不開開發框架,開發框架為我們提供了靈活的開發方式,MVC層分離,業務解耦等。。。

      第一篇先來簡單點的,說說MVC框架的路由功能。。。

      一般的單入口框架路由都是這樣的結構:

      domain/index.php/classname/functionname/var1/var2

      這里的index.php 就被稱為入口文件。。。對于服務器而言,你這里訪問的就只有index.php 后面調用的controller 和里面的方法,甚至傳值都是在框架內部基于PHP層面實現的。

      Talk is cheap, show you the code !!

      首先,先建立好下面的文件結構

      我們來動手試試,怎么才能訪問到controllers里面的文件。。。

      在index.php里面輸入以下內容

      print_r($_SERVER);

      然后訪問 以下地址試試。

      yourdomain/index.php/class/function/var1

      這里作者我是用本地環境的,我訪問的地址是localhost/MVC/index.php/class/function/var1

      我貼出最重要的2個變量

      [REQUEST_URI] => /MVC/index.php/class/function/var1

      [SCRIPT_NAME] => /MVC/index.php

      其實路由最基本的原理就在這里:

      通過這2個變量來提取url地址里的class 和 function,參數等,然后把class include進來,通過PHP的回調函數call_user_func_array 調用對應的function和傳遞相應的參數。

      接下來上代碼,讀代碼應該比我寫的易懂。哈哈~~

      index.php 的內容如下

      ?

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      <?php

      # 定義application路徑

      define(‘APPPATH', trim(__DIR__,'/'));

      # 獲得請求地址

      $root = $_SERVER['SCRIPT_NAME'];

      $request = $_SERVER['REQUEST_URI'];

      $URI = array();

      # 獲得index.php 后面的地址

      $url = trim(str_replace($root, ”, $request), ‘/');

      # 如果為空,則是訪問根地址

      if (empty($url))

      {

      # 默認控制器和默認方法

      $class = ‘index';

      $func = ‘welcome';

      }

      else

      {

      $URI = explode(‘/', $url);

      # 如果function為空 則默認訪問index

      if (count($URI) < 2)

      {

      $class = $URI[0];

      $func = ‘index';

      }

      else

      {

      $class = $URI[0];

      $func = $URI[1];

      }

      }

      # 把class加載進來

      include(APPPATH . ‘/' . ‘application/controllers/' . $class . ‘.php');

      #實例化

      $obj = new ucfirst($class);

      call_user_func_array(

      # 調用內部function

      array($obj,$func),

      # 傳遞參數

      array_slice($URI, 2)

      );

      在application/controllers 里面添加下面2個文件

      index.php 用于作為默認控制器

      ?

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      <?php

      class Index

      {

      function welcome()

      {

      echo ‘I am default controller';

      }

      }

      ?>

      hello.php

      <?php

      class Hello

      {

      public function index()

      {

      echo ‘hello world';

      }

      public function name($name)

      {

      echo ‘hello ‘ . $name;

      }

      }

      ?>

      測試一下看看,能不能訪問了。根據上面的路由結構。我們來試試

      這個訪問正常,正確調用了hello這個class內部的name方法,然后把參數barbery傳遞過去了。。。

      再試試不輸入function name,看看能不能默認調用index。。

      答案也是可以的。。。

      最后一個,訪問root地址看看

      也正確的映射到了默認控制器上。。。

      ok,一個簡單的MVC路由功能就完成了。。。

    【PHP MVC框架路由學習筆記】相關文章:

    如何使用PHP開發自己的MVC框架09-01

    PHP框架之路由與控制器詳解11-02

    PHP.MVC的模板標簽系統10-16

    PHP框架的概念09-24

    JavaScript客戶端MVC框架用法12-10

    php框架Phpbean說明03-03

    如何使用PHP框架01-21

    PHP框架是什么11-13

    怎么在yaf框架增加php擴展框架08-16

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人