Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在主项目的供应商下开发composer包_Php_Github_Composer Php - Fatal编程技术网

PHP在主项目的供应商下开发composer包

PHP在主项目的供应商下开发composer包,php,github,composer-php,Php,Github,Composer Php,我有一个主php项目,需要一个由我开发的php组件,我打算在其他项目中重用该组件,该组件位于主项目供应商目录中。 但是,将组件推到Github,转到主项目,运行composer update非常耗时。 为了加快组件的开发,是否有办法将本地组件项目包含到主项目中?您可以直接在供应商文件夹中添加库,使用psr-0或psr-4自动加载注册源,转储自动加载类,并在文件夹中创建git存储库 因此,您可以将它用作一个库,同时,您不需要在项目中进行每次更新来测试库 我不知道这是否是一个好方法,但符号链接对我不

我有一个主php项目,需要一个由我开发的php组件,我打算在其他项目中重用该组件,该组件位于主项目供应商目录中。 但是,将组件推到Github,转到主项目,运行composer update非常耗时。
为了加快组件的开发,是否有办法将本地组件项目包含到主项目中?

您可以直接在供应商文件夹中添加库,使用psr-0或psr-4自动加载注册源,转储自动加载类,并在文件夹中创建git存储库

因此,您可以将它用作一个库,同时,您不需要在项目中进行每次更新来测试库


我不知道这是否是一个好方法,但符号链接对我不起作用,我仍然需要在自动加载中注册这些类。

这就是我如何进行本地composer包开发的方法

  • 在供应商文件夹旁边创建一个
    供应商回购
    文件夹
  • 为供应商和项目名称创建目录,例如
    vendorrepo/vendorname/packagename
  • packagename
    文件夹中创建一个git repo,并使用
    composer.json
    等构建您的composer包
  • 将本地存储库添加到主
    composer.json
    (需要您的包的存储库)。您还可以通过添加
    “packagist”:false来禁用packagist repo,如下例所示。这将加快速度,如果您不使用packagist提供的任何软件包,这是一个好主意
  • “存储库”:[
    {
    “类型”:“路径”,
    “url”:“供应商回购/vendorname/packagename”
    },
    {
    “包装商”:错
    }
    ]


    然后,当您运行
    composer update
    时,它将从您的本地repo获取您的包,而不需要从GitHub获取它。

    如果
    composer update
    非常耗时,那么我认为您的internet连接太慢。我不需要超过5分钟来更新。5分钟太多了,甚至20秒,我可能会更改Tenyes作曲家的速度非常慢。如果你只做本地开发,你可以禁用packagistrepo,这使得它可以在几秒钟内安装。我只是希望我能像在VisualStudio中的c#一样引用一个包。我将尝试只运行一次composer update,然后删除与composer.json中的包相关的条目,以便在进一步更新时保留该条目。您也可以从我们的供应商文件夹中添加该库。例如,一个名为“local_libs”的文件夹,因此在成功更新composer后不会删除库源。别忘了更改自动加载源路径。谢谢,是的,“路径”正是我所需要的,我将深入了解文档以获取更高级的内容。不用担心@YvonHuynh很高兴您将其整理好。Composer文档非常好:)注意:我的包名是“vendorname/packagename”,url是“vendor repo/vendorname”,因为当我从github克隆现有包时,它将创建“packagename” folder@YvonHuynh通常我会将composer.json放在包repos的根目录中,而不是放在
    packagename
    目录中,但请使用适合您的任何工具:)明白了!关于语义版本的最后一点,Composer如何读取git存储库中的标记?