91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用composer 實現自動加載

發布時間:2020-07-03 22:25:34 來源:網絡 閱讀:1626 作者:大咖M 欄目:開發技術

準備工作:提前安裝好composer

  1. 創建項目目錄OOP
  2. OOP目錄下新建composer.json文件,composer.json是一個空json文件,代碼如下:
    
    {

}

3.  打開控制臺,進入項目目錄OOP,在OOP目錄下運行composer命令:

composer install

運行后自動生成composer文件目錄,目錄結構如下:

OOP

  • Vendor
    • composer
    • autoload_classmap.php
    • autoload_namespaces.php
    • autoload_psr4.php
    • autoload_real.php
    • autoload_static.php
      ClassLoader.php
      installed.json
      LICENSE
    • autoload.php
  • composer.json
    4.  自動生成目錄結構后,在composer.json文件中新增代碼,實現自動加載,代碼如下:

{
"autoload": {
"psr-4": {
"Andy\" : "src"
}
}
}

Andy是廠商名,src是對應的目錄名。
5.  新建src目錄,在src目錄下,創建一個類文件AuthController.php,該文件代碼如下:

<?php

namespaceAndy; // 設置命名空間

classAuthController{
publicfunctiontest(){
echo'test';
}
}

6.使用類文件。在OOP目錄下新建index.php文件,此時的目錄結構如下:

OOP

  • Src
    • AuthController.php
  • Vendor
    • composer
    • autoload_classmap.php
    • autoload_namespaces.php
    • autoload_psr4.php
    • autoload_real.php
    • autoload_static.php
      ClassLoader.php
      installed.json
      LICENSE
    • autoload.php
  • composer.json
  • index.php
    在index.php文件中引入AuthController類,index.php文件代碼如下:

<?php
require'vendor/autoload.php';
$auth=newAndy\AuthController();
echo$auth->test();

運行index.php文件,提示錯誤信息:

Class'Andy\AuthController'notfound

這是因為修改后的composer文件還未生效,我們需要在控制器運行如下composer命令:

composer dump-autoload

打開Vendor/autoload_psr4.php,自動生成如下代碼:

<?php

// autoload_psr4.php @generated by Composer

$vendorDir=dirname(dirname(FILE));
$baseDir=dirname($vendorDir);

returnarray(
'Andy\'=>array($baseDir . '/src'),
);

即是將Andy替換成OOP/src。再次運行index.php文件,運行結果如下:

test

說明自動加載生效了,因為在沒有使用require引入類文件的情況下,直接在index.php文件中使用關鍵字new 實例化對象成功了。
7.  使用use 關鍵字引入。在index.php文件中,我們使用 new Andy\AuthController()引入類文件,很多時候,廠商的名字不像“Andy”只有4個字母,通常會很長,并且會在多處使用。針對這種情況,可以在使用類之前,添加use關鍵字來實現。修改index.php文件,修改后代碼如下:

<?php
useAndy\AuthController; // 使用use關鍵字

require'vendor/autoload.php';
$person=newAuthController(); // 更改引用方式
echo$person->test();

運行結果相同。

注意:多數情況下,忘記使用composer dump-load命令導致找不到類名。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

疏附县| 文成县| 奇台县| 松桃| 饶河县| 柞水县| 洛南县| 温泉县| 伊金霍洛旗| 繁昌县| 安新县| 新龙县| 烟台市| 思南县| 河南省| 桓仁| 鄄城县| 仁怀市| 东港市| 仙桃市| 哈巴河县| 晋江市| 铜鼓县| 丰顺县| 年辖:市辖区| 和田市| 水富县| 黔江区| 兰溪市| 虎林市| 松桃| 茶陵县| 德惠市| 乌鲁木齐市| 北辰区| 宣威市| 偃师市| 健康| 尼玛县| 桐庐县| 巫溪县|