Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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安装jQuery?_Php_Symfony_Composer Php - Fatal编程技术网

Php 如何使用Composer安装jQuery?

Php 如何使用Composer安装jQuery?,php,symfony,composer-php,Php,Symfony,Composer Php,我已经能够安装没有composer.json文件的存储库,如下所示: { "type": "package", "package": { "name": "yahoo/yui-compressor", "version": "2.0.4", "dist": { "url": "http://yui.zenfs.com/releases/yuicompre

我已经能够安装没有composer.json文件的存储库,如下所示:

    {
        "type": "package",
        "package": {
            "name": "yahoo/yui-compressor",
            "version": "2.0.4",
            "dist": {
                "url": "http://yui.zenfs.com/releases/yuicompressor/yuicompressor-2.4.7.zip",
                "type": "zip"
            }
        }
    },
我从文档中获取了“type”:“zip”部分,但我找不到其他许多类型。例如,我需要安装jQuery,但我不知道输入什么(“js”不起作用)

有什么想法吗

编辑:我正在添加完整的解决方案以帮助@cmcdragokai:

    "require": {
        "vendorname/somefile": "1.2.3",
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "vendorname/somefile",
                "version": "1.2.3",
                "dist": {
                    "url": "http://example.com/somefile.txt",
                    "type": "file"
                }
            }
        }
    ]

这只是缺少的一个特性。可能会有一种新类型的dist,它只是一个要下载并保持原样的纯文本文件。请在github问题跟踪器上提交功能请求:

编辑:

这项功能,但没有记录在案

"type": "file"

实际上,安装jQuery有一种更简单的方法,只需键入:

{
    "require": {
        "components/jquery": "1.9.*"
    }
}

它使用组件,并且默认情况下,组件中的所有资产都安装在
组件
下,但它可以自定义。()。

如前所述,解决方案的第一部分是定义您自己的存储库和
类型::“文件”
存储库定义选项。但是接下来的问题是让composer将JQuery放在您想要的地方。目前,composer似乎仅限于下载供应商目录下的依赖源代码(这很烦人,但可能与自动加载要求有关)。解决这一限制的一般方法是编写一个composer插件来克服它。似乎有几个插件可以管理这个。我发现的最简单、最轻量级的解决方案是,它专门用于管理非PHP/Composer“资产”。不过,它至少有一个限制,即插件所做的更改不是由composer管理/检测的。仍然可用

下面是使用该插件安装JQuery的完整
composer.json

{
  "name": "foo/bar",
  "require":
  {
    "phpclasses/assets": "*",
     "jquery/jquery": "*"
  },
  "repositories": [
    {
     "type": "composer",
     "url": "http://www.phpclasses.org/"
    },
    {
      "type": "package",
      "package": {
        "name": "jquery/jquery",
        "version": "1.7.2",
        "type": "jquery",
        "dist": {
          "url": "http://code.jquery.com/jquery-1.7.2.js",
          "type": "file"
        }
      }
    }
  ],
  "extra": {
    "assets": {
      "actions": [
        {
          "type": "copy",
          "target": "webroot/js",
          "pattern": "\\.js$"
        }
      ],
      "packages": {
        "jquery/jquery": "*"
      }
    }
  }
}

使用
npm
warn
WebPack
而不是Composer,它们更适合这种需要。

您可以像这样使用npm安装jquery

npm install jquery

目前我正在使用,但我也希望通过Composer或git子模块获得jQuery。我不喜欢将第三方库放入我的repo中的想法。顺便说一句,由于所有这些事情的发生,被高估了。2013年已经快结束了,仍然没有jquery/jquery包。这真奇怪,乔科!你好现在供应商目录中有了jQuery js文件,现在呢?您必须手动将src添加到此文件,还是作曲家必须自己加载它?我正在尝试自动加载jQuery并将其导入我的站点。是可能的还是我不明白Composer用于什么?@SharikovVladislav Composer用于管理依赖项(即,查找正确的版本、检查是否存在冲突、下载所有内容等)。如何使用这些依赖关系是一个单独的问题。如果它们是PHP依赖项,通常会自动加载,您所要做的就是直接创建对象或调用函数。如果它们是JS文件或其他资产,则必须在要编译/缩小的资产列表中添加文件路径,或者如果不使用缩小,则只需在webroot中创建指向该文件的符号链接并手动添加src。“…或者如果不使用缩小,则只需创建符号链接…”。这意味着您必须在web根目录下设置供应商目录。这不是很不安全吗?谢谢,我刚刚提交了这个问题:斯托夫对这个问题发表了评论,这个功能是存在的。我编辑了你的答案,我试试看。我想我缺少的是将文件放在web目录中的方法。仅为资产创建捆绑包是一种过分的做法。应该可以将js文件直接安装到web目录。这是如何工作的?我只是想让Composer通过HTTP下载一个文本文件?我在哪里指定所有内容?@cmcdragokai我编辑了我的帖子,添加了完整的解决方案这与javascript组件包管理没有任何关系,是吗?
components/jquery
is,相同的repo适用于Bower,Component和composer完成
composer需要组件/jquery
而不需要版本,工作起来很有魅力。它在
.json
中添加了一行
“components/jquery”:“^2.1”
,然后继续安装并将其粘贴到
.lock
中-感谢
components/*
提示!注意:值得注意的是,Asset Manager插件处理的包名称都是小写的。如果您在“require”中使用大写字母包,那么即使您在其“packages”部分使用相同的方式编写它们,插件也永远不会匹配它们。我现在正在用这些。KISS.Bower已被弃用,不再维护-在2018年不是一个好选择。@rob006使用什么替代?网页包?在鲍尔的网站上有一些建议-可能是纱线和网页包。
npm install jquery