簡體   English   中英

如何使用composer.json自動加載?

[英]how to autoload with composer.json?

我在項目目錄的根文件夾(在index.php中)中使用這些require語句。

require("./models/college/collegeModel.php");
require("./routes/routes.php");
require("./controllers/college/collegeController.php");
require("./controllers/home/homeController.php");
require("./controllers/login/loginController.php");
require("./controllers/logout/logoutController.php");
require("./controllers/public/publicController.php");
require("./lib/util.php");

現在我正在嘗試通過使用composer.json文件使用單個composer.json文件刪除所有上述要求來使用composer自動加載功能按需加載:

require("./vendor/autoload.php"); 

我的composer.json文件如下

{
    "name": "vermajnv/web",
    "authors": [
        {
            "name": "vermajnv",
            "email": "nayanrahul.jnv@gmail.com"
        }
    ],
    "require": {},
    "autoload": {
        "classmap": ["models/college", "controllers/college", 
"controllers/home", "controllers/login", "controllers/logout", 
"controllers/public", "lib/", "routes/"]
    }
}

如果我刪除“ lib /”“ routes /”,它可以正常工作

請為我提供此問題的適當解決方案,我將感謝所有人。

哦,..我錯了

實際上util.phproutes.php文件不包含一個類來初始化autoload_classmap.php

我的util.php之前是這樣的:

<?php

    public function baseUrl($url) {
        $contaxtPath = "/" . explode("/", $_SERVER['REQUEST_URI'])[1];
        return $contaxtPath . $url;
    }

    public function redirect($to) {
        $url = baseUrl($to);
        header("Location:" . $url, 302);
    }

現在,我將其包裝為帶有靜態方法的類,並且可以通過HTMLutill:訪問這些方法

<?php

    class HTMLutil {

// static method inside a class are visible every where without creating instance of class (HTMLutil) we can access it by HTML::baseUrl();
    public static function baseUrl($url) {
        $contaxtPath = "/" . explode("/", $_SERVER['REQUEST_URI'])[1];
        return $contaxtPath . $url;
    }

    public static function redirect($to) {
        $url = self::baseUrl($to);
        header("Location:" . $url, 302);
    }

}

現在我的應用程序運行正常。 快樂的編碼家伙。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM