Laravel 如何引入多类 PHP 文件?

我知道可以用composer.json的autoload功能,如果是函数集或者文件名和类名一致,加上namespace就可以导入一个类,但是如果一个文件有多个类或者类的名称和文件名称不一致的话就会出错,说在控制器里找不到,想导入到控制器该怎么做呢?
include, require等这时候都不好用了。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

首先, includerequire 是可以用的,比如下面这样:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

require __DIR__.'/../../Classes/1.php';

class TestController extends Controller
{
    public function index() {
        $class1 = new \Class1();
        $class2 = new \Class2();
        return $class1->say();
    }
}

1.php 放在项目下的 app/Classes 目录下

<?php
/**
 * Created by PhpStorm.
 * User: zed
 * Date: 18-6-13
 * Time: 上午10:35
 */
Class Class1 {
    public function say() {
        return 'i am class1';
    }
}
Class Class2 {
    public function say() {
        return 'i am class2';
    }
}

其次, Composer 也能用:

"autoload": {
        "files": [
            "app/Classes/1.php"
        ],
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },

改完之后记得

composer dumpautoload
5年前 评论
讨论数量: 2

首先, includerequire 是可以用的,比如下面这样:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

require __DIR__.'/../../Classes/1.php';

class TestController extends Controller
{
    public function index() {
        $class1 = new \Class1();
        $class2 = new \Class2();
        return $class1->say();
    }
}

1.php 放在项目下的 app/Classes 目录下

<?php
/**
 * Created by PhpStorm.
 * User: zed
 * Date: 18-6-13
 * Time: 上午10:35
 */
Class Class1 {
    public function say() {
        return 'i am class1';
    }
}
Class Class2 {
    public function say() {
        return 'i am class2';
    }
}

其次, Composer 也能用:

"autoload": {
        "files": [
            "app/Classes/1.php"
        ],
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },

改完之后记得

composer dumpautoload
5年前 评论

感谢大神,我就是差在这个反斜杠上,怎么也引入不了。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!