【问题标题】:How to include external files in laravel project?如何在 laravel 项目中包含外部文件?
【发布时间】:2016-09-02 08:14:20
【问题描述】:

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

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

我尝试将这些文件添加到我的 composer.json 文件中,

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

然后做composer dump-autoload,然后当我尝试调用该函数时,它不起作用。

【问题讨论】:

  • 您要包含哪种文件?类(带有命名空间)还是简单的函数?
  • 我想包含 oop 类,但我最终做了简单的函数。

标签: laravel


【解决方案1】:

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

Laravel 会为你自动加载这个类。

【讨论】:

  • 我试图包含的文件与 laravel 项目不属于同一目录。这些文件位于单独的目录中。它们是我的存储库类。
【解决方案2】:

我还想在我的 Laravel 项目中包含一些类,因为我只是将文件复制到一个新目录(app/Libraries)中,并将包名称分配给所有类,然后为所有这些类文件遵循 PSR-4 Autoloading standard 和我在composer.json 中添加了以下代码。

     ...
        "autoload": {
            "classmap": [
                "app/Libraries",
            ],
...

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

乐于助人!!!

【讨论】:

    【解决方案3】:

    我最终做的是将文件路径放在我的 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();
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      • 2011-08-30
      • 2011-06-08
      • 2014-08-07
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      相关资源
      最近更新 更多