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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[info]總結: PSR-0與PSR-4自動加載格式: root命名空間:起始路徑(從composer.json同級目錄算起) ~~~ "psr-0 | 4":{ "root命名空間\\":"起始路徑", }, ~~~ ## **PSR-0:** 例子: ~~~ "psr-0":{ "church\\":"./src/", }, ~~~ 此定義的類文件必須定義在composer.json同級目錄下的src/church/文件夾下: >[info]起始路徑+root命名空間 + \[額外路徑\] + 類文件(必須與類名完全一致) >[danger] 不光是類文件,還有文件夾這些都對大小寫敏感 > 實例化調用時記得加載composer的autoload.php ``` test 應用目錄 ├─src目錄 │ ├─church目錄 │ │ ├─TestClass1.php │ │ ├─TestClass2.php │ │ └─ ... 更多類文件 │ └─ ├─composer.json composer 定義文件 ``` 定義映射的類: >[info]類名與文件名完全一致 且 類名必須聲明 namespace root命名空間\[\\額外路徑 ``` <?php namespace church; class TestClass1{ } ``` 使用: >[info]use root命名空間\[\\額外路徑\]\\類名; new 類名(); 或者完全限定 >[info]new \\root命名空間\[\\額外路徑\]\\類名() ``` <?php //注意是文件與的類文件及類大小寫一致,不只是其中一個 use church\TestClass1; new TestClass1(); //或者直接new new \church\TestClass1(); ``` 例子2: ``` //類文件必須定義在composer.json同級目錄下的src/church/Dash/文件夾下 "psr-0":{ "church\\Dash\\":"./src/", }, ``` 定義: ``` <?php namespace church\Dash; class TestClass1{ } ``` 使用: ``` <?php //注意是文件與的類文件及類大小寫一致,不只是其中一個 use church\Dash\TestClass1; new TestClass1(); //或者直接new new \church\Dash\TestClass1(); ``` 例子3同理: ``` //類文件必須定義在composer.json同級目錄下的Church/文件夾下 "psr-0":{ "Church\\":"", }, ``` 定義: ``` <?php namespace Church; class TestClass1{ } ``` 使用: ``` <?php //注意是文件與的類文件及類大小寫一致,不只是其中一個 use Church\TestClass1; new TestClass1(); //或者直接new new \Church\TestClass1(); ``` ## **PSR-4:** >PSR-4 相對于PSR-0 在對應文件路徑時可以省略root命名空間 對應文件路徑: >[info]起始路徑+ \[額外路徑\] + 類文件(必須與類名一致) 例子1: ~~~ "psr-4":{ //"root命名空間\\":"起始路徑", 例root命名空間 "Dash\\"或者"Dash\\test\\" "Dash\\":"./src/", }, ~~~ 此定義的類文件必須定義在composer.json同級目錄下的src及其子文件夾下 >[warning]src/church/TestClass1.php 定義: ~~~ <?php namespace Dash/church; class TestClass1{ } ~~~ 使用: >use root命名空間\[\\額外路徑\]\\類名 >new \\root命名空間\[\\額外路徑\]\\類名() ~~~ <?php use Dash\church\TestClass1; new TestClass1(); //或者直接new new \Dash\church\TestClass1(); ~~~ >[warning]src/TestClass1.php 定義: ~~~ <?php namespace Dash; class TestClass1{ } ~~~ 使用: ~~~ <?php use Dash\TestClass1; new TestClass1(); //或者直接new new \Dash\TestClass1(); ~~~ 例子2: ~~~ "psr-4":{ //"root命名空間\\":"起始路徑", "Dash\\tools\\":"./src/", }, ~~~ 此定義的類文件必須定義在composer.json同級目錄下的src及其子文件夾下 >[warning]src/TestClass1.php 定義: ~~~ <?php namespace Dash\tools; class TestClass1{ } ~~~ 使用: ~~~ <?php use Dash\tools\TestClass1; new TestClass1(); //或者直接new new \Dash\tools\TestClass1(); ~~~ >[warning]src/church/TestClass1.php 定義: ~~~ <?php namespace Dash\tools\church; class TestClass1{ } ~~~ 使用: ~~~ <?php use Dash\tools\church\TestClass1; new TestClass1(); //或者直接new new \Dash\tools\church\TestClass1(); ~~~ psr-4比psr-0路徑更簡潔 ## **files** >[info]一般用來自動加載函數、配置等非類文件 ~~~ "files":[ "src/MyLibrary/functions.php" ], //以上定義會自動加載與composer.json同文件夾下的src/MyLibrary/functions.php ~~~ ## **classmap** >[info] 適合沒有命名空間的類 定義后必須要有src和lib文件夾 ~~~ "classmap":[ "src/", "lib/" ] ~~~ >[info]當Composer開始安裝和更新擴展的時候,會根據composer.json里的這個autoload告訴的方式classmap, 來遍歷src、lib目錄然后將里面的類文件和其路徑一一對應,存放到vendor/composer/autoload_classmap.php內 >src/文件下必須有文件并且定義了類才會被加載到classmap 總覽: ~~~ "autoload":{ "psr-0":{ //簡單理解將./src路徑替換為church 所以 src里的類文件必須有namespace church "church\\":"./src/", #use church\testClass, 那就對應src/church/testClass.php. #use church\test\testClass, 那就對應src/church/test/testClass.php "Test\\" :"core/", #composer update后 ./vender/composer/autoload_psr4.php的 數組里會多出'Test\\' => array($baseDir . '/core'), "UniqueGlobalClass": "" # 這個類的php源文件也位于包的根目錄 }, "psr-4":{ "church\\":"./src/", # use church\TestClass, 那就對應src/testClass.php. # use church\Test\TestClass, 那就對應src/test/testClass.php # "Dash\\":["extra/","library/"], #多個目錄中一個相同的(命名空間)前綴 psr-0 也適用 "":"any/" #任何命名空間(即實例化類時其他地方未定義,那么就會進入any查找) 設置一個目錄作為任何命名空間的備用目錄psr-0也適用 "thinkcms\\auth\\": "" //加載此composer.json同及目錄及其子目錄下的的所有文件? }, "files":[ "src/MyLibrary/functions.php" #一般用來自動加載函數、配置等非類文件 ], #當Composer開始安裝和更新擴展的時候,會根據composer.json里的這個autoload告訴的方式classmap, #來遍歷src、lib目錄然后將里面的類文件和其路徑一一對應,存放到vendor/composer/autoload_classmap.php內 #src/文件下必須有文件并且定義了類才會被加載到classmap "classmap":[ "src/", "lib/" ] } ~~~
                  <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>

                              哎呀哎呀视频在线观看