как автозагрузить с composer.json? - PullRequest
0 голосов
/ 16 сентября 2018

Я использую эти операторы require в моей корневой папке каталога проекта (в index.php).

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 для загрузки по требованию с помощью файла composer.json, чтобы удалить все вышеперечисленные требования одним:

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 /" и "route /"

Пожалуйста, предоставьте мне правильное решение этой проблемы, я буду благодарен всем.

1 Ответ

0 голосов
/ 17 сентября 2018

Ого .. Я понял, что я делаю не так

на самом деле util.php и rout.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);
    }

}

Теперь мое приложение работает нормально. счастливые парни кодирования ..

...