【问题标题】:How to override a file in vendor directory如何覆盖供应商目录中的文件
【发布时间】:2023-03-29 18:31:01
【问题描述】:

当我在 Laravel 中使用社交名流提供者插件向 Microsoft O365 进行身份验证时。但是插件文件中的某些功能(包括范围)无法正常工作。所以我需要覆盖该文件作为解决方案。

如何覆盖供应商文件夹中的文件?

我尝试了一些在这里找到的解决方案,但没有奏效。

【问题讨论】:

  • 不要在您的供应商中编辑文件。你可以在你的项目中包含这些文件,然后覆盖。

标签: laravel microsoft-graph-api overriding laravel-socialite vendor


【解决方案1】:

与其更改供应商文件,不如创建自己的类,从它扩展而来,并添加/覆盖您的类所需的任何内容。你的类将继承基类的所有功能

【讨论】:

    【解决方案2】:

    您可以在作曲家级别覆盖供应商类,如下所示,但是如果可以扩展将是更正确的决定。
    您必须在项目的composer.json 上应用更新。这是一个覆盖 Symfony 框架的PhpExecutableFinder.php 的示例。在这种情况下,overrides/symfony/process/ 路径下必须有一个名称完全相同的文件。

    "autoload": {
        "psr-4": {
            "Symfony\\Component\\Process\\": "overrides/symfony/process/"
        },
        "exclude-from-classmap": [
            "vendor/symfony/process/PhpExecutableFinder.php"
        ],
    },
    

    有关autoload 标签的更多信息,请查看documentation。
    另外,我刚刚找到了与您的问题相关的写得很好的post。

    【讨论】:

      猜你喜欢
      • 2014-01-20
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      相关资源
      最近更新 更多