如何在laravel项目中包含外部文件?

时间:2016-08-31 03:33:12

标签: laravel

所以我在localhost中有一个公共目录,其中包含一些我希望能够在当前laravel项目中使用的类。

那么我将如何在laravel中包含这些外部类/文件?

我尝试在composer.json文件中添加这些文件,

"autoload": {
        "classmap": [
            "database",
            "../public_classes/priceClass.php"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "../public_classes/priceClass.php"
        ]
    },

并执行composer dump-autoload,然后当我尝试调用该函数时,它无法正常工作。

3 个答案:

答案 0 :(得分:2)

如果您使用PSR-4,则无需在composer.json中添加任何内容。例如,您可以在\app\MyClasses\MyClass.php中创建PHP文件,并在自定义类中使用此命名空间:namespace App\MyClasses

Laravel将为您自动加载此课程。

答案 1 :(得分:2)

我还想在我的Laravel项目中包含一些类,因为我只是将文件复制到一个新目录(app / Libraries)中,并将Package名称分配给所有类,然后按PSR-4 Autoloading standard列出所有这些类文件和我在composer.json

中添加了以下代码
     ...
        "autoload": {
            "classmap": [
                "app/Libraries",
            ],
...

希望这能解决你的问题...

乐意帮助!!!

答案 2 :(得分:0)

我最终要做的是将路径放在我的composer.json文件中,然后执行composer dump-autoload

composer.json:

"autoload": {
        "classmap": [
            "database",
            "../public_classes/priceClass.php"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "../public_classes/priceClass.php"
        ]
    },

然后,我想添加的文件,我将其编辑为简单的函数而不是oop的函数。

priceClass.php:

<?php

function getPrices(){
/* 
*
*
*Statements here 
*
*/
}

?>

只需通过

在我的laravel控制器中调用它
$prices = getPrices();

我这样做了,因为当我试图做类似的事情时:

class Prices(){

    public function getPrices(){ 
         ....
    }

}

然后在我的laravel控制器中调用它:

$priceClass = new Prices();
$prices = $priceClass->getPrices();

我最终遇到了错误,例如:找不到价格类。