【问题标题】:how to autoload with composer.json?如何使用 composer.json 自动加载?
【发布时间】:2018-09-18 02:33:55
【问题描述】:

我在项目目录的根文件夹中使用这些 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 autoload 按需加载,方法是使用 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/""routes/"

,它会正常工作

请为我提供此问题的适当解决方案,我将不胜感激。

【问题讨论】:

    标签: php autoload composer-php


    【解决方案1】:

    oho.. 我知道我做错了什么

    其实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);
        }
    

    现在我只是用一个带有 static 方法的类来包装它,这些方法可以通过 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);
        }
    
    }
    

    现在我的应用程序运行良好。 快乐的编码家伙..

    【讨论】:

      猜你喜欢
      • 2014-06-02
      • 2016-04-06
      • 1970-01-01
      • 2016-07-01
      • 2015-10-26
      • 2021-07-08
      • 2018-01-09
      • 1970-01-01
      相关资源
      最近更新 更多