【问题标题】:Symfony 2.1 own vendor librarySymfony 2.1 自己的供应商库
【发布时间】:2012-10-23 05:05:10
【问题描述】:

我想在应用程序包之外放置一些我将在不同项目中使用的代码。我把它放在供应商文件夹的一个新文件夹中,但我不能包含在项目中。步骤是什么?

  • 我应该遵循文件夹和命名空间的特殊结构
  • 如何将其包含在我的项目中。

在谷歌上我发现了很多模棱两可的答案。我也试过this,但没用。

【问题讨论】:

    标签: symfony


    【解决方案1】:

    您需要加载您的库。为此,您可以告诉作曲家在哪里可以找到您的库。

    最好的办法是为此源代码设置一个 git 存储库,然后使用 composer 加载它,使其保持最新并将其包含到自动加载器中。您可能需要习惯 composer 来执行此操作,但是由于 composer 正在获取 php 的默认依赖项管理工具,因此不会浪费时间。你可以在这里找到文档:http://getcomposer.org/doc/

    如果你不想这样做,你可以向 composer 添加一个新的 src 代码文件夹。假设您的文件夹结构是这样的:

    symfony2/ 小贩/ 你的图书馆/ 布拉/ 蓝光/ MyClass.php

    首先,MyClass.php 应该定义命名空间 Bla/Blub。 Else 然后你可以像这样将你的库添加到 composer.json 文件中:

    "autoload": {
        "psr-0": { 
            "": "src/",
            "Bla": "vendor/yourlibrary/"
        }
    }
    

    你已经定义了自动加载,所以你需要覆盖它!

    如果您的库没有命名空间,您仍然可以定义 composer 来加载它。我没有使用这个,所以我可以链接您可以阅读的文档:http://getcomposer.org/doc/04-schema.md#autoload

    【讨论】:

    • 修改composer.json后是否需要调用一些命令脚本?我是否需要修改其他脚本? (我也对autoload.php或autoloader.php的存在感到困惑)
    • 您应该运行composer.phar install,它将更新 autoload.php。您的供应商文件夹中应该只有一个 autoload.php 文件,其他任何地方都没有。
    猜你喜欢
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 2012-11-28
    • 2018-07-06
    • 1970-01-01
    相关资源
    最近更新 更多